2018-12-30 15:46:15 +01:00
|
|
|
|
#ifndef PLUGINREGISTER_H
|
|
|
|
|
|
#define PLUGINREGISTER_H
|
|
|
|
|
|
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
#include <map>
|
|
|
|
|
|
#include <mutex>
|
|
|
|
|
|
#include <QString>
|
|
|
|
|
|
|
|
|
|
|
|
class QAction;
|
|
|
|
|
|
class PluginModule;
|
|
|
|
|
|
|
|
|
|
|
|
class PluginRegister {
|
|
|
|
|
|
public:
|
|
|
|
|
|
using PluginModuleSPtr = std::shared_ptr<PluginModule>;
|
|
|
|
|
|
using ModuleMap = std::map<QString, PluginModuleSPtr>;
|
|
|
|
|
|
|
|
|
|
|
|
static PluginRegister* getInstance();
|
|
|
|
|
|
|
|
|
|
|
|
PluginRegister();
|
|
|
|
|
|
void registerModule(PluginModuleSPtr module);
|
|
|
|
|
|
const ModuleMap& modules() const { return m_moduleMap; }
|
2018-12-31 15:20:55 +01:00
|
|
|
|
|
|
|
|
|
|
const PluginModule* findModule(const QString &module_ident) const;
|
2018-12-30 15:46:15 +01:00
|
|
|
|
private:
|
|
|
|
|
|
|
|
|
|
|
|
ModuleMap m_moduleMap;
|
|
|
|
|
|
|
|
|
|
|
|
static PluginRegister* s_pluginRegister;
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif // PLUGINREGISTER_H
|