15#ifndef UTPACKREFLECT_HPP
16#define UTPACKREFLECT_HPP
39 assert(mCurrentInstancePtr ==
nullptr);
40 mCurrentInstancePtr = (
char*)&aInstance;
43 mCurrentLayoutPtr->mStructSizeBytes =
sizeof(T);
49 static void Call(
void* aUnionPtr,
int aFieldType)
51 ((T*)aUnionPtr)->SetFieldType((
typename T::FieldType)aFieldType);
67 mCurrentLayoutPtr->mOptionalFlagsOffset = (int)((
char*)&aMember - mCurrentInstancePtr);
68 mCurrentLayoutPtr->mOptionalFlagsBytes =
sizeof(T);
72 void OptionalMember(
const char* aTypeName,
const char* aMemberName, T& aMember,
int aOptionIndex)
74 assert(mCurrentInstancePtr);
77 reinterpret_cast<char*
>(&aMember),
78 ut::safe_cast<unsigned short, size_t>(
sizeof(T)),
83 void RequiredMember(
const char* aTypeName,
const char* aMemberName, T& aMember)
85 assert(mCurrentInstancePtr);
88 reinterpret_cast<char*
>(&aMember),
89 ut::safe_cast<unsigned short, size_t>(
sizeof(T)),
104 void AddMember(
const char* aTypeName,
const char* aMemberName,
char* aMemberPtr,
unsigned short aMemberSize,
int aOptionIndex);
107 char* mCurrentInstancePtr;
109 int mNextOptionIndex;
#define WSF_UT_EXPORT
Definition WsfUtExport.hpp:32
A field in a struct or union.
Definition UtPackSchema.hpp:197
Definition UtPackMessage.hpp:119
~UtPackReflector()=default
void RequiredMember(const char *aTypeName, const char *aMemberName, T &aMember)
Definition UtPackReflect.hpp:83
void BeginUnion(const char *aName, T &aInstance)
Definition UtPackReflect.hpp:56
void OptionalFlags(T &aMember)
Definition UtPackReflect.hpp:65
friend class UtPackSerializer
Definition UtPackReflect.hpp:32
void BeginStruct(const char *aName, T &aInstance)
Definition UtPackReflect.hpp:37
void RegisterMessage(T &aMessage)
Definition UtPackReflect.hpp:98
UtPackReflector(UtPackSerializer &aSerializer)
Definition UtPackReflect.cpp:42
void OptionalMember(const char *aTypeName, const char *aMemberName, T &aMember, int aOptionIndex)
Definition UtPackReflect.hpp:72
Definition UtPackStream.hpp:26
Definition UtPack.hpp:137
const char * mStructName
Definition UtPack.hpp:112
Definition UtPackSchema.hpp:170
Definition UtPackSchema.hpp:118
Definition UtPackReflect.hpp:48
static void Call(void *aUnionPtr, int aFieldType)
Definition UtPackReflect.hpp:49
Definition UtPackReflect.hpp:94
static UtPackMessage * Create()
Definition UtPackReflect.hpp:95