Rebel Fork Framework
|
Registry of Object reflections. More...
#include <Urho3D/Core/ObjectReflection.h>
Public Member Functions | |
ObjectReflectionRegistry (Context *context) | |
ObjectReflection * | Reflect (const TypeInfo *typeInfo) |
Return existing or new reflection for given type. | |
ObjectReflection * | ReflectCustomType (ea::unique_ptr< TypeInfo > typeInfo) |
template<class T > | |
ObjectReflection * | Reflect () |
template<class T > | |
ObjectReflection * | AddReflection (ea::string_view category="") |
Add new object reflection with or without object creation factory and assign it to the category. | |
template<class T > | |
ObjectReflection * | AddFactoryReflection (ea::string_view category="") |
template<class T > | |
ObjectReflection * | AddAbstractReflection (ea::string_view category="") |
ObjectReflection * | GetReflection (StringHash typeNameHash) |
Return existing reflection for given type. | |
const ObjectReflection * | GetReflection (StringHash typeNameHash) const |
bool | IsReflected (StringHash typeNameHash) const |
template<class T > | |
ObjectReflection * | GetReflection () |
template<class T > | |
const ObjectReflection * | GetReflection () const |
template<class T > | |
bool | IsReflected () const |
void | SetReflectionCategory (const TypeInfo *typeInfo, ea::string_view category) |
Assign object reflection to the category. | |
template<class T > | |
void | SetReflectionCategory (ea::string_view category) |
void | RemoveReflection (StringHash typeNameHash) |
Remove reflection. | |
template<class T > | |
void | RemoveReflection () |
SharedPtr< Object > | CreateObject (StringHash typeNameHash) |
Create an object by type. Return pointer to it or null if no reflection is found. | |
const ea::unordered_map< StringHash, SharedPtr< ObjectReflection > > & | GetObjectReflections () const |
Return reflections of all objects. | |
const ea::unordered_map< ea::string, ea::vector< StringHash > > & | GetObjectCategories () const |
Return categories of reflected objects. | |
Shortcuts to call ObjectReflection methods without creating new reflection if one doesn't exist | |
template<class T > | |
void | RemoveAttribute (StringHash nameHash) |
template<class T > | |
void | UpdateAttributeDefaultValue (StringHash nameHash, const Variant &defaultValue) |
Public Attributes | |
Signal< void(ObjectReflection *), ObjectReflectionRegistry > | OnReflectionRemoved |
Private Member Functions | |
template<class T , bool EnableFactory, bool RequireFactory> | |
ObjectReflection * | AddReflectionInternal (ea::string_view category) |
void | ErrorReflectionNotFound (StringHash typeNameHash) const |
void | ErrorDuplicateReflection (StringHash typeNameHash) const |
void | AddReflectionToCurrentCategory (ObjectReflection *reflection) |
void | RemoveReflectionFromCurrentCategory (ObjectReflection *reflection) |
Private Attributes | |
Context * | context_ {} |
ea::unordered_map< StringHash, SharedPtr< ObjectReflection > > | reflections_ |
ea::unordered_map< ea::string, ea::vector< StringHash > > | categories_ |
Registry of Object reflections.
Signal<void(ObjectReflection*), ObjectReflectionRegistry> Urho3D::ObjectReflectionRegistry::OnReflectionRemoved |
Object type is removed from reflection. All existing instances of the type shall be immediately destroyed.