Open CASCADE Technology 7.8.2.dev
|
The file contains interface to prepare dump output for OCCT objects. Format of the dump is JSON. More...
#include <NCollection_IndexedDataMap.hxx>
#include <NCollection_List.hxx>
#include <Standard_OStream.hxx>
#include <Standard_SStream.hxx>
#include <TCollection_AsciiString.hxx>
Data Structures | |
struct | Standard_DumpValue |
Type for storing a dump value with the stream position. More... | |
class | Standard_Dump |
This interface has some tool methods for stream (in JSON format) processing. More... | |
Macros | |
#define | OCCT_CLASS_NAME(theClass) |
Converts the class type into a string value. | |
#define | OCCT_DUMP_CLASS_BEGIN(theOStream, theField) |
Creates an instance of Sentry to cover the current Dump implementation with keys of start and end. This row should be inserted before other macros. The end key will be added by the sentry remove, (exit of the method). | |
#define | OCCT_DUMP_TRANSIENT_CLASS_BEGIN(theOStream) |
Creates an instance of Sentry to cover the current Dump implementation with keys of start and end. This row should be inserted before other macros. The end key will be added by the sentry remove, (exit of the method). | |
#define | OCCT_DUMP_FIELD_VALUE_NUMERICAL(theOStream, theField) |
Append into output value: "Name": Field. | |
#define | OCCT_DUMP_FIELD_VALUE_NUMERICAL_INC(theOStream, theField, theIncName) |
#define | OCCT_INIT_FIELD_VALUE_REAL(theOStream, theStreamPos, theField) |
Append vector values into output value: "Name": [value_1, value_2, ...] This macro is intended to have only one row for dumped object in Json. It's possible to use it without necessity of OCCT_DUMP_CLASS_BEGIN call, but pay attention that it should be only one row in the object dump. | |
#define | OCCT_INIT_FIELD_VALUE_INTEGER(theOStream, theStreamPos, theField) |
#define | OCCT_DUMP_FIELD_VALUE_STRING(theOStream, theField) |
Append into output value: "Name": "Field". | |
#define | OCCT_DUMP_FIELD_VALUE_POINTER(theOStream, theField) |
Append into output value: "Name": "address of the pointer". | |
#define | OCCT_DUMP_FIELD_VALUE_GUID(theOStream, theField) |
#define | OCCT_DUMP_FIELD_VALUES_DUMPED(theOStream, theDepth, theField) |
Append into output value: "Name": { field dumped values } It computes Dump of the fields. The expected field is a pointer. Use this macro for fields of the dumped class which has own Dump implementation. The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited. | |
#define | OCCT_DUMP_FIELD_VALUES_DUMPED_INC(theOStream, theDepth, theField, theIncName) |
Append into output value: "Name": { field dumped values } It computes Dump of the fields. The expected field is a pointer. Use this macro for fields of the dumped class which has own Dump implementation. The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited. Inc name value added to the key to provide unique keys. | |
#define | OCCT_INIT_FIELD_VALUES_DUMPED(theSStream, theStreamPos, theField) |
Append into output value: "Name": { field dumped values } It computes Dump of the fields. The expected field is a pointer. Use this macro for fields of the dumped class which has own Dump implementation. The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited. | |
#define | OCCT_DUMP_STREAM_VALUE_DUMPED(theOStream, theField) |
Append into output value: "Name": { stream text } It computes Dump of the fields. The expected field is a pointer. Use this macro for Standard_SStream field. | |
#define | OCCT_DUMP_FIELD_VALUES_NUMERICAL(theOStream, theName, theCount, ...) |
Append real values into output values in an order: [value_1, value_2, ...] It computes Dump of the parent. The expected field is a parent class name to call ClassName::Dump. | |
#define | OCCT_DUMP_FIELD_VALUES_STRING(theOStream, theName, theCount, ...) |
Append real values into output values in an order: ["value_1", "value_2", ...] It computes Dump of the parent. The expected field is a parent class name to call ClassName::Dump. | |
#define | OCCT_DUMP_BASE_CLASS(theOStream, theDepth, theField) |
Append into output value: "Name": { field dumped values } It computes Dump of the parent. The expected field is a parent class name to call ClassName::Dump. Use this macro for parent of the current class. The macros is recursive. Recursive is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited. | |
#define | OCCT_DUMP_VECTOR_CLASS(theOStream, theName, theCount, ...) |
Append vector values into output value: "Name": [value_1, value_2, ...] This macro is intended to have only one row for dumped object in Json. It's possible to use it without necessity of OCCT_DUMP_CLASS_BEGIN call, but pay attention that it should be only one row in the object dump. | |
#define | OCCT_INIT_VECTOR_CLASS(theOStream, theName, theStreamPos, theCount, ...) |
Append vector values into output value: "Name": [value_1, value_2, ...] This macro is intended to have only one row for dumped object in Json. It's possible to use it without necessity of OCCT_DUMP_CLASS_BEGIN call, but pay attention that it should be only one row in the object dump. | |
Enumerations | |
enum | Standard_JsonKey { Standard_JsonKey_None , Standard_JsonKey_OpenChild , Standard_JsonKey_CloseChild , Standard_JsonKey_OpenContainer , Standard_JsonKey_CloseContainer , Standard_JsonKey_Quote , Standard_JsonKey_SeparatorKeyToValue , Standard_JsonKey_SeparatorValueToValue } |
Kind of key in Json string. More... | |
The file contains interface to prepare dump output for OCCT objects. Format of the dump is JSON.
To prepare this output, implement method DumpJson in the object and use macro functions from this file. Macros have one parameter for both, key and the value. It is a field of the current class. Macro has internal analyzer that uses the variable name to generate key. If the parameter has prefix symbols "&", "*" and "my", it is cut.
The Dump result prepared by these macros is an output stream, it is not arranged with spaces and line feed. To have output in a more readable way, use ConvertToAlignedString method for obtained stream.
#define OCCT_CLASS_NAME | ( | theClass | ) |
Converts the class type into a string value.
#define OCCT_DUMP_BASE_CLASS | ( | theOStream, | |
theDepth, | |||
theField ) |
Append into output value: "Name": { field dumped values } It computes Dump of the parent. The expected field is a parent class name to call ClassName::Dump. Use this macro for parent of the current class. The macros is recursive. Recursive is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited.
#define OCCT_DUMP_CLASS_BEGIN | ( | theOStream, | |
theField ) |
Creates an instance of Sentry to cover the current Dump implementation with keys of start and end. This row should be inserted before other macros. The end key will be added by the sentry remove, (exit of the method).
#define OCCT_DUMP_FIELD_VALUE_GUID | ( | theOStream, | |
theField ) |
#define OCCT_DUMP_FIELD_VALUE_NUMERICAL | ( | theOStream, | |
theField ) |
Append into output value: "Name": Field.
Append into output value: "Name": Field Inc name value added to the key to provide unique keys.
#define OCCT_DUMP_FIELD_VALUE_NUMERICAL_INC | ( | theOStream, | |
theField, | |||
theIncName ) |
#define OCCT_DUMP_FIELD_VALUE_POINTER | ( | theOStream, | |
theField ) |
Append into output value: "Name": "address of the pointer".
#define OCCT_DUMP_FIELD_VALUE_STRING | ( | theOStream, | |
theField ) |
Append into output value: "Name": "Field".
#define OCCT_DUMP_FIELD_VALUES_DUMPED | ( | theOStream, | |
theDepth, | |||
theField ) |
Append into output value: "Name": { field dumped values } It computes Dump of the fields. The expected field is a pointer. Use this macro for fields of the dumped class which has own Dump implementation. The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited.
#define OCCT_DUMP_FIELD_VALUES_DUMPED_INC | ( | theOStream, | |
theDepth, | |||
theField, | |||
theIncName ) |
Append into output value: "Name": { field dumped values } It computes Dump of the fields. The expected field is a pointer. Use this macro for fields of the dumped class which has own Dump implementation. The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited. Inc name value added to the key to provide unique keys.
#define OCCT_DUMP_FIELD_VALUES_NUMERICAL | ( | theOStream, | |
theName, | |||
theCount, | |||
... ) |
Append real values into output values in an order: [value_1, value_2, ...] It computes Dump of the parent. The expected field is a parent class name to call ClassName::Dump.
#define OCCT_DUMP_FIELD_VALUES_STRING | ( | theOStream, | |
theName, | |||
theCount, | |||
... ) |
Append real values into output values in an order: ["value_1", "value_2", ...] It computes Dump of the parent. The expected field is a parent class name to call ClassName::Dump.
#define OCCT_DUMP_STREAM_VALUE_DUMPED | ( | theOStream, | |
theField ) |
Append into output value: "Name": { stream text } It computes Dump of the fields. The expected field is a pointer. Use this macro for Standard_SStream field.
#define OCCT_DUMP_TRANSIENT_CLASS_BEGIN | ( | theOStream | ) |
Creates an instance of Sentry to cover the current Dump implementation with keys of start and end. This row should be inserted before other macros. The end key will be added by the sentry remove, (exit of the method).
#define OCCT_DUMP_VECTOR_CLASS | ( | theOStream, | |
theName, | |||
theCount, | |||
... ) |
Append vector values into output value: "Name": [value_1, value_2, ...] This macro is intended to have only one row for dumped object in Json. It's possible to use it without necessity of OCCT_DUMP_CLASS_BEGIN call, but pay attention that it should be only one row in the object dump.
#define OCCT_INIT_FIELD_VALUE_INTEGER | ( | theOStream, | |
theStreamPos, | |||
theField ) |
#define OCCT_INIT_FIELD_VALUE_REAL | ( | theOStream, | |
theStreamPos, | |||
theField ) |
Append vector values into output value: "Name": [value_1, value_2, ...] This macro is intended to have only one row for dumped object in Json. It's possible to use it without necessity of OCCT_DUMP_CLASS_BEGIN call, but pay attention that it should be only one row in the object dump.
#define OCCT_INIT_FIELD_VALUES_DUMPED | ( | theSStream, | |
theStreamPos, | |||
theField ) |
Append into output value: "Name": { field dumped values } It computes Dump of the fields. The expected field is a pointer. Use this macro for fields of the dumped class which has own Dump implementation. The macros is recursive. Recursion is stopped when the depth value becomes equal to zero. Depth = -1 is the default value, dump here is unlimited.
#define OCCT_INIT_VECTOR_CLASS | ( | theOStream, | |
theName, | |||
theStreamPos, | |||
theCount, | |||
... ) |
Append vector values into output value: "Name": [value_1, value_2, ...] This macro is intended to have only one row for dumped object in Json. It's possible to use it without necessity of OCCT_DUMP_CLASS_BEGIN call, but pay attention that it should be only one row in the object dump.
enum Standard_JsonKey |
Kind of key in Json string.