🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
RTTIAPI.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/SharedPtr.hpp"
25#include "AstUtil/Object.hpp"
26
27AST_NAMESPACE_BEGIN
28
34// -----------
35// 类型元信息
36// -----------
37
38
42AST_UTIL_CAPI void aGetAllClassNames(std::vector<std::string>& names);
43
48AST_UTIL_CAPI Class* aGetClass(StringView name);
49
54AST_UTIL_CAPI void aRegisterClass(Class* cls);
55
60AST_UTIL_API Object* aGetClassDefaultObject(StringView name);
61
66AST_UTIL_API Object* aGetClassDefaultObject(Class* cls);
67
74AST_UTIL_CAPI Object* aNewObject(StringView name, Object* parentScope=nullptr);
75
80AST_UTIL_CAPI void aDeleteObject(Object* obj);
81
87AST_UTIL_API SharedPtr<Object> aMakeObject(StringView name, Object* parentScope=nullptr);
88
89
90
91// -----------
92// 对象管理
93// -----------
94
99AST_UTIL_CAPI Object* aGetObject(uint32_t id);
100
104AST_UTIL_CAPI uint32_t aGetObjectID(Object* obj);
105
112AST_UTIL_CAPI uint32_t aAddObject(Object* object);
113
118AST_UTIL_CAPI errc_t aSetParentScope(Object* obj, Object* parentScope);
119
120
124AST_UTIL_CAPI Object* aGetParentScope(Object* obj);
125
132AST_UTIL_API Object* aFindChild(Object* parentScope, Class* cls, StringView name);
133
134
135
138AST_NAMESPACE_END
类元信息
定义 Class.hpp:37
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 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