XII Release 0.1.0
Loading...
Searching...
No Matches
xiiPhantomRttiManager Class Reference

Manages all xiiPhantomRTTI types that have been added to him. More...

#include <PhantomRttiManager.h>

Static Public Member Functions

static const xiiRTTIRegisterType (xiiReflectedTypeDescriptor &ref_desc)
 Adds a reflected type to the list of accessible types.
 
static bool UnregisterType (const xiiRTTI *pRtti)
 Removes a type from the list of accessible types.
 

Static Public Attributes

static xiiCopyOnBroadcastEvent< const xiiPhantomRttiManagerEvent & > s_Events
 

Detailed Description

Manages all xiiPhantomRTTI types that have been added to him.

A xiiPhantomRTTI cannot be created directly but must be created via this managers RegisterType function with a given xiiReflectedTypeDescriptor.

Member Function Documentation

◆ RegisterType()

const xiiRTTI * xiiPhantomRttiManager::RegisterType ( xiiReflectedTypeDescriptor & ref_desc)
static

Adds a reflected type to the list of accessible types.

Types must be added in the correct order, any type must be added before it can be referenced in other types. Any base class must be added before any class deriving from it can be added. Call the function again if a type has changed during the run of the program. If the type actually differs the last known class layout the m_TypeChangedEvent event will be called with the old and new xiiRTTI.

See also
xiiReflectionUtils::GetReflectedTypeDescriptorFromRtti
Todo
Had to increase the recursion depth to allow registering phantom types that are based on actual types coming from the engine process.

◆ UnregisterType()

bool xiiPhantomRttiManager::UnregisterType ( const xiiRTTI * pRtti)
static

Removes a type from the list of accessible types.

No instance of the given type or storage must still exist when this function is called.


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