18 const std::string& name,
24 int32_t enumCount = 0,
25 const char** enumStrings =
nullptr);
33 virtual void ReadStream(
Stream& stream, uint32_t version,
bool net,
bool external)
override;
38 virtual void DeepCopy(
const Datum& src,
bool forceInternalStorage)
override;
39 virtual void Destroy()
override;
41 void PushBackVector(
void* value =
nullptr);
42 void EraseVector(uint32_t index);
43 void ResizeVector(uint32_t count);
44 Property& MakeVector(uint8_t minCount = 0, uint8_t maxCount = 255);
45 bool IsVector()
const;
48 void CreateExtraData()
const;
49 void DestroyExtraData()
const;
52 static void SetCategory(
const char* category);
53 static void ClearCategory();
58 virtual void Reset()
override;
65 mutable Datum* mExtra =
nullptr;
66 void* mVector =
nullptr;
67 uint8_t mMinCount = 0;
68 uint8_t mMaxCount = 255;
69 bool mIsVector =
false;
71 std::string mDisplayName;
72 int32_t mEnumCount = 0;
73 const char** mEnumStrings =
nullptr;
74 const char* mCategory =
"";
79struct ScopedPropertyCategory
81 ScopedPropertyCategory(
const char* catName) { Property::SetCategory(catName); }
82 ~ScopedPropertyCategory() { Property::ClearCategory(); }
85#define SCOPED_CATEGORY(CatName) ScopedPropertyCategory scopedCat(CatName);
87#define SCOPED_CATEGORY(CatName)
DatumType
Definition Datum.h:28
bool(* DatumChangeHandlerFP)(class Datum *prop, uint32_t index, const void *newValue)
Definition Datum.h:17
#define NULL_DATUM
Definition Datum.h:15
Export macros for Polyphase Engine symbols.
#define POLYPHASE_API
Definition PolyphaseAPI.h:31
ByteExtra
Definition Property.h:7
virtual void Destroy()
Definition Datum.cpp:2019
virtual uint32_t GetSerializationSize(bool net) const
Definition Datum.cpp:594
Datum & operator=(const Datum &src)
Definition Datum.cpp:1534
virtual void ReadStream(Stream &stream, uint32_t version, bool net, bool external)
Definition Datum.cpp:394
virtual void Reset()
Definition Datum.cpp:2508
virtual void DeepCopy(const Datum &src, bool forceInternalStorage)
Definition Datum.cpp:2039
virtual bool IsProperty() const
Definition Datum.cpp:1950
virtual void WriteStream(Stream &stream, bool net) const
Definition Datum.cpp:510
static const char * sCategory
Definition Property.h:62
std::string mName
Definition Property.h:64