aboutsummaryrefslogtreecommitdiffstats
path: root/src/core/module/Event.cpp
diff options
context:
space:
mode:
authorSaturn&Eric <[email protected]>2024-05-11 17:18:36 +0000
committerGitHub <[email protected]>2024-05-11 17:18:36 +0000
commitf909f2c4c35b187eb165ec5545e35d54c6d92bf3 (patch)
tree428fe9e63ecae6bb93be6f20cd2b1ee9b29ffd8d /src/core/module/Event.cpp
parentMerge pull request #145 from jermanuts/jermanuts-wizard-links-update (diff)
parentfix: remove qt5compat and redirect dll output path of modules (diff)
downloadGpgFrontend-f909f2c4c35b187eb165ec5545e35d54c6d92bf3.tar.gz
GpgFrontend-f909f2c4c35b187eb165ec5545e35d54c6d92bf3.zip
Merge pull request #148 from saturneric/develop
Develop 2.1.3.1
Diffstat (limited to 'src/core/module/Event.cpp')
-rw-r--r--src/core/module/Event.cpp46
1 files changed, 43 insertions, 3 deletions
diff --git a/src/core/module/Event.cpp b/src/core/module/Event.cpp
index fab26453..4b0b989b 100644
--- a/src/core/module/Event.cpp
+++ b/src/core/module/Event.cpp
@@ -28,6 +28,8 @@
#include "Event.h"
+#include "core/utils/CommonUtils.h"
+
namespace GpgFrontend::Module {
class Event::Impl {
@@ -67,7 +69,11 @@ class Event::Impl {
auto GetIdentifier() -> EventIdentifier { return event_identifier_; }
- void AddParameter(const QString& key, const ParameterValue& value) {
+ auto GetTriggerIdentifier() -> EventTriggerIdentifier {
+ return trigger_uuid_;
+ }
+
+ void AddParameter(const QString& key, const QString& value) {
data_[key] = value;
}
@@ -95,9 +101,37 @@ class Event::Impl {
}
}
+ auto ToModuleEvent() -> GFModuleEvent* {
+ auto* event =
+ static_cast<GFModuleEvent*>(SecureMalloc(sizeof(GFModuleEvent)));
+
+ event->id = GFStrDup(event_identifier_);
+ event->trigger_id = GFStrDup(trigger_uuid_);
+
+ GFModuleEventParam* l_param = nullptr;
+ GFModuleEventParam* p_param;
+
+ int index = 0;
+ for (const auto& data : data_) {
+ p_param = static_cast<GFModuleEventParam*>(
+ SecureMalloc(sizeof(GFModuleEventParam)));
+ if (index++ == 0) event->params = p_param;
+
+ p_param->name = GFStrDup(data.first);
+ p_param->value = GFStrDup(data.second);
+ p_param->next = nullptr;
+
+ if (l_param != nullptr) l_param->next = p_param;
+ l_param = p_param;
+ }
+
+ return event;
+ }
+
private:
EventIdentifier event_identifier_;
- std::map<QString, ParameterValue> data_;
+ EventTriggerIdentifier trigger_uuid_ = QUuid::createUuid().toString();
+ std::map<QString, QString> data_;
EventCallback callback_;
QThread* callback_thread_ = nullptr; ///<
};
@@ -128,7 +162,11 @@ auto Event::Event::GetIdentifier() -> EventIdentifier {
return p_->GetIdentifier();
}
-void Event::AddParameter(const QString& key, const ParameterValue& value) {
+auto Event::Event::GetTriggerIdentifier() -> EventTriggerIdentifier {
+ return p_->GetTriggerIdentifier();
+}
+
+void Event::AddParameter(const QString& key, const QString& value) {
p_->AddParameter(key, value);
}
@@ -136,4 +174,6 @@ void Event::ExecuteCallback(ListenerIdentifier l_id, DataObjectPtr d_o) {
p_->ExecuteCallback(std::move(l_id), d_o);
}
+auto Event::ToModuleEvent() -> GFModuleEvent* { return p_->ToModuleEvent(); }
+
} // namespace GpgFrontend::Module \ No newline at end of file