🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
Moderator.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/StringView.hpp"
26
27AST_NAMESPACE_BEGIN
28
37class AST_ENGINE_API Moderator
38{
39public:
40 Moderator() = default;
41 ~Moderator() = default;
42
45 static Moderator& Instance();
46
49 void addObserver(ModeratorObserver* observer) { observers_.addObserver(observer); }
50
53 void removeObserver(ModeratorObserver* observer) { observers_.removeObserver(observer); }
54
59 Object* addObject(StringView type, Object* parent=nullptr);
60
64 errc_t removeObject(Object& object);
65
70 errc_t renameObject(Object& object, StringView name);
71
72private:
73 ModeratorObserverMultiplexer observers_{};
74};
75
76
79AST_NAMESPACE_END
多路复用观察者:聚合分发到多个子观察者(可嵌套),不拥有子观察者
定义 ModeratorObserverMultiplexer.hpp:38
引擎事件监听者接口(观察者)
定义 ModeratorObserver.hpp:41
引擎总控类
定义 Moderator.hpp:38
void addObserver(ModeratorObserver *observer)
注册事件监听者
定义 Moderator.hpp:49
void removeObserver(ModeratorObserver *observer)
移除事件监听者
定义 Moderator.hpp:53
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95