RUMsgCenter.h 852 B

12345678910111213141516171819202122232425262728293031323334
  1. //消息中心
  2. #ifndef RUMsgCenter_h
  3. #define RUMsgCenter_h
  4. #include "RUDefine.h"
  5. #include <unordered_map>
  6. #include "RUMsg.h"
  7. #define STORY_EVENT_CENTERKEY ("STORY_EVENT_CENTERKEY") //家装剧情msgCenter的key
  8. NS_RU_BEGIN
  9. #define gMsgCenter(key) redutils::MsgCenter::instance(key)
  10. class MsgSubscriber;
  11. class MsgCenter
  12. {
  13. public:
  14. static MsgCenter* instance(std::string key4MsgCenter);
  15. void receiveMsg(Msg* msg);
  16. void addSubscriber(kMsgTopic msgTopic, MsgSubscriber* msgSubscriber, int priority = 0);
  17. void removeSubscriber(kMsgTopic msgTopic, MsgSubscriber* msgSubscriber);
  18. private:
  19. MsgCenter() = default;
  20. ~MsgCenter() = default;
  21. private:
  22. static std::unordered_map<std::string, MsgCenter*> _gMsgCenters;
  23. std::unordered_map<int, std::list<MsgSubscriber*>> _subscriberMap;
  24. };
  25. NS_RU_END
  26. #endif /* RUMsgCenter_h */