diff options
author | saturneric <[email protected]> | 2023-10-17 14:57:03 +0000 |
---|---|---|
committer | saturneric <[email protected]> | 2023-10-17 14:57:03 +0000 |
commit | e5694e9f6d2a84954eaf508557caa795f5282b07 (patch) | |
tree | 40dd946005f7d5b7cdab7db608367add5bbdb38b /src/module/system/ModuleManager.cpp | |
parent | refactor: flatpak yml file can not host here (diff) | |
download | GpgFrontend-e5694e9f6d2a84954eaf508557caa795f5282b07.tar.gz GpgFrontend-e5694e9f6d2a84954eaf508557caa795f5282b07.zip |
refactor: change plugin system to module system
Diffstat (limited to '')
-rw-r--r-- | src/module/system/ModuleManager.cpp (renamed from src/plugin/system/PluginManager.cpp) | 46 |
1 files changed, 24 insertions, 22 deletions
diff --git a/src/plugin/system/PluginManager.cpp b/src/module/system/ModuleManager.cpp index c4623c32..8f0e7517 100644 --- a/src/plugin/system/PluginManager.cpp +++ b/src/module/system/ModuleManager.cpp @@ -26,24 +26,26 @@ * */ -#include "PluginManager.h" +#include "ModuleManager.h" #include "core/thread/TaskRunner.h" -#include "plugin/system/GlobalPluginContext.h" -#include "plugin/system/Plugin.h" +#include "module/system/GlobalModuleContext.h" +#include "module/system/Module.h" -namespace GpgFrontend::Plugin { +namespace GpgFrontend::Module { -PluginMangerPtr PluginManager::g_ = nullptr; +ModuleMangerPtr ModuleManager::g_ = nullptr; -class PluginManager::Impl { +class ModuleManager::Impl { public: Impl() : task_runner_(std::make_shared<Thread::TaskRunner>()), global_plugin_context_( - std::make_shared<GlobalPluginContext>(task_runner_)) {} + std::make_shared<GlobalModuleContext>(task_runner_)) { + task_runner_->start(); + } - void RegisterPlugin(PluginPtr plugin) { + void RegisterPlugin(ModulePtr plugin) { task_runner_->PostTask(new Thread::Task( std::move([=](GpgFrontend::Thread::DataObjectPtr) -> int { global_plugin_context_->RegisterPlugin(plugin); @@ -61,7 +63,7 @@ class PluginManager::Impl { __func__, nullptr, true)); } - void ActivePlugin(PluginIdentifier identifier) { + void ActivePlugin(ModuleIdentifier identifier) { task_runner_->PostTask(new Thread::Task( std::move([=](GpgFrontend::Thread::DataObjectPtr) -> int { global_plugin_context_->ActivePlugin(identifier); @@ -70,40 +72,40 @@ class PluginManager::Impl { __func__, nullptr, true)); } - std::optional<TaskRunnerPtr> GetTaskRunner(PluginIdentifier plugin_id) { + std::optional<TaskRunnerPtr> GetTaskRunner(ModuleIdentifier plugin_id) { return global_plugin_context_->GetTaskRunner(plugin_id); } private: - static PluginMangerPtr global_plugin_manager_; + static ModuleMangerPtr global_plugin_manager_; TaskRunnerPtr task_runner_; - GlobalPluginContextPtr global_plugin_context_; + GlobalModuleContextPtr global_plugin_context_; }; -PluginManager::PluginManager() : p_(std::make_unique<Impl>()) {} +ModuleManager::ModuleManager() : p_(std::make_unique<Impl>()) {} -PluginManager::~PluginManager() = default; +ModuleManager::~ModuleManager() = default; -PluginMangerPtr PluginManager::GetInstance() { - if (g_ == nullptr) g_ = std::shared_ptr<PluginManager>(new PluginManager()); +ModuleMangerPtr ModuleManager::GetInstance() { + if (g_ == nullptr) g_ = std::shared_ptr<ModuleManager>(new ModuleManager()); return g_; } -void PluginManager::RegisterPlugin(PluginPtr plugin) { +void ModuleManager::RegisterPlugin(ModulePtr plugin) { return p_->RegisterPlugin(plugin); } -void PluginManager::TriggerEvent(EventRefrernce event) { +void ModuleManager::TriggerEvent(EventRefrernce event) { return p_->TriggerEvent(event); } -void PluginManager::ActivePlugin(PluginIdentifier identifier) { +void ModuleManager::ActivePlugin(ModuleIdentifier identifier) { return p_->ActivePlugin(identifier); } -std::optional<TaskRunnerPtr> PluginManager::GetTaskRunner( - PluginIdentifier plugin_id) { +std::optional<TaskRunnerPtr> ModuleManager::GetTaskRunner( + ModuleIdentifier plugin_id) { return p_->GetTaskRunner(plugin_id); } -} // namespace GpgFrontend::Plugin
\ No newline at end of file +} // namespace GpgFrontend::Module
\ No newline at end of file |