#include <ObjectManager.hpp>
|
|
errc_t | removeNode (uint32_t index) |
| |
|
void | advanceIndex () |
| |
|
|
std::vector< ObjectNode * > | objects_ |
| |
|
uint32_t | nextIndex_ {0} |
| |
|
uint32_t | maxObjectCount_ {kDefaultMaxObjectCount} |
| |
|
|
static constexpr uint32_t | kDefaultMaxObjectCount = static_cast<uint32_t>(-1) - 1 |
| |
◆ addObject()
| uint32_t ast::ObjectManager::addObject |
( |
Object * | object | ) |
|
添加对象到对象管理器
将对象添加到对象管理器中,返回对象的索引/对象ID, 如果对象已存在则返回已存在的索引/对象ID
- 参数
-
- 返回
- 对象的索引/对象ID
◆ findObject()
查找对象
根据类指针和对象名查找对象
- 参数
-
| cls | 类指针,如果为空则匹配所有类型 |
| name | 对象名,如果为空则匹配所有名称 |
- 返回
- 对象指针
◆ findObjects()
查找对象
根据类指针和对象名查找对象
- 参数
-
| cls | 类指针,如果为空则匹配所有类型 |
| name | 对象名,如果为空则匹配所有名称 |
- 返回
- 对象指针向量
◆ getAllObjects()
| std::vector< Object * > ast::ObjectManager::getAllObjects |
( |
| ) |
|
◆ getAncestorScope()
获取对象的祖先作用域
obj 对象指针
- 参数
-
- 返回
- 祖先作用域指针
◆ getMaxObjectCount()
| uint32_t ast::ObjectManager::getMaxObjectCount |
( |
| ) |
const |
|
inline |
◆ getNodeCount()
| size_t ast::ObjectManager::getNodeCount |
( |
| ) |
const |
|
inline |
获取对象节点数量
- 警告
- 对象节点数量可能大于对象数量,因为对象节点对应的对象可能已被删除
- 返回
- 对象节点数量
◆ getObject()
| Object * ast::ObjectManager::getObject |
( |
uint32_t | index | ) |
|
◆ getObjectCount()
| uint32_t ast::ObjectManager::getObjectCount |
( |
| ) |
const |
获取当前对象数量
- 警告
- 这个函数会遍历所有对象节点判断对象是否存活,时间复杂度为O(n),请谨慎使用
- 返回
- 当前对象数量
◆ getObjectNode()
◆ getParentScope()
获取对象的父作用域
obj 对象指针
- 返回
- 父作用域指针
◆ removeAllObjects()
| void ast::ObjectManager::removeAllObjects |
( |
| ) |
|
移除所有对象
从对象管理器中移除所有对象,包括子对象
◆ removeObject()
| errc_t ast::ObjectManager::removeObject |
( |
Object * | object | ) |
|
移除对象
从对象管理器中移除对象,包括子对象
- 参数
-
- 返回
- 错误码
◆ setMaxObjectCount()
| errc_t ast::ObjectManager::setMaxObjectCount |
( |
uint32_t | maxCount | ) |
|
设置可以管理的最大对象数量
如果最大对象数量小于当前对象数量,则设置失败
- 参数
-
- 警告
- 这个函数会限制对象管理器中最大对象数量,请谨慎使用
◆ setParentScope()
| errc_t ast::ObjectManager::setParentScope |
( |
Object * | obj, |
|
|
Object * | parentScope ) |
该类的文档由以下文件生成: