Open 3D Engine AzCore API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Serialize::DataElementNode Class Reference

#include <SerializeContext.h>

Classes

struct  DataElementInstanceData
 

Public Member Functions

template<typename T >
bool GetData (T &value, SerializeContext::ErrorHandler *errorHandler=nullptr)
 
template<typename T >
bool GetChildData (u32 childNameCrc, T &value)
 
template<typename T >
bool SetData (SerializeContext &sc, const T &value, SerializeContext::ErrorHandler *errorHandler=nullptr)
 
template<typename T >
bool GetDataHierarchy (SerializeContext &, T &value, SerializeContext::ErrorHandler *errorHandler=nullptr)
 
template<typename T >
bool FindSubElementAndGetData (AZ::Crc32 crc, T &outValue)
 
bool Convert (SerializeContext &sc, const char *name, const Uuid &id)
 
bool Convert (SerializeContext &sc, const Uuid &id)
 
template<typename T >
bool Convert (SerializeContext &sc, const char *name)
 
template<typename T >
bool Convert (SerializeContext &sc)
 
DataElementGetRawDataElement ()
 
const DataElementGetRawDataElement () const
 
u32 GetName () const
 
const char * GetNameString () const
 
void SetName (const char *newName)
 
unsigned int GetVersion () const
 
void SetVersion (unsigned int version)
 
const UuidGetId () const
 
int GetNumSubElements () const
 
DataElementNodeGetSubElement (int index)
 
int FindElement (u32 crc)
 
DataElementNodeFindSubElement (u32 crc)
 
void RemoveElement (int index)
 
bool RemoveElementByName (u32 crc)
 
int AddElement (const DataElementNode &elem)
 
int AddElement (SerializeContext &sc, const char *name, const Uuid &id)
 
int AddElement (SerializeContext &sc, const char *name, const ClassData &classData)
 
int AddElement (SerializeContext &sc, AZStd::string_view name, GenericClassInfo *genericClassInfo)
 
template<typename T >
int AddElement (SerializeContext &sc, const char *name)
 
template<typename T >
int AddElementWithData (SerializeContext &sc, const char *name, const T &dataToSet)
 
int ReplaceElement (SerializeContext &sc, int index, const char *name, const Uuid &id)
 
template<typename T >
int ReplaceElement (SerializeContext &sc, int index, const char *name)
 

Protected Types

typedef AZStd::vector< DataElementNodeNodeArray
 
using NodeStack = AZStd::list< DataElementInstanceData >
 

Protected Member Functions

bool SetDataHierarchy (SerializeContext &sc, const void *objectPtr, const Uuid &classId, SerializeContext::ErrorHandler *errorHandler=nullptr, const ClassData *classData=nullptr)
 
bool GetDataHierarchy (void *objectPtr, const Uuid &classId, SerializeContext::ErrorHandler *errorHandler=nullptr)
 
bool GetDataHierarchyEnumerate (SerializeContext::ErrorHandler *errorHandler, NodeStack &nodeStack)
 
bool GetClassElement (ClassElement &classElement, const DataElementNode &parentDataElement, SerializeContext::ErrorHandler *errorHandler) const
 

Protected Attributes

DataElement m_element
 Serialization data for this element.
 
const ClassDatam_classData
 Reflected ClassData for this element.
 
NodeArray m_subElements
 Nodes of sub elements.
 

Friends

class AZ::DataOverlayTarget
 

Detailed Description

Represents a node in the tree of serialization data. Holds a DataElement describing itself and a list of sub nodes. For example, a class would be represented as a parent node with its member variables in sub nodes.

Member Function Documentation

◆ AddElementWithData()

template<typename T >
int AZ::Serialize::DataElementNode::AddElementWithData ( SerializeContext sc,
const char *  name,
const T &  dataToSet 
)
Returns
index of the replaced element (index) if replaced, otherwise -1

◆ Convert()

bool AZ::Serialize::DataElementNode::Convert ( SerializeContext sc,
const char *  name,
const Uuid id 
)

Converts current DataElementNode from one type to another. Keep in mind that if the new "type" has sub-elements (not leaf - serialized element) you will need to add those elements after calling convert.

◆ GetData()

template<typename T >
bool AZ::Serialize::DataElementNode::GetData ( T &  value,
SerializeContext::ErrorHandler errorHandler = nullptr 
)

Get/Set data work only on leaf nodes

◆ GetDataHierarchy()

template<typename T >
bool AZ::Serialize::DataElementNode::GetDataHierarchy ( SerializeContext ,
T &  value,
SerializeContext::ErrorHandler errorHandler = nullptr 
)
Deprecated:
Use GetData instead

The documentation for this class was generated from the following file: