aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugin/system/Plugin.h
diff options
context:
space:
mode:
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