🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
ModeratorObserver.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/StringView.hpp"
25#include <vector>
26
27AST_NAMESPACE_BEGIN
28
35class ModeratorObserverMultiplexer;
36
40class AST_ENGINE_API ModeratorObserver
41{
42public:
44 virtual ~ModeratorObserver();
45
48 virtual void onObjectAdded(Object& obj) { A_UNUSED(obj); }
49
52 virtual void onBeforeObjectRemove(Object& obj) { A_UNUSED(obj); }
53
56 virtual void onObjectRemoved(Object& obj) { A_UNUSED(obj); }
57
61 virtual void onBeforeObjectRename(Object& obj, StringView oldName, StringView newName) { A_UNUSED(obj); A_UNUSED(newName); A_UNUSED(oldName); }
62
66 virtual void onObjectRenamed(Object& obj, StringView oldName, StringView newName) { A_UNUSED(obj); A_UNUSED(newName); A_UNUSED(oldName); }
67
68private:
70
73 void addSource(ModeratorObserverMultiplexer* src);
74
77 void removeSource(ModeratorObserverMultiplexer* src);
78
79 std::vector<ModeratorObserverMultiplexer*> sources_{};
80};
81
82
85AST_NAMESPACE_END
多路复用观察者:聚合分发到多个子观察者(可嵌套),不拥有子观察者
定义 ModeratorObserverMultiplexer.hpp:38
引擎事件监听者接口(观察者)
定义 ModeratorObserver.hpp:41
virtual void onObjectRemoved(Object &obj)
对象已被移除后通知
定义 ModeratorObserver.hpp:56
virtual void onObjectRenamed(Object &obj, StringView oldName, StringView newName)
对象已被重命名后通知
定义 ModeratorObserver.hpp:66
virtual void onObjectAdded(Object &obj)
对象被添加后通知
定义 ModeratorObserver.hpp:48
virtual void onBeforeObjectRemove(Object &obj)
对象将被移除前通知
定义 ModeratorObserver.hpp:52
virtual void onBeforeObjectRename(Object &obj, StringView oldName, StringView newName)
对象将被重命名前通知
定义 ModeratorObserver.hpp:61
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95