|
🛰️航天仿真算法库 SpaceAST 0.0.1
|
提供运行时类型信息功能,包括类元信息、属性元信息、对象的强弱引用计数。
类 | |
| class | ast::PropertyTimePoint |
| class | ast::AttributeBasic< ObjectPtrType, PropertyType > |
| class | ast::Object |
| class | ast::Class |
| class | ast::Field |
| class | ast::Property |
| class | ast::PropertyBool |
| class | ast::PropertyDouble |
| class | ast::PropertyInt |
| class | ast::PropertyObject |
| class | ast::PropertyPOD |
| class | ast::PropertyQuantity |
| class | ast::PropertyString |
| class | ast::PropertyStruct |
| struct | ast::property_trait< T > |
| struct | ast::property_trait< std::string > |
| struct | ast::property_trait< TimePoint > |
| class | ast::Struct |
| class | ast::SharedPtr< _Object > |
| class | ast::WeakPtr< _Object > |
宏定义 | |
| #define | AST_OBJECT(TYPE) |
| #define | AST_PROPERT(NAME) |
| #define | AST_PROPERT_NAME(CLASS, NAME) |
| #define | aPropertyName(CLASS, NAME) |
| #define | _AST_IMPL_OBJECT(TYPE) |
类型定义 | |
| typedef AttributeBasic< WeakPtr< Object >, Property > | ast::Attribute |
| typedef errc_t(* | ast::FPropertyGet) (const void *obj, void *value) |
| typedef errc_t(* | ast::FPropertySet) (void *obj, void const *value) |
枚举 | |
| enum | { ast::INVALID_ID = -1 } |
| enum | ast::EValueType { ast::eDouble , ast::eInt , ast::eBool , ast::eString } |
函数 | |
| errc_t | ast::aFakeGet (const void *container, void *value) |
| errc_t | ast::aFakeSet (void *container, const void *value) |
| Property * | ast::_aNewPropertyBool (FPropertyGet getter, FPropertySet setter) |
| Property * | ast::_aNewPropertyInt (FPropertyGet getter, FPropertySet setter) |
| Property * | ast::_aNewPropertyDouble (FPropertyGet getter, FPropertySet setter) |
| Property * | ast::_aNewPropertyString (FPropertyGet getter, FPropertySet setter) |
| Property * | ast::_aNewPropertyQuantity (FPropertyGet getter, FPropertySet setter, Dimension dimension) |
| template<typename T > | |
| A_ALWAYS_INLINE Property * | ast::_aNewProperty (FPropertyGet getter, FPropertySet setter) |
| template<> | |
| A_ALWAYS_INLINE Property * | ast::_aNewProperty< bool > (FPropertyGet getter, FPropertySet setter) |
| template<> | |
| A_ALWAYS_INLINE Property * | ast::_aNewProperty< int > (FPropertyGet getter, FPropertySet setter) |
| template<> | |
| A_ALWAYS_INLINE Property * | ast::_aNewProperty< double > (FPropertyGet getter, FPropertySet setter) |
| template<> | |
| A_ALWAYS_INLINE Property * | ast::_aNewProperty< std::string > (FPropertyGet getter, FPropertySet setter) |
| template<typename T , bool T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyBoolMem () |
| template<typename T , bool T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyBool () |
| template<typename T , int T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyIntMem () |
| template<typename T , int T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyInt () |
| template<typename T , double T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyDoubleMem () |
| template<typename T , double T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyDouble () |
| template<typename T , double T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyQuantityMem (Dimension dimension) |
| template<typename T , double T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyQuantity (Dimension dimension) |
| template<typename T , std::string T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyStringMem () |
| template<typename T , std::string T::* Member> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyString () |
| template<typename T , bool(T::*)() const Getter, void(T::*)(bool) Setter> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyBool () |
| template<typename T , int(T::*)() const Getter, void(T::*)(int) Setter> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyInt () |
| template<typename T , double(T::*)() const Getter, void(T::*)(double) Setter> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyDouble () |
| template<typename T , double(T::*)() const Getter, void(T::*)(double) Setter> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyQuantity (Dimension dimension) |
| template<typename T , const std::string &(T::*)() const Getter, void(T::*)(StringView) Setter> | |
| A_ALWAYS_INLINE Property * | ast::aNewPropertyString () |
| void | ast::aGetAllClassNames (std::vector< std::string > &names) |
| Class * | ast::aGetClass (StringView name) |
| void | ast::aRegisterClass (Class *cls) |
| Object * | ast::aGetClassDefaultObject (StringView name) |
| Object * | ast::aGetClassDefaultObject (Class *cls) |
| Object * | ast::aNewObject (StringView name, Object *parentScope=nullptr) |
| void | ast::aDeleteObject (Object *obj) |
| SharedPtr< Object > | ast::aMakeObject (StringView name, Object *parentScope=nullptr) |
| Object * | ast::aGetObject (uint32_t id) |
| AST_UTIL_CAPI uint32_t | ast::aGetObjectID (Object *obj) |
| uint32_t | ast::aAddObject (Object *object) |
| errc_t | ast::aSetParentScope (Object *obj, Object *parentScope) |
| Object * | ast::aGetParentScope (Object *obj) |
| AST_UTIL_API Object * | ast::aFindChild (Object *parentScope, Class *cls, StringView name) |
| #define _AST_IMPL_OBJECT | ( | TYPE | ) |
| #define aPropertyName | ( | CLASS, | |
| NAME ) |
| #define AST_OBJECT | ( | TYPE | ) |
| #define AST_PROPERT | ( | NAME | ) |
| #define AST_PROPERT_NAME | ( | CLASS, | |
| NAME ) |
| enum ast::EValueType |
| A_ALWAYS_INLINE Property * ast::_aNewProperty< bool > | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个布尔属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| A_ALWAYS_INLINE Property * ast::_aNewProperty< double > | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个双精度属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| A_ALWAYS_INLINE Property * ast::_aNewProperty< int > | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个整数属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| A_ALWAYS_INLINE Property * ast::_aNewProperty< std::string > | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个字符串属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| AST_UTIL_CAPI Property * ast::_aNewPropertyBool | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个布尔属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| AST_UTIL_CAPI Property * ast::_aNewPropertyDouble | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个双精度属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| AST_UTIL_CAPI Property * ast::_aNewPropertyInt | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个整数属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| AST_UTIL_CAPI Property * ast::_aNewPropertyQuantity | ( | FPropertyGet | getter, |
| FPropertySet | setter, | ||
| Dimension | dimension ) |
创建一个量纲属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| dimension | 量纲 |
| AST_UTIL_CAPI Property * ast::_aNewPropertyString | ( | FPropertyGet | getter, |
| FPropertySet | setter ) |
创建一个字符串属性
| getter | 获取属性值的函数指针 |
| setter | 设置属性值的函数指针 |
| AST_UTIL_CAPI uint32_t ast::aAddObject | ( | Object * | object | ) |
添加对象到对象管理器
将对象添加到对象管理器中,返回对象的索引/对象ID, 如果对象已存在则返回已存在的索引/对象ID
| object | 对象指针 |
| AST_UTIL_CAPI void ast::aDeleteObject | ( | Object * | obj | ) |
删除对象
用于释放对象裸指针对应的内存
| obj | 对象指针 |
| AST_UTIL_CAPI errc_t ast::aFakeGet | ( | const void * | container, |
| void * | value ) |
模拟获取属性值的函数
| container | 对象指针 |
| value | 指向属性值的指针 |
| AST_UTIL_CAPI errc_t ast::aFakeSet | ( | void * | container, |
| const void * | value ) |
模拟设置属性值的函数
| container | 对象指针 |
| value | 指向属性值的指针 |
| AST_UTIL_API Object * ast::aFindChild | ( | Object * | parentScope, |
| Class * | cls, | ||
| StringView | name ) |
查找对象的子对象
根据父对象、类指针和子对象名查找子对象
| parentScope | 父对象指针 |
| cls | 类指针 |
| name | 子对象名 |
| AST_UTIL_CAPI void ast::aGetAllClassNames | ( | std::vector< std::string > & | names | ) |
获取所有已注册的类名
names 输出参数,用于存储所有已注册的类名
| AST_UTIL_CAPI Class * ast::aGetClass | ( | StringView | name | ) |
获取类的元数据
根据类名获取类的元数据
| name | 类名 |
根据类指针获取类的默认对象(CDO)
CDO是类的默认构造函数创建的对象,用于存储类的默认属性值等信息,参考了Unreal Engine的设计
| cls | 类指针 |
| AST_UTIL_API Object * ast::aGetClassDefaultObject | ( | StringView | name | ) |
根据类名获取类的默认对象(CDO)
CDO是类的默认构造函数创建的对象,用于存储类的默认属性值等信息,参考了Unreal Engine的设计
| name | 类名 |
| AST_UTIL_CAPI Object * ast::aGetObject | ( | uint32_t | id | ) |
根据索引获取对象
根据对象的索引获取对象
| id | 对象索引/对象ID |
| AST_UTIL_CAPI uint32_t ast::aGetObjectID | ( | Object * | obj | ) |
获取对象的索引/对象ID
obj 对象指针
| AST_UTIL_API SharedPtr< Object > ast::aMakeObject | ( | StringView | name, |
| Object * | parentScope = nullptr ) |
创建对象,返回智能指针
根据类名创建对象
| name | 类名 |
| parentScope | 父作用域指针 |
| AST_UTIL_CAPI Object * ast::aNewObject | ( | StringView | name, |
| Object * | parentScope = nullptr ) |
创建对象,返回裸指针
根据类名创建对象
| name | 类名 |
| parentScope | 父作用域指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyBool | ( | ) |
创建一个布尔属性
本函数创建一个布尔属性,属性值通过访问对象的成员变量获取。
| T | 类类型 |
| member | 布尔属性成员指针 |
本函数创建一个布尔属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 布尔属性获取函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyBool | ( | ) |
创建一个布尔属性
本函数创建一个布尔属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 布尔属性获取函数指针 |
| Setter | 布尔属性设置函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyBoolMem | ( | ) |
创建一个布尔属性
本函数创建一个布尔属性,属性值通过访问对象的成员变量获取。
| T | 类类型 |
| member | 布尔属性成员指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyDouble | ( | ) |
创建一个双精度属性
本函数创建一个双精度属性,属性值通过访问对象的成员变量获取。
| T | 类类型 |
| member | 双精度属性成员指针 |
本函数创建一个双精度属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 双精度属性获取函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyDouble | ( | ) |
创建一个双精度属性
本函数创建一个双精度属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 双精度属性获取函数指针 |
| Setter | 双精度属性设置函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyInt | ( | ) |
创建一个整数属性
本函数创建一个整数属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 整数属性获取函数指针 |
| Setter | 整数属性设置函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyQuantity | ( | Dimension | dimension | ) |
创建一个数量值属性
本函数创建一个数量值属性,属性值通过访问对象的成员变量获取。
| T | 类类型 |
| member | 数量值属性成员指针 |
本函数创建一个数量值属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 数量值属性获取函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyQuantity | ( | Dimension | dimension | ) |
创建一个数量值属性
本函数创建一个数量值属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 数量值属性获取函数指针 |
| Setter | 数量值属性设置函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyString | ( | ) |
创建一个字符串属性
本函数创建一个字符串属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 字符串属性获取函数指针 |
| A_ALWAYS_INLINE Property * ast::aNewPropertyString | ( | ) |
创建一个字符串属性
本函数创建一个字符串属性,属性值通过调用对象的成员函数获取。
| T | 类类型 |
| Getter | 字符串属性获取函数指针 |
| Setter | 字符串属性设置函数指针 |
| AST_UTIL_CAPI void ast::aRegisterClass | ( | Class * | cls | ) |
注册类
注册类的元数据,用于后续的反射操作
| cls | 类指针 |