12345678910111213141516171819202122232425262728293031323334 |
- //消息中心
- #ifndef RUMsgCenter_h
- #define RUMsgCenter_h
- #include "RUDefine.h"
- #include <unordered_map>
- #include "RUMsg.h"
- #define STORY_EVENT_CENTERKEY ("STORY_EVENT_CENTERKEY") //家装剧情msgCenter的key
- NS_RU_BEGIN
- #define gMsgCenter(key) redutils::MsgCenter::instance(key)
- class MsgSubscriber;
- class MsgCenter
- {
- public:
- static MsgCenter* instance(std::string key4MsgCenter);
- void receiveMsg(Msg* msg);
- void addSubscriber(kMsgTopic msgTopic, MsgSubscriber* msgSubscriber, int priority = 0);
- void removeSubscriber(kMsgTopic msgTopic, MsgSubscriber* msgSubscriber);
- private:
- MsgCenter() = default;
- ~MsgCenter() = default;
- private:
- static std::unordered_map<std::string, MsgCenter*> _gMsgCenters;
- std::unordered_map<int, std::list<MsgSubscriber*>> _subscriberMap;
- };
- NS_RU_END
- #endif /* RUMsgCenter_h */
|