9 #ifndef Navigation_VisualDebugAttributesBlobs_H
10 #define Navigation_VisualDebugAttributesBlobs_H
20 class VisualDebugAttribute;
21 class VisualDebugAttributeGroup;
22 class VisualDebugAttributeHeader;
23 class VisualDebugAttributeValues;
25 class VisualDebugAttributeBlob
28 VisualDebugAttributeBlob() {}
30 BlobArray<char> m_name;
38 SwapEndianness(e,
self.m_name);
39 SwapEndianness(e,
self.m_valueType);
40 SwapEndianness(e,
self.m_valueCount);
41 SwapEndianness(e,
self.m_headerIdx);
44 class VisualDebugAttributeBlobBuilder :
public BaseBlobBuilder<VisualDebugAttributeBlob>
47 VisualDebugAttributeBlobBuilder(VisualDebugAttribute* attribute) : m_attribute(attribute) {}
48 virtual void DoBuild();
49 VisualDebugAttribute* m_attribute;
53 class VisualDebugAttributeHeaderBlob
56 VisualDebugAttributeHeaderBlob() {}
57 BlobArray<char> m_name;
63 SwapEndianness(e,
self.m_name);
64 SwapEndianness(e,
self.m_index);
67 class VisualDebugAttributeHeaderBlobBuilder :
public BaseBlobBuilder<VisualDebugAttributeHeaderBlob>
70 VisualDebugAttributeHeaderBlobBuilder(VisualDebugAttributeHeader* header) : m_header(header) {}
71 virtual void DoBuild();
72 VisualDebugAttributeHeader* m_header;
75 class AttributeGroupRemovalBlob
77 KY_ROOT_BLOB_CLASS(VisualDebugMessage, AttributeGroupRemovalBlob, 0)
81 AttributeGroupRemovalBlob() {}
83 BlobArray<char> m_groupName;
89 SwapEndianness(e,
self.m_groupName);
90 SwapEndianness(e,
self.m_worldElementId);
93 class AttributeGroupRemovalBlobBuilder :
public BaseBlobBuilder<AttributeGroupRemovalBlob>
97 : m_groupName(groupName), m_worldElementId(worldElementId) {}
99 virtual void DoBuild()
112 class AttributeGroupBlob
114 KY_ROOT_BLOB_CLASS(VisualDebugMessage, AttributeGroupBlob, 0)
118 AttributeGroupBlob() {}
127 SwapEndianness(e,
self.m_name);
128 SwapEndianness(e,
self.m_attributes);
129 SwapEndianness(e,
self.m_headers);
132 class VisualDebugAttributeGroupBlobBuilder :
public BaseBlobBuilder<AttributeGroupBlob>
135 VisualDebugAttributeGroupBlobBuilder(VisualDebugAttributeGroup* attributeGroup) : m_attributeGroup(attributeGroup) {}
136 virtual void DoBuild();
137 VisualDebugAttributeGroup* m_attributeGroup;
141 class VisualDebugAttributeValuesBlob
144 VisualDebugAttributeValuesBlob() {}
146 BlobArray<char> m_string;
147 BlobArray<KyUInt32> m_values32;
150 inline void SwapEndianness(
Endianness::Target e,
class VisualDebugAttributeValuesBlob&
self)
152 SwapEndianness(e,
self.m_string);
153 SwapEndianness(e,
self.m_values32);
156 class VisualDebugAttributeValuesBlobBuilder :
public BaseBlobBuilder<VisualDebugAttributeValuesBlob>
159 VisualDebugAttributeValuesBlobBuilder(VisualDebugAttributeValues* attributeValue) : m_attributeValue(attributeValue) {}
160 virtual void DoBuild();
161 VisualDebugAttributeValues* m_attributeValue;
167 class AttributeGroupValuesBlob
169 KY_ROOT_BLOB_CLASS(VisualDebugMessage, AttributeGroupValuesBlob, 0)
173 AttributeGroupValuesBlob() {}
174 BlobArray<char> m_name;
175 BlobArray<VisualDebugAttributeValuesBlob> m_attributesValues;
180 SwapEndianness(e,
self.m_name);
181 SwapEndianness(e,
self.m_attributesValues);
184 class VisualDebugAttributeGroupValuesBlobBuilder :
public BaseBlobBuilder<AttributeGroupValuesBlob>
187 VisualDebugAttributeGroupValuesBlobBuilder(
VisualDebugAttributeGroup* attributeGroup) : m_attributeGroup(attributeGroup) {}
188 virtual void DoBuild();
189 VisualDebugAttributeGroup* m_attributeGroup;
#define BLOB_SET(blob, value)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:136
Contains attributes names, types and headers, and DOES NOT contain attributes values (see VisualDebug...
Definition: attributesblobs.h:119
int KyInt32
Type used internally to represent a 32-bit integer.
Definition: types.h:35
#define KY_CLASS_WITHOUT_COPY(ClassName)
Define to forbid copy constructor and copy assignment.
Definition: types.h:387
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
A group of Key / valuetype / arrayof values, where the keys and types are created once...
Definition: visualdebugattributes.h:109
AttributeGroupRemovalBlob * m_blob
The blob maintained by this builder. Only modify using the macros listed under DoBuild().
Definition: baseblobbuilder.h:117
Definition: gamekitcrowddispersion.h:20
#define BLOB_STRING(str, src)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:179
BaseBlobBuilder is an abstract base class that builds a blob within a contiguous block of memory...
Definition: baseblobbuilder.h:30
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
Contains attributes values and DOES NOT contain attributes names, types and headers (see VisualDebugA...
Definition: attributesblobs.h:178
#define KyUInt32MAXVAL
The maximum value that can be stored in the KyUInt32 variable type.
Definition: types.h:226