You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

iplugin.h 640 B

1234567891011121314151617181920212223242526272829303132333435
  1. #ifndef IPLUGIN_H
  2. #define IPLUGIN_H
  3. #include "../feiqwin.h"
  4. #include <unordered_map>
  5. #include <iostream>
  6. class IPlugin
  7. {
  8. public:
  9. virtual ~IPlugin();
  10. void setFeiqWin(FeiqWin* feiqWin);
  11. virtual void init();
  12. virtual void unInit();
  13. protected:
  14. FeiqWin* mFeiq;
  15. };
  16. class PluginManager
  17. {
  18. private:
  19. PluginManager();
  20. public:
  21. static PluginManager& instance();
  22. public:
  23. std::unordered_map<const char*, IPlugin *> allPlugins;
  24. };
  25. #define REGISTER_PLUGIN(name, PluginCls)\
  26. __attribute__((constructor)) void register##PluginCls()\
  27. {\
  28. PluginManager::instance().allPlugins[name]=new PluginCls();\
  29. }
  30. #endif // IPLUGIN_H

mac下的“飞秋”大多数只是飞鸽传书协议,而且未发现令人满意的开源项目,所以基于c++与qt实现了基础的飞秋协议。

Contributors (1)