ezEngine Release 26.3
Loading...
Searching...
No Matches
ezRttiConverterContext Class Reference

Context object that manages object lifetime and relationships during RTTI-based conversion. More...

#include <RttiConverter.h>

Inheritance diagram for ezRttiConverterContext:

Public Member Functions

virtual void Clear ()
 Clears all cached objects and resets the context state.
 
virtual ezUuid GenerateObjectGuid (const ezUuid &parentGuid, const ezAbstractProperty *pProp, ezVariant index, void *pObject) const
 Generates a guid for a new object. Default implementation generates stable guids derived from parentGuid + property name + index and ignores the address of pObject.
 
virtual ezInternal::NewInstance< void > CreateObject (const ezUuid &guid, const ezRTTI *pRtti)
 
virtual void DeleteObject (const ezUuid &guid)
 
virtual void RegisterObject (const ezUuid &guid, const ezRTTI *pRtti, void *pObject)
 
virtual void UnregisterObject (const ezUuid &guid)
 
virtual ezRttiConverterObject GetObjectByGUID (const ezUuid &guid) const
 
virtual ezUuid GetObjectGUID (const ezRTTI *pRtti, const void *pObject) const
 
virtual const ezRTTIFindTypeByName (ezStringView sName) const
 
template<typename T >
void GetObjectsByType (ezDynamicArray< T * > &out_objects, ezDynamicArray< ezUuid > *out_pUuids=nullptr)
 
virtual ezUuid EnqueObject (const ezUuid &guid, const ezRTTI *pRtti, void *pObject)
 
virtual ezRttiConverterObject DequeueObject ()
 
virtual void OnUnknownTypeError (ezStringView sTypeName)
 

Protected Attributes

ezHashTable< ezUuid, ezRttiConverterObjectm_GuidToObject
 
ezHashTable< const void *, ezUuidm_ObjectToGuid
 
ezSet< ezUuidm_QueuedObjects
 

Detailed Description

Context object that manages object lifetime and relationships during RTTI-based conversion.

This class provides the infrastructure for converting between native objects and abstract object graphs. It handles object creation, deletion, GUID management, and type resolution during both serialization and deserialization processes.

Key responsibilities:

  • Object lifecycle management (creation, registration, deletion)
  • GUID generation and object-to-GUID mapping
  • Type resolution and unknown type handling
  • Object queuing for deferred processing
  • Cross-reference resolution during deserialization

The context can be customized by overriding virtual methods to implement:

  • Custom GUID generation strategies
  • Alternative object creation patterns
  • Specialized type resolution logic
  • Custom error handling for unknown types

Member Function Documentation

◆ Clear()

void ezRttiConverterContext::Clear ( )
virtual

Clears all cached objects and resets the context state.

Reimplemented in ezWorldRttiConverterContext.

◆ GenerateObjectGuid()

ezUuid ezRttiConverterContext::GenerateObjectGuid ( const ezUuid parentGuid,
const ezAbstractProperty pProp,
ezVariant  index,
void *  pObject 
) const
virtual

Generates a guid for a new object. Default implementation generates stable guids derived from parentGuid + property name + index and ignores the address of pObject.

Reimplemented in ezApplyNativePropertyChangesContext.


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