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 622 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. virtual void init(FeiqWin* feiqWin);
  11. virtual void unInit() = 0;
  12. protected:
  13. FeiqWin* mFeiq;
  14. };
  15. class PluginManager
  16. {
  17. private:
  18. PluginManager();
  19. public:
  20. static PluginManager& instance();
  21. public:
  22. std::unordered_map<const char*, IPlugin *> allPlugins;
  23. };
  24. #define REGISTER_PLUGIN(name, PluginCls)\
  25. __attribute__((constructor)) void register##PluginCls()\
  26. {\
  27. PluginManager::instance().allPlugins[name]=new PluginCls();\
  28. }
  29. #endif // IPLUGIN_H

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

Contributors (1)