24#include "AstUtil/SharedPtr.hpp"
25#include "AstUtil/Object.hpp"
48AST_UTIL_CAPI Class*
aGetClass(StringView name);
74AST_UTIL_CAPI Object*
aNewObject(StringView name, Object* parentScope=
nullptr);
87AST_UTIL_API SharedPtr<Object>
aMakeObject(StringView name, Object* parentScope=
nullptr);
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:81
SharedPtr< Object > aMakeObject(StringView name, Object *parentScope)
创建对象,返回智能指针
定义 RTTIAPI.cpp:72
Object * aGetParentScope(Object *obj)
获取对象的父作用域
定义 RTTIAPI.cpp:92
uint32_t aAddObject(Object *object)
添加对象到对象管理器
定义 RTTIAPI.cpp:82
Class * aGetClass(StringView name)
获取类的元数据
定义 RTTIAPI.cpp:36
AST_UTIL_API Object * aFindChild(Object *parentScope, Class *cls, StringView name)
查找对象的子对象
Object * aGetObject(uint32_t id)
根据索引获取对象
定义 RTTIAPI.cpp:77
errc_t aSetParentScope(Object *obj, Object *parentScope)
设置对象的父作用域
定义 RTTIAPI.cpp:87
Object * aNewObject(StringView name, Object *parentScope)
创建对象,返回裸指针
定义 RTTIAPI.cpp:59
AST_UTIL_CAPI uint32_t aGetObjectID(Object *obj)
获取对象的索引/对象ID
void aDeleteObject(Object *obj)
删除对象
定义 RTTIAPI.cpp:67
void aGetAllClassNames(std::vector< std::string > &names)
获取所有已注册的类名
定义 RTTIAPI.cpp:31
Object * aGetClassDefaultObject(StringView name)
根据类名获取类的默认对象(CDO)
定义 RTTIAPI.cpp:46
void aRegisterClass(Class *cls)
注册类
定义 RTTIAPI.cpp:41