diff options
Diffstat (limited to '')
-rw-r--r-- | src/plugin/system/Plugin.h (renamed from src/core/plugin/Plugin.h) | 41 |
1 files changed, 13 insertions, 28 deletions
diff --git a/src/core/plugin/Plugin.h b/src/plugin/system/Plugin.h index 8e7ab58f..7c538b3f 100644 --- a/src/core/plugin/Plugin.h +++ b/src/plugin/system/Plugin.h @@ -29,14 +29,15 @@ #ifndef GPGFRONTEND_PLUGIN_H #define GPGFRONTEND_PLUGIN_H -#include "core/plugin/Event.h" +#include <memory> + +#include "GpgFrontendPluginSystemExport.h" #include "core/thread/Task.h" #include "core/thread/TaskRunner.h" +#include "plugin/system/Event.h" namespace GpgFrontend::Plugin { -using TaskRunnerPtr = std::shared_ptr<Thread::TaskRunner>; - class Plugin; class GlobalPluginContext; class PluginManager; @@ -45,15 +46,13 @@ using PluginIdentifier = std::string; using PluginVersion = std::string; using PluginMetaData = std::map<std::string, std::string>; using PluginPtr = std::shared_ptr<Plugin>; - using GlobalPluginContextPtr = std::shared_ptr<GlobalPluginContext>; -class GPGFRONTEND_CORE_EXPORT Plugin : public QObject { +using TaskRunnerPtr = std::shared_ptr<Thread::TaskRunner>; + +class GPGFRONTEND_PLUGIN_SYSTEM_EXPORT Plugin : public QObject { Q_OBJECT public: - friend class PluginManager; - friend class GlobalPluginContext; - Plugin(PluginIdentifier, PluginVersion, PluginMetaData); virtual bool Register() = 0; @@ -66,35 +65,21 @@ class GPGFRONTEND_CORE_EXPORT Plugin : public QObject { PluginIdentifier GetPluginIdentifier() const; + PluginIdentifier SetGPC(GlobalPluginContextPtr); + protected: int getChannel(); int getDefaultChannel(); - std::optional<TaskRunnerPtr> getTaskRunner(); + TaskRunnerPtr getTaskRunner(); bool listenEvent(EventIdentifier); private: - const GlobalPluginContextPtr global_plugin_context_; - const std::shared_ptr<Plugin> self_shared_ptr_; - const PluginIdentifier identifier_; - const PluginVersion version_; - const PluginMetaData meta_data_; - - void pm_set_global_plugin_cotext(GlobalPluginContextPtr); - - PluginIdentifier gpc_get_identifier(); - - bool gpc_register_plugin(); - - bool gpc_active_plugin(); - - bool gpc_deactive_plugin(); - - int gpc_exec_plugin(); - - const GlobalPluginContextPtr get_global_plugin_context(); + class Impl; + std::unique_ptr<Impl> p_; + const std::shared_ptr<Plugin> s_; }; } // namespace GpgFrontend::Plugin |