9 #ifndef Navigation_RawDataBlob_H
10 #define Navigation_RawDataBlob_H
24 enum AggregateBlobCategory
27 Blob_Navigation_Aggregate_SdkVersionBlob = 0,
28 Blob_Navigation_Aggregate_NavDataRawBlob = 1,
29 Blob_Navigation_Aggregate_ClientInputRawBlob = 2,
30 Blob_Navigation_Aggregate_ColDataRawBlob = 3,
32 Blob_Navigation_Aggregate_Count
34 class AggregateBlobCategoryBuilder :
public IBlobCategoryBuilder
37 AggregateBlobCategoryBuilder() : IBlobCategoryBuilder(Blob_Navigation, Blob_Navigation_Aggregate, Blob_Navigation_Aggregate_Count) {}
38 virtual void Build(BlobCategory* category)
const;
47 KY_ROOT_BLOB_CLASS(Aggregate, SdkVersionBlob, 0)
49 bool GetSdkVersion(Version& version)
const
50 {
return Version::GetFromFullVersionString(version, m_data.GetValues()); }
53 BlobArray<char> m_data;
57 SwapEndianness(e,
self.m_data);
61 class SdkVersionBlobBuilder :
public BaseBlobBuilder<SdkVersionBlob>
64 SdkVersionBlobBuilder() {}
67 virtual void DoBuild()
69 const char* version = Version::GetFullVersion();
79 KY_ROOT_BLOB_CLASS(Aggregate, NavDataRawBlob, 0)
81 BlobArray<
char> m_data;
83 inline
void SwapEndianness(
Kaim::Endianness::Target e, NavDataRawBlob& self)
85 SwapEndianness(e,
self.m_data);
90 class ClientInputRawBlob
93 KY_ROOT_BLOB_CLASS(Aggregate, ClientInputRawBlob, 0)
95 BlobArray<
char> m_data;
97 inline
void SwapEndianness(
Kaim::Endianness::Target e, ClientInputRawBlob& self)
99 SwapEndianness(e,
self.m_data);
107 KY_ROOT_BLOB_CLASS(Aggregate, ColDataRawBlob, 0)
109 BlobArray<
char> m_data;
111 inline
void SwapEndianness(
Kaim::Endianness::Target e, ColDataRawBlob& self)
113 SwapEndianness(e,
self.m_data);
120 class RawDataBlobBuilder :
public BaseBlobBuilder<T>
123 RawDataBlobBuilder(
const char* data,
KyUInt32 dataSize) : m_data(data), m_dataSize(dataSize) {}
126 virtual void DoBuild()
Target
Enumerates the possible endianness types relative to the current platform.
Definition: endianness.h:35
SdkVersionBlob * 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
unsigned int KyUInt32
Type used internally to represent an unsigned 32-bit integer.
Definition: types.h:36
#define BLOB_ARRAY_COPY(blobArray, src, count)
Use this macro only in implementations of BaseBlobBuilder::DoBuild().
Definition: baseblobbuilder.h:161