REDBatchNodeManager.h 895 B

1234567891011121314151617181920212223242526272829303132
  1. //
  2. // REDBatchNodeManager.h
  3. // redream_runtime_ios
  4. //
  5. // Created by xiao鱼哥 on 2023/8/16.
  6. //
  7. #ifndef REDBatchNodeManager_h
  8. #define REDBatchNodeManager_h
  9. #include <unordered_set>
  10. #include <string>
  11. #include <vector>
  12. #include <unordered_map>
  13. namespace redream {
  14. class REDBatchNodeListener;
  15. class REDBatchNodeManager
  16. {
  17. public:
  18. static REDBatchNodeManager* getInstance();
  19. void addListener(const std::string& eventName,REDBatchNodeListener* listener);
  20. void removeListener(const std::string& eventName,REDBatchNodeListener* listener);
  21. void removeListener(REDBatchNodeListener* listener);
  22. void dispatchEvent(const std::string& eventName);
  23. private:
  24. std::unordered_map<std::string,std::unordered_set<REDBatchNodeListener*>> _listeners;
  25. REDBatchNodeManager();
  26. ~REDBatchNodeManager();
  27. static REDBatchNodeManager* _instance;
  28. };
  29. }
  30. #endif /* REDBatchNodeManager_h */