🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::ObjectManager类 参考

#include <ObjectManager.hpp>

Public 成员函数

ObjectgetObject (uint32_t index)
 
uint32_t addObject (Object *object)
 
errc_t setParentScope (Object *obj, Object *parentScope)
 
ObjectgetParentScope (Object *obj)
 
uint32_t getMaxObjectCount () const
 
errc_t setMaxObjectCount (uint32_t maxCount)
 
uint32_t getObjectCount () const
 

静态 Public 成员函数

static ObjectManagerCurrentInstance ()
 

Protected 成员函数

errc_t removeNode (uint32_t index)
 
void advanceIndex ()
 

Protected 属性

std::vector< ObjectNode * > objects_
 
uint32_t nextIndex_ {0}
 
uint32_t maxObjectCount_ {kDefaultMaxObjectCount}
 

静态 Protected 属性

static constexpr uint32_t kDefaultMaxObjectCount = static_cast<uint32_t>(-1) - 1
 

友元

class Object
 

详细描述

对象管理器

成员函数说明

◆ addObject()

uint32_t ast::ObjectManager::addObject ( Object * object)

添加对象到对象管理器

将对象添加到对象管理器中,返回对象的索引/对象ID, 如果对象已存在则返回已存在的索引/对象ID

参数
object对象指针
返回
对象的索引/对象ID

◆ getMaxObjectCount()

uint32_t ast::ObjectManager::getMaxObjectCount ( ) const
inline

获取最大对象数量

返回
最大对象数量

◆ getObject()

Object * ast::ObjectManager::getObject ( uint32_t index)

根据索引获取对象

参数
index对象索引/对象ID
返回
对象指针

◆ getObjectCount()

uint32_t ast::ObjectManager::getObjectCount ( ) const

获取当前对象数量

警告
这个函数会遍历所有对象节点判断对象是否存活,时间复杂度为O(n),请谨慎使用
返回
当前对象数量

◆ getParentScope()

Object * ast::ObjectManager::getParentScope ( Object * obj)

获取对象的父作用域

obj 对象指针

返回
父作用域指针

◆ setMaxObjectCount()

errc_t ast::ObjectManager::setMaxObjectCount ( uint32_t maxCount)

设置最大对象数量

如果最大对象数量小于当前对象数量,则设置失败

参数
maxCount最大对象数量
警告
这个函数会限制对象管理器中最大对象数量,请谨慎使用

◆ setParentScope()

errc_t ast::ObjectManager::setParentScope ( Object * obj,
Object * parentScope )

设置对象的父作用域

obj 对象指针

参数
parentScope父作用域指针

该类的文档由以下文件生成: