#include <SerializeContext.h>
Public Types | |
enum | Flags { FLG_POINTER = (1 << 0) , FLG_BASE_CLASS = (1 << 1) , FLG_NO_DEFAULT_VALUE = (1 << 2) , FLG_DYNAMIC_FIELD = (1 << 3) , FLG_UI_ELEMENT = (1 << 4) } |
enum class | AttributeOwnership { Parent , Self , None } |
Public Member Functions | |
AZ_TYPE_INFO_WITH_NAME_DECL (ClassElement) | |
ClassElement & | operator= (const ClassElement &other) |
void | ClearAttributes () |
Attribute * | FindAttribute (AttributeId attributeId) const |
Public Attributes | |
const char * | m_name { "" } |
Used in XML output and debugging purposes. | |
u32 | m_nameCrc {} |
CRC32 of m_name. | |
Uuid | m_typeId = AZ::TypeId::CreateNull() |
size_t | m_dataSize {} |
size_t | m_offset {} |
IRttiHelper * | m_azRtti {} |
Interface used to support RTTI. | |
GenericClassInfo * | m_genericClassInfo = nullptr |
Valid when the generic class is set. So you don't search for the actual type in the class register. | |
Edit::ElementData * | m_editData {} |
Pointer to edit data (generated by EditContext). | |
AZStd::vector< AttributeSharedPair, AZStdFunctorAllocator > | m_attributes |
AttributeOwnership | m_attributeOwnership = AttributeOwnership::Parent |
int | m_flags {} |
Class element. When a class doesn't have a direct serializer, he is an aggregation of ClassElements (which can be another classes).
Enumerator | |
---|---|
FLG_POINTER | Element is stored as pointer (it's not a value). |
FLG_BASE_CLASS | Set if the element is a base class of the holding class. |
FLG_NO_DEFAULT_VALUE | Set if the class element can't have a default value. |
FLG_DYNAMIC_FIELD | Set if the class element represents a dynamic field (DynamicSerializableField::m_data). |
FLG_UI_ELEMENT | Set if the class element represents a UI element tied to the ClassData of its parent. |
AZStd::vector<AttributeSharedPair, AZStdFunctorAllocator> AZ::Serialize::ClassElement::m_attributes |
Attributes attached to ClassElement. Lambda is required here as AZStdFunctorAllocator expects a function pointer that returns an IAllocator& and the AZ::AllocatorInstance<AZ::SystemAllocator>::Get returns an AZ::SystemAllocator& which while it inherits from IAllocator, does not work as function pointers do not support covariant return types