aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorsaturneric <[email protected]>2023-10-28 18:46:15 +0000
committersaturneric <[email protected]>2023-10-28 18:46:15 +0000
commitfd46d4667611c0db9cea3f06205727399b6fb5fd (patch)
tree8755059620d00d1690673d963cd0d913df92ae1c
parentfeat: introduce clang-tidy config and modify clang-format config (diff)
downloadGpgFrontend-fd46d4667611c0db9cea3f06205727399b6fb5fd.tar.gz
GpgFrontend-fd46d4667611c0db9cea3f06205727399b6fb5fd.zip
refactor: start to tidy up code using clang-tidy
-rw-r--r--src/GpgFrontend.h.in2
-rw-r--r--src/GpgFrontendBuildInfo.h.in9
-rw-r--r--src/core/GpgContext.cpp2
-rw-r--r--src/core/GpgCoreInit.cpp4
-rw-r--r--src/core/GpgFunctionObject.cpp61
-rw-r--r--src/core/GpgFunctionObject.h79
-rw-r--r--src/core/GpgGenKeyInfo.cpp18
-rw-r--r--src/core/GpgGenKeyInfo.h2
-rw-r--r--src/core/common/CoreCommonUtil.cpp2
-rw-r--r--src/core/common/CoreCommonUtil.h2
-rw-r--r--src/core/function/CacheManager.cpp1
-rw-r--r--src/core/function/CacheManager.h1
-rw-r--r--src/core/function/CharsetOperator.cpp2
-rw-r--r--src/core/function/gpg/GpgAdvancedOperator.cpp33
-rw-r--r--src/core/function/gpg/GpgAdvancedOperator.h33
-rw-r--r--src/core/function/gpg/GpgBasicOperator.cpp74
-rw-r--r--src/core/function/gpg/GpgBasicOperator.h37
-rw-r--r--src/core/function/gpg/GpgCommandExecutor.cpp246
-rw-r--r--src/core/function/gpg/GpgCommandExecutor.h33
-rw-r--r--src/core/function/gpg/GpgFileOpera.cpp62
-rw-r--r--src/core/function/gpg/GpgFileOpera.h92
-rw-r--r--src/core/function/gpg/GpgKeyGetter.cpp263
-rw-r--r--src/core/function/gpg/GpgKeyGetter.h53
-rw-r--r--src/core/function/gpg/GpgKeyImportExporter.cpp2
-rw-r--r--src/core/function/gpg/GpgKeyImportExporter.h2
-rw-r--r--src/core/function/gpg/GpgKeyManager.cpp2
-rw-r--r--src/core/function/gpg/GpgKeyManager.h1
-rw-r--r--src/core/function/gpg/GpgKeyOpera.cpp2
-rw-r--r--src/core/function/result_analyse/GpgResultAnalyse.h1
-rw-r--r--src/core/model/DataObject.cpp (renamed from src/core/thread/DataObject.cpp)9
-rw-r--r--src/core/model/DataObject.h (renamed from src/core/thread/DataObject.h)6
-rw-r--r--src/core/model/GpgKeySignature.h1
-rw-r--r--src/core/model/GpgSubKey.h1
-rw-r--r--src/core/module/Event.cpp51
-rw-r--r--src/core/module/Event.h28
-rw-r--r--src/core/module/GlobalModuleContext.cpp135
-rw-r--r--src/core/module/GlobalModuleContext.h26
-rw-r--r--src/core/module/GlobalRegisterTable.cpp11
-rw-r--r--src/core/module/GlobalRegisterTable.h2
-rw-r--r--src/core/module/Module.cpp1
-rw-r--r--src/core/module/ModuleManager.cpp19
-rw-r--r--src/core/module/ModuleManager.h5
-rw-r--r--src/core/thread/Task.cpp21
-rw-r--r--src/core/thread/Task.h15
-rw-r--r--src/core/thread/TaskRunner.cpp2
-rw-r--r--src/core/thread/TaskRunner.h2
-rw-r--r--src/core/thread/TaskRunnerGetter.cpp2
-rw-r--r--src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp4
-rw-r--r--src/module/integrated/version_checking_module/VersionCheckTask.cpp5
-rw-r--r--src/ui/UserInterfaceUtils.cpp4
-rw-r--r--src/ui/UserInterfaceUtils.h2
-rw-r--r--src/ui/dialog/gnupg/GnuPGControllerDialog.cpp1
-rw-r--r--src/ui/dialog/help/AboutDialog.cpp5
-rw-r--r--src/ui/main_window/MainWindow.cpp3
-rw-r--r--src/ui/main_window/MainWindowFileSlotFunction.cpp88
-rw-r--r--src/ui/main_window/MainWindowSlotFunction.cpp111
-rw-r--r--src/ui/main_window/MainWindowUI.cpp7
57 files changed, 825 insertions, 863 deletions
diff --git a/src/GpgFrontend.h.in b/src/GpgFrontend.h.in
index 50be4d66..e23abd1e 100644
--- a/src/GpgFrontend.h.in
+++ b/src/GpgFrontend.h.in
@@ -49,7 +49,7 @@
// build info
#define PROJECT_NAME "@CMAKE_PROJECT_NAME@"
-#define OS_PLATFORM @OS_PLATFORM @
+#define OS_PLATFORM "@OS_PLATFORM@"
#define LOCALE_DIR "@LOCALE_DIR@"
// macros to find resource files
diff --git a/src/GpgFrontendBuildInfo.h.in b/src/GpgFrontendBuildInfo.h.in
index ee5b8396..c6242b1e 100644
--- a/src/GpgFrontendBuildInfo.h.in
+++ b/src/GpgFrontendBuildInfo.h.in
@@ -31,9 +31,9 @@
/**
* Logic Version (*.*.*)
*/
-#define VERSION_MAJOR @CMAKE_PROJECT_VERSION_MAJOR@
-#define VERSION_MINOR @CMAKE_PROJECT_VERSION_MINOR@
-#define VERSION_PATCH @CMAKE_PROJECT_VERSION_PATCH@
+#define VERSION_MAJOR "@CMAKE_PROJECT_VERSION_MAJOR@"
+#define VERSION_MINOR "@CMAKE_PROJECT_VERSION_MINOR@"
+#define VERSION_PATCH "@CMAKE_PROJECT_VERSION_PATCH@"
/**
* Code Version (According to Git)
@@ -44,13 +44,12 @@
/**
* Generated Information (According to CMake)
*/
-#define PROJECT_NAME "@PROJECT_NAME@"
#define BUILD_VERSION "@BUILD_VERSION@"
#define GIT_VERSION "@GIT_VERSION@"
/**
* Build Information
*/
-#define BUILD_FLAG @BUILD_FLAG@
+#define BUILD_FLAG "@BUILD_FLAG@"
#define BUILD_TIMESTAMP "@BUILD_TIMESTAMP@"
#define APP_INSTALL_FLAG "@APP_INSTALL_FLAG@" \ No newline at end of file
diff --git a/src/core/GpgContext.cpp b/src/core/GpgContext.cpp
index 8b4677ff..ab21ae0a 100644
--- a/src/core/GpgContext.cpp
+++ b/src/core/GpgContext.cpp
@@ -198,7 +198,7 @@ GpgContext::GpgContext(const GpgContextInitArgs &args) : args_(args) {
Thread::TaskRunnerGetter::GetInstance()
.GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_GPG)
->PostTask(new Thread::Task(
- [=](Thread::DataObjectPtr) -> int {
+ [=](DataObjectPtr) -> int {
post_init_ctx();
return 0;
},
diff --git a/src/core/GpgCoreInit.cpp b/src/core/GpgCoreInit.cpp
index 728bc93d..08219637 100644
--- a/src/core/GpgCoreInit.cpp
+++ b/src/core/GpgCoreInit.cpp
@@ -210,7 +210,7 @@ void InitGpgFrontendCore() {
Thread::TaskRunnerGetter::GetInstance()
.GetTaskRunner(Thread::TaskRunnerGetter::kTaskRunnerType_GPG)
->PostTask(new Thread::Task(
- [=](Thread::DataObjectPtr data_obj) -> int {
+ [=](DataObjectPtr data_obj) -> int {
// init non-ascii channel
auto& ctx = GpgFrontend::GpgContext::CreateInstance(
GPGFRONTEND_NON_ASCII_CHANNEL,
@@ -252,7 +252,7 @@ void InitGpgFrontendCore() {
"gnupginfogathering gnupg.gathering_done changed, restarting gpg "
"components");
// try to restart all components
- GpgFrontend::GpgAdvancedOperator::GetInstance().RestartGpgComponents();
+ GpgFrontend::GpgAdvancedOperator::RestartGpgComponents();
});
Module::TriggerEvent("GPGFRONTEND_CORE_INITLIZED");
}
diff --git a/src/core/GpgFunctionObject.cpp b/src/core/GpgFunctionObject.cpp
index dfdfec19..2fc9ee42 100644
--- a/src/core/GpgFunctionObject.cpp
+++ b/src/core/GpgFunctionObject.cpp
@@ -30,7 +30,6 @@
#include <cassert>
#include <functional>
-#include <memory>
#include <mutex>
#include <shared_mutex>
@@ -38,44 +37,47 @@ void GpgFrontend::ChannelObject::SetChannel(int channel) {
this->channel_ = channel;
}
-int GpgFrontend::ChannelObject::GetChannel() const { return channel_; }
+auto GpgFrontend::ChannelObject::GetChannel() const -> int { return channel_; }
-int GpgFrontend::ChannelObject::GetDefaultChannel() { return _default_channel; }
+auto GpgFrontend::ChannelObject::GetDefaultChannel() -> int {
+ return kGpgFrontendDefaultChannel;
+}
void GpgFrontend::SingletonStorage::ReleaseChannel(int channel) {
- decltype(instances_map_.end()) _it;
+ decltype(instances_map_.end()) ins_it;
{
std::shared_lock<std::shared_mutex> lock(instances_mutex_);
- _it = instances_map_.find(channel);
+ ins_it = instances_map_.find(channel);
}
- if (_it != instances_map_.end()) instances_map_.erase(_it);
+ if (ins_it != instances_map_.end()) instances_map_.erase(ins_it);
}
-GpgFrontend::ChannelObject* GpgFrontend::SingletonStorage::FindObjectInChannel(
- int channel) {
+auto GpgFrontend::SingletonStorage::FindObjectInChannel(int channel)
+ -> GpgFrontend::ChannelObject* {
// read instances_map_
- decltype(instances_map_.end()) _it;
+ decltype(instances_map_.end()) ins_it;
{
std::shared_lock<std::shared_mutex> lock(instances_mutex_);
- _it = instances_map_.find(channel);
- if (_it == instances_map_.end()) {
+ ins_it = instances_map_.find(channel);
+ if (ins_it == instances_map_.end()) {
return nullptr;
- } else {
- return _it->second.get();
}
+ return ins_it->second.get();
}
}
-std::vector<int> GpgFrontend::SingletonStorage::GetAllChannelId() {
- std::vector<int> _channels;
+auto GpgFrontend::SingletonStorage::GetAllChannelId() -> std::vector<int> {
+ std::vector<int> channels;
+ channels.reserve(instances_map_.size());
for (const auto& [key, value] : instances_map_) {
- _channels.push_back(key);
+ channels.push_back(key);
}
- return _channels;
+ return channels;
}
-GpgFrontend::ChannelObject* GpgFrontend::SingletonStorage::SetObjectInChannel(
- int channel, std::unique_ptr<ChannelObject> p_obj) {
+auto GpgFrontend::SingletonStorage::SetObjectInChannel(
+ int channel, std::unique_ptr<ChannelObject> p_obj)
+ -> GpgFrontend::ChannelObject* {
{
SPDLOG_TRACE("set channel: {} instance address: {}", channel,
static_cast<void*>(&instances_map_));
@@ -83,7 +85,7 @@ GpgFrontend::ChannelObject* GpgFrontend::SingletonStorage::SetObjectInChannel(
assert(p_obj != nullptr);
if (p_obj == nullptr) return nullptr;
- auto raw_obj = p_obj.get();
+ auto* raw_obj = p_obj.get();
p_obj->SetChannel(channel);
{
std::unique_lock<std::shared_mutex> lock(instances_mutex_);
@@ -93,18 +95,17 @@ GpgFrontend::ChannelObject* GpgFrontend::SingletonStorage::SetObjectInChannel(
}
}
-GpgFrontend::SingletonStorage*
-GpgFrontend::SingletonStorageCollection::GetSingletonStorage(
- const std::type_info& type_id) {
+auto GpgFrontend::SingletonStorageCollection::GetSingletonStorage(
+ const std::type_info& type_id) -> GpgFrontend::SingletonStorage* {
const auto hash = type_id.hash_code();
while (true) {
- decltype(storages_map_.end()) _it;
+ decltype(storages_map_.end()) ins_it;
{
std::shared_lock<std::shared_mutex> lock(storages_mutex_);
- _it = storages_map_.find(hash);
+ ins_it = storages_map_.find(hash);
}
- if (_it == storages_map_.end()) {
+ if (ins_it == storages_map_.end()) {
{
std::unique_lock<std::shared_mutex> lock(storages_mutex_);
storages_map_.insert({hash, std::make_unique<SingletonStorage>()});
@@ -112,15 +113,13 @@ GpgFrontend::SingletonStorageCollection::GetSingletonStorage(
SPDLOG_TRACE("hash: {} created, storage address: {} type_name: {}", hash,
static_cast<void*>(&storages_map_), type_id.name());
continue;
- } else {
- return _it->second.get();
}
+ return ins_it->second.get();
}
}
-GpgFrontend::SingletonStorageCollection*
-GpgFrontend::SingletonStorageCollection::GetInstance(
- bool force_refresh = false) {
+auto GpgFrontend::SingletonStorageCollection::GetInstance(
+ bool force_refresh = false) -> GpgFrontend::SingletonStorageCollection* {
static SingletonStorageCollection* instance = nullptr;
if (force_refresh || instance == nullptr) {
diff --git a/src/core/GpgFunctionObject.h b/src/core/GpgFunctionObject.h
index 7a26828a..9cfaba9c 100644
--- a/src/core/GpgFunctionObject.h
+++ b/src/core/GpgFunctionObject.h
@@ -30,10 +30,11 @@
#include <shared_mutex>
-#include "core/GpgFrontendCore.h"
-
namespace GpgFrontend {
+static constexpr int kGpgFrontendDefaultChannel =
+ 0; ///< the default channel id
+
/**
* @brief object which in channel system
*
@@ -51,21 +52,21 @@ class GPGFRONTEND_CORE_EXPORT ChannelObject {
*
* @param channel
*/
- ChannelObject(int channel);
+ explicit ChannelObject(int channel);
/**
* @brief Get the Default Channel object
*
* @return int
*/
- static int GetDefaultChannel();
+ static auto GetDefaultChannel() -> int;
/**
* @brief Get the Channel object
*
* @return int
*/
- [[nodiscard]] int GetChannel() const;
+ [[nodiscard]] auto GetChannel() const -> int;
/**
* @brief Set the Channel object
@@ -75,8 +76,7 @@ class GPGFRONTEND_CORE_EXPORT ChannelObject {
void SetChannel(int channel);
private:
- int channel_ = _default_channel; ///< The channel id
- static constexpr int _default_channel = 0; ///< The default channel id
+ int channel_ = kGpgFrontendDefaultChannel; ///< The channel id
};
class GPGFRONTEND_CORE_EXPORT SingletonStorage {
@@ -94,14 +94,14 @@ class GPGFRONTEND_CORE_EXPORT SingletonStorage {
* @param channel
* @return T*
*/
- ChannelObject* FindObjectInChannel(int channel);
+ auto FindObjectInChannel(int channel) -> ChannelObject*;
/**
* @brief Get all the channel ids
*
* @return std::vector<int>
*/
- std::vector<int> GetAllChannelId();
+ auto GetAllChannelId() -> std::vector<int>;
/**
* @brief Set a new object in channel object
@@ -110,8 +110,8 @@ class GPGFRONTEND_CORE_EXPORT SingletonStorage {
* @param p_obj
* @return T*
*/
- ChannelObject* SetObjectInChannel(int channel,
- std::unique_ptr<ChannelObject> p_obj);
+ auto SetObjectInChannel(int channel, std::unique_ptr<ChannelObject> p_obj)
+ -> ChannelObject*;
private:
std::shared_mutex instances_mutex_; ///< mutex for _instances_map
@@ -126,7 +126,7 @@ class GPGFRONTEND_CORE_EXPORT SingletonStorageCollection {
*
* @return SingletonStorageCollection*
*/
- static SingletonStorageCollection* GetInstance(bool force_refresh);
+ static auto GetInstance(bool force_refresh) -> SingletonStorageCollection*;
/**
* @brief Get the Singleton Storage object
@@ -134,7 +134,7 @@ class GPGFRONTEND_CORE_EXPORT SingletonStorageCollection {
* @param singleton_function_object
* @return SingletonStorage*
*/
- SingletonStorage* GetSingletonStorage(const std::type_info&);
+ auto GetSingletonStorage(const std::type_info&) -> SingletonStorage*;
private:
std::shared_mutex storages_mutex_; ///< mutex for storages_map_
@@ -159,8 +159,8 @@ class SingletonFunctionObject : public ChannelObject {
*
* @return SingletonFunctionObject&
*/
- SingletonFunctionObject& operator=(const SingletonFunctionObject<T>&) =
- delete;
+ auto operator=(const SingletonFunctionObject<T>&)
+ -> SingletonFunctionObject& = delete;
/**
* @brief Get the Instance object
@@ -168,8 +168,8 @@ class SingletonFunctionObject : public ChannelObject {
* @param channel
* @return T&
*/
- static T& GetInstance(
- int channel = GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL) {
+ static auto GetInstance(
+ int channel = GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL) -> T& {
static std::mutex g_channel_mutex_map_lock;
static std::map<int, std::mutex> g_channel_mutex_map;
@@ -186,22 +186,24 @@ class SingletonFunctionObject : public ChannelObject {
auto* p_storage =
SingletonStorageCollection::GetInstance(false)->GetSingletonStorage(
typeid(T));
- auto* _p_pbj = (T*)(p_storage->FindObjectInChannel(channel));
+ auto* p_pbj = static_cast<T*>(p_storage->FindObjectInChannel(channel));
- if (_p_pbj == nullptr) {
+ if (p_pbj == nullptr) {
// lock this channel
std::lock_guard<std::mutex> guard(g_channel_mutex_map[channel]);
// double check
- if ((_p_pbj = (T*)(p_storage->FindObjectInChannel(channel))) != nullptr)
- return *_p_pbj;
+ if (p_pbj = static_cast<T*>(p_storage->FindObjectInChannel(channel));
+ p_pbj != nullptr) {
+ return *p_pbj;
+ }
// do create object of this channel
auto new_obj = std::unique_ptr<ChannelObject>(new T(channel));
- return *(T*)(p_storage->SetObjectInChannel(channel, std::move(new_obj)));
- } else {
- return *_p_pbj;
+ return *static_cast<T*>(
+ p_storage->SetObjectInChannel(channel, std::move(new_obj)));
}
+ return *p_pbj;
}
/**
@@ -211,23 +213,24 @@ class SingletonFunctionObject : public ChannelObject {
* @param factory
* @return T&
*/
- static T& CreateInstance(
+ static auto CreateInstance(
int channel,
- std::function<std::unique_ptr<ChannelObject>(void)> factory) {
+ const std::function<std::unique_ptr<ChannelObject>(void)>& factory)
+ -> T& {
static_assert(std::is_base_of<SingletonFunctionObject<T>, T>::value,
"T not derived from SingletonFunctionObject<T>");
- auto p_storage =
+ auto* p_storage =
SingletonStorageCollection::GetInstance(false)->GetSingletonStorage(
typeid(T));
- auto _p_pbj = (T*)(p_storage->FindObjectInChannel(channel));
+ auto p_pbj = static_cast<T*>(p_storage->FindObjectInChannel(channel));
- if (_p_pbj == nullptr) {
- return *(
- T*)(p_storage->SetObjectInChannel(channel, factory()));
- } else
- return *_p_pbj;
+ if (p_pbj == nullptr) {
+ return *static_cast<T*>(
+ p_storage->SetObjectInChannel(channel, factory()));
+ }
+ return *p_pbj;
}
/**
@@ -247,21 +250,25 @@ class SingletonFunctionObject : public ChannelObject {
*
* @return int
*/
- static int GetDefaultChannel() { return ChannelObject::GetDefaultChannel(); }
+ static auto GetDefaultChannel() -> int {
+ return ChannelObject::GetDefaultChannel();
+ }
/**
* @brief Get the Channel object
*
* @return int
*/
- [[nodiscard]] int GetChannel() const { return ChannelObject::GetChannel(); }
+ [[nodiscard]] auto GetChannel() const -> int {
+ return ChannelObject::GetChannel();
+ }
/**
* @brief Get all the channel ids
*
* @return std::vector<int>
*/
- static std::vector<int> GetAllChannelId() {
+ static auto GetAllChannelId() -> std::vector<int> {
return SingletonStorageCollection::GetInstance(false)
->GetSingletonStorage(typeid(T))
->GetAllChannelId();
diff --git a/src/core/GpgGenKeyInfo.cpp b/src/core/GpgGenKeyInfo.cpp
index 854dfb61..3bb0816c 100644
--- a/src/core/GpgGenKeyInfo.cpp
+++ b/src/core/GpgGenKeyInfo.cpp
@@ -33,8 +33,6 @@
#include <boost/date_time/gregorian/greg_duration.hpp>
#include <boost/date_time/gregorian/gregorian_types.hpp>
#include <cassert>
-#include <string>
-#include <vector>
void GpgFrontend::GenKeyInfo::SetAlgo(
const GpgFrontend::GenKeyInfo::KeyGenAlgo &m_algo) {
@@ -237,8 +235,8 @@ GpgFrontend::GenKeyInfo::GenKeyInfo(bool m_is_sub_key, bool m_standalone)
SetAlgo(GetSupportedKeyAlgo()[0]);
}
-const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
- &GpgFrontend::GenKeyInfo::GetSupportedKeyAlgo() {
+const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo> &
+GpgFrontend::GenKeyInfo::GetSupportedKeyAlgo() {
static const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
support_key_algo = {
{"RSA", "RSA"},
@@ -248,8 +246,8 @@ const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
return support_key_algo;
}
-const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
- &GpgFrontend::GenKeyInfo::GetSupportedSubkeyAlgo() {
+const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo> &
+GpgFrontend::GenKeyInfo::GetSupportedSubkeyAlgo() {
static const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
support_subkey_algo = {
{"RSA", "RSA"},
@@ -263,8 +261,8 @@ const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
return support_subkey_algo;
}
-const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
- &GpgFrontend::GenKeyInfo::GetSupportedKeyAlgoStandalone() {
+const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo> &
+GpgFrontend::GenKeyInfo::GetSupportedKeyAlgoStandalone() {
static const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
support_subkey_algo_standalone = {
{"RSA", "RSA"},
@@ -273,8 +271,8 @@ const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
return support_subkey_algo_standalone;
}
-const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
- &GpgFrontend::GenKeyInfo::GetSupportedSubkeyAlgoStandalone() {
+const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo> &
+GpgFrontend::GenKeyInfo::GetSupportedSubkeyAlgoStandalone() {
static const std::vector<GpgFrontend::GenKeyInfo::KeyGenAlgo>
support_subkey_algo_standalone = {
{"RSA", "RSA"},
diff --git a/src/core/GpgGenKeyInfo.h b/src/core/GpgGenKeyInfo.h
index f0e2c612..1f8b53e0 100644
--- a/src/core/GpgGenKeyInfo.h
+++ b/src/core/GpgGenKeyInfo.h
@@ -31,8 +31,6 @@
#include <boost/date_time.hpp>
#include <boost/date_time/gregorian/greg_duration_types.hpp>
#include <boost/format.hpp>
-#include <string>
-#include <vector>
#include "GpgFrontend.h"
diff --git a/src/core/common/CoreCommonUtil.cpp b/src/core/common/CoreCommonUtil.cpp
index 8b68b9e9..4d966211 100644
--- a/src/core/common/CoreCommonUtil.cpp
+++ b/src/core/common/CoreCommonUtil.cpp
@@ -28,8 +28,6 @@
#include "CoreCommonUtil.h"
-#include <string>
-
namespace GpgFrontend {
std::unique_ptr<CoreCommonUtil> CoreCommonUtil::instance_ = nullptr; ///<
diff --git a/src/core/common/CoreCommonUtil.h b/src/core/common/CoreCommonUtil.h
index 4a456071..e41254c9 100644
--- a/src/core/common/CoreCommonUtil.h
+++ b/src/core/common/CoreCommonUtil.h
@@ -28,8 +28,6 @@
#pragma once
-#include <string>
-
#include "core/GpgFrontendCore.h"
namespace GpgFrontend {
diff --git a/src/core/function/CacheManager.cpp b/src/core/function/CacheManager.cpp
index 1641c3f8..8445c648 100644
--- a/src/core/function/CacheManager.cpp
+++ b/src/core/function/CacheManager.cpp
@@ -30,7 +30,6 @@
#include <algorithm>
#include <boost/format.hpp>
-#include <string>
#include "function/DataObjectOperator.h"
diff --git a/src/core/function/CacheManager.h b/src/core/function/CacheManager.h
index 9b063a5c..7803c681 100644
--- a/src/core/function/CacheManager.h
+++ b/src/core/function/CacheManager.h
@@ -31,7 +31,6 @@
#include <nlohmann/json.hpp>
#include <optional>
#include <shared_mutex>
-#include <string>
#include "core/GpgFunctionObject.h"
diff --git a/src/core/function/CharsetOperator.cpp b/src/core/function/CharsetOperator.cpp
index 4233440c..28dcec11 100644
--- a/src/core/function/CharsetOperator.cpp
+++ b/src/core/function/CharsetOperator.cpp
@@ -34,8 +34,6 @@
#include <unicode/utypes.h>
#include <cstddef>
-#include <memory>
-#include <string>
GpgFrontend::CharsetOperator::CharsetInfo GpgFrontend::CharsetOperator::Detect(
const std::string &buffer) {
diff --git a/src/core/function/gpg/GpgAdvancedOperator.cpp b/src/core/function/gpg/GpgAdvancedOperator.cpp
index 8bb558c1..7ef89ce7 100644
--- a/src/core/function/gpg/GpgAdvancedOperator.cpp
+++ b/src/core/function/gpg/GpgAdvancedOperator.cpp
@@ -34,12 +34,8 @@
#include "core/function/gpg/GpgCommandExecutor.h"
#include "core/module/ModuleManager.h"
-#include "spdlog/spdlog.h"
-GpgFrontend::GpgAdvancedOperator::GpgAdvancedOperator(int channel)
- : SingletonFunctionObject(channel) {}
-
-bool GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache() {
+auto GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache() -> bool {
bool success = false;
const auto gpgconf_path = Module::RetrieveRTValueTypedOrDefault<>(
@@ -51,10 +47,11 @@ bool GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache() {
return false;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{gpgconf_path,
{"--reload", "gpg-agent"},
- [&](int exit_code, const std::string &p_out, const std::string &p_err) {
+ [&](int exit_code, const std::string & /*p_out*/,
+ const std::string & /*p_err*/) {
if (exit_code == 0) {
SPDLOG_DEBUG("gpgconf reload exit code: {}", exit_code);
success = true;
@@ -63,7 +60,7 @@ bool GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache() {
return success;
}
-bool GpgFrontend::GpgAdvancedOperator::ReloadGpgComponents() {
+auto GpgFrontend::GpgAdvancedOperator::ReloadGpgComponents() -> bool {
bool success = false;
const auto gpgconf_path = Module::RetrieveRTValueTypedOrDefault<>(
@@ -75,7 +72,7 @@ bool GpgFrontend::GpgAdvancedOperator::ReloadGpgComponents() {
return false;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{gpgconf_path,
{"--reload"},
[&](int exit_code, const std::string &p_out, const std::string &p_err) {
@@ -101,7 +98,7 @@ void GpgFrontend::GpgAdvancedOperator::RestartGpgComponents() {
return;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{gpgconf_path,
{"--verbose", "--kill", "all"},
[&](int exit_code, const std::string &p_out, const std::string &p_err) {
@@ -146,7 +143,7 @@ void GpgFrontend::GpgAdvancedOperator::RestartGpgComponents() {
}});
}
-bool GpgFrontend::GpgAdvancedOperator::ResetConfigures() {
+auto GpgFrontend::GpgAdvancedOperator::ResetConfigures() -> bool {
bool success = false;
const auto gpgconf_path = Module::RetrieveRTValueTypedOrDefault<>(
@@ -158,7 +155,7 @@ bool GpgFrontend::GpgAdvancedOperator::ResetConfigures() {
return false;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{gpgconf_path,
{"--apply-defaults"},
[&](int exit_code, const std::string &p_out, const std::string &p_err) {
@@ -175,7 +172,7 @@ bool GpgFrontend::GpgAdvancedOperator::ResetConfigures() {
return success;
}
-bool GpgFrontend::GpgAdvancedOperator::StartGpgAgent() {
+auto GpgFrontend::GpgAdvancedOperator::StartGpgAgent() -> bool {
bool success = false;
const auto gpg_agent_path = Module::RetrieveRTValueTypedOrDefault<>(
@@ -195,7 +192,7 @@ bool GpgFrontend::GpgAdvancedOperator::StartGpgAgent() {
return false;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{gpg_agent_path,
{"--homedir", home_path, "--daemon"},
[&](int exit_code, const std::string &p_out, const std::string &p_err) {
@@ -217,7 +214,7 @@ bool GpgFrontend::GpgAdvancedOperator::StartGpgAgent() {
return success;
}
-bool GpgFrontend::GpgAdvancedOperator::StartDirmngr() {
+auto GpgFrontend::GpgAdvancedOperator::StartDirmngr() -> bool {
bool success = false;
const auto dirmngr_path = Module::RetrieveRTValueTypedOrDefault<>(
@@ -237,7 +234,7 @@ bool GpgFrontend::GpgAdvancedOperator::StartDirmngr() {
return false;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{dirmngr_path,
{"--homedir", home_path, "--daemon"},
[&](int exit_code, const std::string &p_out, const std::string &p_err) {
@@ -258,7 +255,7 @@ bool GpgFrontend::GpgAdvancedOperator::StartDirmngr() {
return success;
}
-bool GpgFrontend::GpgAdvancedOperator::StartKeyBoxd() {
+auto GpgFrontend::GpgAdvancedOperator::StartKeyBoxd() -> bool {
bool success = false;
const auto keyboxd_path = Module::RetrieveRTValueTypedOrDefault<>(
@@ -278,7 +275,7 @@ bool GpgFrontend::GpgAdvancedOperator::StartKeyBoxd() {
return false;
}
- GpgFrontend::GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgFrontend::GpgCommandExecutor::ExecuteSync(
{keyboxd_path,
{"--homedir", home_path, "--daemon"},
[&](int exit_code, const std::string &p_out, const std::string &p_err) {
diff --git a/src/core/function/gpg/GpgAdvancedOperator.h b/src/core/function/gpg/GpgAdvancedOperator.h
index 1e55370b..fbd6f6ef 100644
--- a/src/core/function/gpg/GpgAdvancedOperator.h
+++ b/src/core/function/gpg/GpgAdvancedOperator.h
@@ -32,30 +32,17 @@
#pragma once
-#include "core/GpgConstants.h"
-#include "core/GpgContext.h"
-#include "core/GpgFunctionObject.h"
-
namespace GpgFrontend {
-class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
- : public SingletonFunctionObject<GpgAdvancedOperator> {
+class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator {
public:
/**
- * @brief Construct a new Basic Operator object
- *
- * @param channel Channel corresponding to the context
- */
- explicit GpgAdvancedOperator(
- int channel = SingletonFunctionObject::GetDefaultChannel());
-
- /**
* @brief
*
* @return true
* @return false
*/
- bool ClearGpgPasswordCache();
+ static auto ClearGpgPasswordCache() -> bool;
/**
* @brief
@@ -63,7 +50,7 @@ class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
* @return true
* @return false
*/
- bool ReloadGpgComponents();
+ static auto ReloadGpgComponents() -> bool;
/**
* @brief
@@ -71,7 +58,7 @@ class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
* @return true
* @return false
*/
- void RestartGpgComponents();
+ static void RestartGpgComponents();
/**
* @brief
@@ -79,7 +66,7 @@ class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
* @return true
* @return false
*/
- bool ResetConfigures();
+ static auto ResetConfigures() -> bool;
/**
* @brief
@@ -87,7 +74,7 @@ class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
* @return true
* @return false
*/
- bool StartGpgAgent();
+ static auto StartGpgAgent() -> bool;
/**
* @brief
@@ -95,7 +82,7 @@ class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
* @return true
* @return false
*/
- bool StartDirmngr();
+ static auto StartDirmngr() -> bool;
/**
* @brief
@@ -103,11 +90,7 @@ class GPGFRONTEND_CORE_EXPORT GpgAdvancedOperator
* @return true
* @return false
*/
- bool StartKeyBoxd();
-
- private:
- GpgContext& ctx_ = GpgContext::GetInstance(
- SingletonFunctionObject::GetChannel()); ///< Corresponding context
+ static auto StartKeyBoxd() -> bool;
};
} // namespace GpgFrontend
diff --git a/src/core/function/gpg/GpgBasicOperator.cpp b/src/core/function/gpg/GpgBasicOperator.cpp
index d770e2f2..c74eeea9 100644
--- a/src/core/function/gpg/GpgBasicOperator.cpp
+++ b/src/core/function/gpg/GpgBasicOperator.cpp
@@ -28,26 +28,26 @@
#include "GpgBasicOperator.h"
-#include <vector>
-
-#include "GpgKeyGetter.h"
-
GpgFrontend::GpgBasicOperator::GpgBasicOperator(int channel)
: SingletonFunctionObject<GpgBasicOperator>(channel) {}
-GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Encrypt(
+auto GpgFrontend::GpgBasicOperator::Encrypt(
KeyListPtr keys, GpgFrontend::BypeArrayRef in_buffer,
- GpgFrontend::ByteArrayPtr& out_buffer, GpgFrontend::GpgEncrResult& result) {
+ GpgFrontend::ByteArrayPtr& out_buffer, GpgFrontend::GpgEncrResult& result)
+ -> GpgFrontend::GpgError {
// gpgme_encrypt_result_t e_result;
gpgme_key_t recipients[keys->size() + 1];
int index = 0;
- for (const auto& key : *keys) recipients[index++] = gpgme_key_t(key);
+ for (const auto& key : *keys) {
+ recipients[index++] = static_cast<gpgme_key_t>(key);
+ }
// Last entry data_in array has to be nullptr
recipients[keys->size()] = nullptr;
- GpgData data_in(in_buffer.data(), in_buffer.size()), data_out;
+ GpgData data_in(in_buffer.data(), in_buffer.size());
+ GpgData data_out;
gpgme_error_t err = check_gpg_error(gpgme_op_encrypt(
ctx_, recipients, GPGME_ENCRYPT_ALWAYS_TRUST, data_in, data_out));
@@ -61,12 +61,13 @@ GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Encrypt(
return err;
}
-GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Decrypt(
+auto GpgFrontend::GpgBasicOperator::Decrypt(
BypeArrayRef in_buffer, GpgFrontend::ByteArrayPtr& out_buffer,
- GpgFrontend::GpgDecrResult& result) {
+ GpgFrontend::GpgDecrResult& result) -> GpgFrontend::GpgError {
gpgme_error_t err;
- GpgData data_in(in_buffer.data(), in_buffer.size()), data_out;
+ GpgData data_in(in_buffer.data(), in_buffer.size());
+ GpgData data_out;
err = check_gpg_error(gpgme_op_decrypt(ctx_, data_in, data_out));
auto temp_data_out = data_out.Read2Buffer();
@@ -78,19 +79,21 @@ GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Decrypt(
return err;
}
-GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Verify(
- BypeArrayRef& in_buffer, ByteArrayPtr& sig_buffer,
- GpgVerifyResult& result) const {
+auto GpgFrontend::GpgBasicOperator::Verify(BypeArrayRef& in_buffer,
+ ByteArrayPtr& sig_buffer,
+ GpgVerifyResult& result) const
+ -> GpgFrontend::GpgError {
gpgme_error_t err;
GpgData data_in(in_buffer.data(), in_buffer.size());
GpgData data_out;
- if (sig_buffer != nullptr && sig_buffer->size() > 0) {
+ if (sig_buffer != nullptr && !sig_buffer->empty()) {
GpgData sig_data(sig_buffer->data(), sig_buffer->size());
err = check_gpg_error(gpgme_op_verify(ctx_, sig_data, data_in, nullptr));
- } else
+ } else {
err = check_gpg_error(gpgme_op_verify(ctx_, data_in, nullptr, data_out));
+ }
auto temp_result = _new_result(gpgme_op_verify_result(ctx_));
std::swap(result, temp_result);
@@ -98,15 +101,16 @@ GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Verify(
return err;
}
-GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Sign(
+auto GpgFrontend::GpgBasicOperator::Sign(
KeyListPtr signers, BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
- gpgme_sig_mode_t mode, GpgSignResult& result) {
+ gpgme_sig_mode_t mode, GpgSignResult& result) -> GpgFrontend::GpgError {
gpgme_error_t err;
// Set Singers of this opera
SetSigners(*signers);
- GpgData data_in(in_buffer.data(), in_buffer.size()), data_out;
+ GpgData data_in(in_buffer.data(), in_buffer.size());
+ GpgData data_out;
err = check_gpg_error(gpgme_op_sign(ctx_, data_in, data_out, mode));
@@ -120,12 +124,14 @@ GpgFrontend::GpgError GpgFrontend::GpgBasicOperator::Sign(
return err;
}
-gpgme_error_t GpgFrontend::GpgBasicOperator::DecryptVerify(
+auto GpgFrontend::GpgBasicOperator::DecryptVerify(
BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
- GpgDecrResult& decrypt_result, GpgVerifyResult& verify_result) {
+ GpgDecrResult& decrypt_result, GpgVerifyResult& verify_result)
+ -> gpgme_error_t {
gpgme_error_t err;
- GpgData data_in(in_buffer.data(), in_buffer.size()), data_out;
+ GpgData data_in(in_buffer.data(), in_buffer.size());
+ GpgData data_out;
err = check_gpg_error(gpgme_op_decrypt_verify(ctx_, data_in, data_out));
@@ -141,10 +147,10 @@ gpgme_error_t GpgFrontend::GpgBasicOperator::DecryptVerify(
return err;
}
-gpgme_error_t GpgFrontend::GpgBasicOperator::EncryptSign(
+auto GpgFrontend::GpgBasicOperator::EncryptSign(
KeyListPtr keys, KeyListPtr signers, BypeArrayRef in_buffer,
ByteArrayPtr& out_buffer, GpgEncrResult& encr_result,
- GpgSignResult& sign_result) {
+ GpgSignResult& sign_result) -> gpgme_error_t {
gpgme_error_t err;
SetSigners(*signers);
@@ -153,12 +159,15 @@ gpgme_error_t GpgFrontend::GpgBasicOperator::EncryptSign(
// set key for user
int index = 0;
- for (const auto& key : *keys) recipients[index++] = gpgme_key_t(key);
+ for (const auto& key : *keys) {
+ recipients[index++] = static_cast<gpgme_key_t>(key);
+ }
// Last entry dataIn array has to be nullptr
recipients[keys->size()] = nullptr;
- GpgData data_in(in_buffer.data(), in_buffer.size()), data_out;
+ GpgData data_in(in_buffer.data(), in_buffer.size());
+ GpgData data_out;
// If the last parameter isnt 0, a private copy of data is made
err = check_gpg_error(gpgme_op_encrypt_sign(
@@ -189,22 +198,23 @@ void GpgFrontend::GpgBasicOperator::SetSigners(KeyArgsList& signers) {
SPDLOG_DEBUG("not all signers added");
}
-std::unique_ptr<GpgFrontend::KeyArgsList>
-GpgFrontend::GpgBasicOperator::GetSigners() {
+auto GpgFrontend::GpgBasicOperator::GetSigners()
+ -> std::unique_ptr<GpgFrontend::KeyArgsList> {
auto count = gpgme_signers_count(ctx_);
auto signers = std::make_unique<std::vector<GpgKey>>();
- for (auto i = 0u; i < count; i++) {
+ for (auto i = 0U; i < count; i++) {
auto key = GpgKey(gpgme_signers_enum(ctx_, i));
signers->push_back(GpgKey(std::move(key)));
}
return signers;
}
-gpg_error_t GpgFrontend::GpgBasicOperator::EncryptSymmetric(
+auto GpgFrontend::GpgBasicOperator::EncryptSymmetric(
GpgFrontend::ByteArray& in_buffer, GpgFrontend::ByteArrayPtr& out_buffer,
- GpgFrontend::GpgEncrResult& result) {
+ GpgFrontend::GpgEncrResult& result) -> gpg_error_t {
// deepcopy from ByteArray to GpgData
- GpgData data_in(in_buffer.data(), in_buffer.size()), data_out;
+ GpgData data_in(in_buffer.data(), in_buffer.size());
+ GpgData data_out;
gpgme_error_t err = check_gpg_error(gpgme_op_encrypt(
ctx_, nullptr, GPGME_ENCRYPT_SYMMETRIC, data_in, data_out));
diff --git a/src/core/function/gpg/GpgBasicOperator.h b/src/core/function/gpg/GpgBasicOperator.h
index 4a762e9b..08c3ae86 100644
--- a/src/core/function/gpg/GpgBasicOperator.h
+++ b/src/core/function/gpg/GpgBasicOperator.h
@@ -62,8 +62,8 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param result the result of the operation
* @return error code
*/
- gpg_error_t Encrypt(KeyListPtr keys, BypeArrayRef in_buffer,
- ByteArrayPtr& out_buffer, GpgEncrResult& result);
+ auto Encrypt(KeyListPtr keys, BypeArrayRef in_buffer,
+ ByteArrayPtr& out_buffer, GpgEncrResult& result) -> gpg_error_t;
/**
* @brief Call the interface provided by GPGME to symmetrical encryption
@@ -73,8 +73,8 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param result Encrypted results
* @return gpg_error_t
*/
- gpg_error_t EncryptSymmetric(BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
- GpgEncrResult& result);
+ auto EncryptSymmetric(BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
+ GpgEncrResult& result) -> gpg_error_t;
/**
*
@@ -89,10 +89,9 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param sign_result Signature result
* @return
*/
- gpgme_error_t EncryptSign(KeyListPtr keys, KeyListPtr signers,
- BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
- GpgEncrResult& encr_result,
- GpgSignResult& sign_result);
+ auto EncryptSign(KeyListPtr keys, KeyListPtr signers, BypeArrayRef in_buffer,
+ ByteArrayPtr& out_buffer, GpgEncrResult& encr_result,
+ GpgSignResult& sign_result) -> gpgme_error_t;
/**
* @brief Call the interface provided by gpgme for decryption operation
@@ -102,8 +101,8 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param result the result of the operation
* @return error code
*/
- gpgme_error_t Decrypt(BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
- GpgDecrResult& result);
+ auto Decrypt(BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
+ GpgDecrResult& result) -> gpgme_error_t;
/**
* @brief Call the interface provided by gpgme to perform decryption and
@@ -115,9 +114,9 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param verify_result the result of the verifying operation
* @return error code
*/
- gpgme_error_t DecryptVerify(BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
- GpgDecrResult& decrypt_result,
- GpgVerifyResult& verify_result);
+ auto DecryptVerify(BypeArrayRef in_buffer, ByteArrayPtr& out_buffer,
+ GpgDecrResult& decrypt_result,
+ GpgVerifyResult& verify_result) -> gpgme_error_t;
/**
* @brief Call the interface provided by gpgme for verification operation
@@ -127,8 +126,8 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param result the result of the operation
* @return error code
*/
- gpgme_error_t Verify(BypeArrayRef in_buffer, ByteArrayPtr& sig_buffer,
- GpgVerifyResult& result) const;
+ auto Verify(BypeArrayRef in_buffer, ByteArrayPtr& sig_buffer,
+ GpgVerifyResult& result) const -> gpgme_error_t;
/**
* @brief Call the interface provided by gpgme for signing operation
@@ -150,9 +149,9 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
* @param result the result of the operation
* @return error code
*/
- gpg_error_t Sign(KeyListPtr signers, BypeArrayRef in_buffer,
- ByteArrayPtr& out_buffer, gpgme_sig_mode_t mode,
- GpgSignResult& result);
+ auto Sign(KeyListPtr signers, BypeArrayRef in_buffer,
+ ByteArrayPtr& out_buffer, gpgme_sig_mode_t mode,
+ GpgSignResult& result) -> gpg_error_t;
/**
* @brief Set the private key for signatures, this operation is a global
@@ -167,7 +166,7 @@ class GPGFRONTEND_CORE_EXPORT GpgBasicOperator
*
* @return Intelligent pointer pointing to the private key list
*/
- std::unique_ptr<KeyArgsList> GetSigners();
+ auto GetSigners() -> std::unique_ptr<KeyArgsList>;
private:
GpgContext& ctx_ = GpgContext::GetInstance(
diff --git a/src/core/function/gpg/GpgCommandExecutor.cpp b/src/core/function/gpg/GpgCommandExecutor.cpp
index fb1d647d..5cf57b27 100644
--- a/src/core/function/gpg/GpgCommandExecutor.cpp
+++ b/src/core/function/gpg/GpgCommandExecutor.cpp
@@ -28,112 +28,22 @@
#include "GpgCommandExecutor.h"
#include <boost/format.hpp>
-#include <string>
+#include <utility>
#include "GpgFunctionObject.h"
-#include "core/thread/DataObject.h"
+#include "core/model/DataObject.h"
+#include "core/module/Module.h"
+#include "core/thread/Task.h"
#include "core/thread/TaskRunnerGetter.h"
-#include "module/Module.h"
-#include "spdlog/spdlog.h"
-#include "thread/Task.h"
namespace GpgFrontend {
-GpgCommandExecutor::ExecuteContext::ExecuteContext(
- std::string cmd, std::vector<std::string> arguments,
- GpgCommandExecutorCallback callback, Module::TaskRunnerPtr task_runner,
- GpgCommandExecutorInteractor int_func)
- : cmd(cmd),
- arguments(arguments),
- cb_func(callback),
- int_func(int_func),
- task_runner(task_runner) {}
-
-GpgCommandExecutor::GpgCommandExecutor(int channel)
- : SingletonFunctionObject<GpgCommandExecutor>(channel) {}
-
-void GpgCommandExecutor::ExecuteSync(ExecuteContext context) {
- Thread::Task *task = build_task_from_exec_ctx(context);
-
- QEventLoop looper;
- QObject::connect(task, &Thread::Task::SignalTaskEnd, &looper,
- &QEventLoop::quit);
-
- Thread::TaskRunnerPtr target_task_runner = nullptr;
-
- if (context.task_runner != nullptr) {
- target_task_runner = context.task_runner;
- } else {
- target_task_runner =
- GpgFrontend::Thread::TaskRunnerGetter::GetInstance().GetTaskRunner(
- Thread::TaskRunnerGetter::kTaskRunnerType_External_Process);
- }
-
- target_task_runner->PostTask(task);
-
- // to arvoid dead lock issue we need to check if current thread is the same as
- // target thread. if it is, we can't call exec() because it will block the
- // current thread.
- if (QThread::currentThread() != target_task_runner->GetThread()) {
- // block until task finished
- // this is to keep reference vaild until task finished
- looper.exec();
- }
-}
-
-void GpgCommandExecutor::ExecuteConcurrentlyAsync(ExecuteContexts contexts) {
- for (auto &context : contexts) {
- auto &cmd = context.cmd;
- SPDLOG_INFO("gpg concurrently called cmd {}", cmd);
-
- Thread::Task *task = build_task_from_exec_ctx(context);
-
- if (context.task_runner != nullptr)
- context.task_runner->PostTask(task);
- else
- GpgFrontend::Thread::TaskRunnerGetter::GetInstance()
- .GetTaskRunner(
- Thread::TaskRunnerGetter::kTaskRunnerType_External_Process)
- ->PostTask(task);
- }
-}
-
-void GpgCommandExecutor::ExecuteConcurrentlySync(
- const ExecuteContexts contexts) {
- QEventLoop looper;
- int remainingTasks = contexts.size();
-
- for (auto &context : contexts) {
- auto &cmd = context.cmd;
- SPDLOG_INFO("gpg concurrently called cmd {}", cmd);
-
- Thread::Task *task = build_task_from_exec_ctx(context);
-
- QObject::connect(task, &Thread::Task::SignalTaskEnd, [&]() {
- --remainingTasks;
- if (remainingTasks <= 0) {
- looper.quit();
- }
- });
-
- if (context.task_runner != nullptr)
- context.task_runner->PostTask(task);
- else
- GpgFrontend::Thread::TaskRunnerGetter::GetInstance()
- .GetTaskRunner(
- Thread::TaskRunnerGetter::kTaskRunnerType_External_Process)
- ->PostTask(task);
- }
-
- looper.exec();
-}
-
-Thread::Task *GpgCommandExecutor::build_task_from_exec_ctx(
- const ExecuteContext &context) {
- auto &cmd = context.cmd;
- auto &arguments = context.arguments;
- auto &interact_function = context.int_func;
- auto &cmd_executor_callback = context.cb_func;
+auto BuildTaskFromExecCtx(const GpgCommandExecutor::ExecuteContext &context)
+ -> Thread::Task * {
+ const auto &cmd = context.cmd;
+ const auto &arguments = context.arguments;
+ const auto &interact_function = context.int_func;
+ const auto &cmd_executor_callback = context.cb_func;
const std::string joined_argument = std::accumulate(
std::begin(arguments), std::end(arguments), std::string(),
@@ -145,21 +55,20 @@ Thread::Task *GpgCommandExecutor::build_task_from_exec_ctx(
arguments.size());
Thread::Task::TaskCallback result_callback =
- [cmd, joined_argument](int rtn, Thread::DataObjectPtr data_object) {
+ [cmd, joined_argument](int /*rtn*/, const DataObjectPtr &data_object) {
SPDLOG_DEBUG(
"data object args count of cmd executor result callback: {}",
data_object->GetObjectSize());
if (!data_object->Check<int, std::string, std::string,
- GpgCommandExecutorCallback>())
+ GpgCommandExecutorCallback>()) {
throw std::runtime_error("invalid data object size");
+ }
- auto exit_code = Thread::ExtractParams<int>(data_object, 0);
- auto process_stdout =
- Thread::ExtractParams<std::string>(data_object, 1);
- auto process_stderr =
- Thread::ExtractParams<std::string>(data_object, 2);
+ auto exit_code = ExtractParams<int>(data_object, 0);
+ auto process_stdout = ExtractParams<std::string>(data_object, 1);
+ auto process_stderr = ExtractParams<std::string>(data_object, 2);
auto callback =
- Thread::ExtractParams<GpgCommandExecutorCallback>(data_object, 3);
+ ExtractParams<GpgCommandExecutorCallback>(data_object, 3);
// call callback
SPDLOG_DEBUG(
@@ -170,31 +79,38 @@ Thread::Task *GpgCommandExecutor::build_task_from_exec_ctx(
};
Thread::Task::TaskRunnable runner =
- [joined_argument](Thread::DataObjectPtr data_object) -> int {
+ [joined_argument](const DataObjectPtr &data_object) -> int {
SPDLOG_DEBUG("process runner called, data object size: {}",
data_object->GetObjectSize());
if (!data_object->Check<std::string, std::vector<std::string>,
GpgCommandExecutorInteractor,
- GpgCommandExecutorCallback>())
+ GpgCommandExecutorCallback>()) {
throw std::runtime_error("invalid data object size");
+ }
// get arguments
- auto cmd = Thread::ExtractParams<std::string>(data_object, 0);
- auto arguments =
- Thread::ExtractParams<std::vector<std::string>>(data_object, 1);
+ auto cmd = ExtractParams<std::string>(data_object, 0);
+ auto arguments = ExtractParams<std::vector<std::string>>(data_object, 1);
auto interact_func =
- Thread::ExtractParams<GpgCommandExecutorInteractor>(data_object, 2);
- auto callback =
- Thread::ExtractParams<GpgCommandExecutorCallback>(data_object, 3);
+ ExtractParams<GpgCommandExecutorInteractor>(data_object, 2);
+ auto callback = ExtractParams<GpgCommandExecutorCallback>(data_object, 3);
+ // create process
auto *cmd_process = new QProcess();
+ // move to current thread
+ //
cmd_process->moveToThread(QThread::currentThread());
+ // set process channel mode
+ // this is to make sure we can get all output from stdout and stderr
cmd_process->setProcessChannelMode(QProcess::MergedChannels);
cmd_process->setProgram(QString::fromStdString(cmd));
+
+ // set arguments
QStringList q_arguments;
- for (const auto &argument : arguments)
+ for (const auto &argument : arguments) {
q_arguments.append(QString::fromStdString(argument));
+ }
cmd_process->setArguments(q_arguments);
QObject::connect(
@@ -223,9 +139,9 @@ Thread::Task *GpgCommandExecutor::build_task_from_exec_ctx(
cmd_process->waitForFinished();
std::string process_stdout =
- cmd_process->readAllStandardOutput().toStdString(),
- process_stderr =
- cmd_process->readAllStandardError().toStdString();
+ cmd_process->readAllStandardOutput().toStdString();
+ std::string process_stderr =
+ cmd_process->readAllStandardError().toStdString();
int exit_code = cmd_process->exitCode();
SPDLOG_DEBUG(
@@ -251,9 +167,95 @@ Thread::Task *GpgCommandExecutor::build_task_from_exec_ctx(
std::move(runner),
(boost::format("GpgCommamdExecutor(%1%){%2%}") % cmd % joined_argument)
.str(),
- Thread::TransferParams(cmd, arguments, interact_function,
- cmd_executor_callback),
+ TransferParams(cmd, arguments, interact_function, cmd_executor_callback),
std::move(result_callback));
}
+GpgCommandExecutor::ExecuteContext::ExecuteContext(
+ std::string cmd, std::vector<std::string> arguments,
+ GpgCommandExecutorCallback callback, Module::TaskRunnerPtr task_runner,
+ GpgCommandExecutorInteractor int_func)
+ : cmd(std::move(cmd)),
+ arguments(std::move(arguments)),
+ cb_func(std::move(callback)),
+ int_func(std::move(int_func)),
+ task_runner(std::move(task_runner)) {}
+
+void GpgCommandExecutor::ExecuteSync(ExecuteContext context) {
+ Thread::Task *task = BuildTaskFromExecCtx(context);
+
+ QEventLoop looper;
+ QObject::connect(task, &Thread::Task::SignalTaskEnd, &looper,
+ &QEventLoop::quit);
+
+ Thread::TaskRunnerPtr target_task_runner = nullptr;
+
+ if (context.task_runner != nullptr) {
+ target_task_runner = context.task_runner;
+ } else {
+ target_task_runner =
+ GpgFrontend::Thread::TaskRunnerGetter::GetInstance().GetTaskRunner(
+ Thread::TaskRunnerGetter::kTaskRunnerType_External_Process);
+ }
+
+ target_task_runner->PostTask(task);
+
+ // to arvoid dead lock issue we need to check if current thread is the same as
+ // target thread. if it is, we can't call exec() because it will block the
+ // current thread.
+ if (QThread::currentThread() != target_task_runner->GetThread()) {
+ // block until task finished
+ // this is to keep reference vaild until task finished
+ looper.exec();
+ }
+}
+
+void GpgCommandExecutor::ExecuteConcurrentlyAsync(ExecuteContexts contexts) {
+ for (auto &context : contexts) {
+ const auto &cmd = context.cmd;
+ SPDLOG_INFO("gpg concurrently called cmd {}", cmd);
+
+ Thread::Task *task = BuildTaskFromExecCtx(context);
+
+ if (context.task_runner != nullptr) {
+ context.task_runner->PostTask(task);
+ } else {
+ GpgFrontend::Thread::TaskRunnerGetter::GetInstance()
+ .GetTaskRunner(
+ Thread::TaskRunnerGetter::kTaskRunnerType_External_Process)
+ ->PostTask(task);
+ }
+ }
+}
+
+void GpgCommandExecutor::ExecuteConcurrentlySync(ExecuteContexts contexts) {
+ QEventLoop looper;
+ auto remaining_tasks = contexts.size();
+
+ for (auto &context : contexts) {
+ const auto &cmd = context.cmd;
+ SPDLOG_INFO("gpg concurrently called cmd {}", cmd);
+
+ Thread::Task *task = BuildTaskFromExecCtx(context);
+
+ QObject::connect(task, &Thread::Task::SignalTaskEnd, [&]() {
+ --remaining_tasks;
+ if (remaining_tasks <= 0) {
+ looper.quit();
+ }
+ });
+
+ if (context.task_runner != nullptr) {
+ context.task_runner->PostTask(task);
+ } else {
+ GpgFrontend::Thread::TaskRunnerGetter::GetInstance()
+ .GetTaskRunner(
+ Thread::TaskRunnerGetter::kTaskRunnerType_External_Process)
+ ->PostTask(task);
+ }
+ }
+
+ looper.exec();
+}
+
} // namespace GpgFrontend \ No newline at end of file
diff --git a/src/core/function/gpg/GpgCommandExecutor.h b/src/core/function/gpg/GpgCommandExecutor.h
index fc9f2a83..f017fdfb 100644
--- a/src/core/function/gpg/GpgCommandExecutor.h
+++ b/src/core/function/gpg/GpgCommandExecutor.h
@@ -28,17 +28,7 @@
#pragma once
-#include <initializer_list>
-
#include "core/module/Module.h"
-#include "core/thread/TaskRunner.h"
-#ifndef WINDOWS
-#include <boost/process.hpp>
-#endif
-
-#include "core/GpgContext.h"
-#include "core/GpgFunctionObject.h"
-#include "core/thread/Task.h"
namespace GpgFrontend {
@@ -50,8 +40,7 @@ using GpgCommandExecutorInteractor = std::function<void(QProcess *)>;
* @brief Extra commands related to GPG
*
*/
-class GPGFRONTEND_CORE_EXPORT GpgCommandExecutor
- : public SingletonFunctionObject<GpgCommandExecutor> {
+class GPGFRONTEND_CORE_EXPORT GpgCommandExecutor {
public:
struct ExecuteContext {
const std::string cmd;
@@ -71,30 +60,16 @@ class GPGFRONTEND_CORE_EXPORT GpgCommandExecutor
using ExecuteContexts = std::vector<ExecuteContext>;
/**
- * @brief Construct a new Gpg Command Executor object
- *
- * @param channel Corresponding context
- */
- explicit GpgCommandExecutor(
- int channel = SingletonFunctionObject::GetDefaultChannel());
-
- /**
* @brief Excuting a command
*
* @param arguments Command parameters
* @param interact_func Command answering function
*/
- void ExecuteSync(ExecuteContext);
-
- void ExecuteConcurrentlyAsync(ExecuteContexts);
-
- void ExecuteConcurrentlySync(ExecuteContexts);
+ static void ExecuteSync(ExecuteContext);
- private:
- GpgContext &ctx_ = GpgContext::GetInstance(
- SingletonFunctionObject::GetChannel()); ///< Corresponding context
+ static void ExecuteConcurrentlyAsync(ExecuteContexts);
- Thread::Task *build_task_from_exec_ctx(const ExecuteContext &);
+ static void ExecuteConcurrentlySync(ExecuteContexts);
};
} // namespace GpgFrontend
diff --git a/src/core/function/gpg/GpgFileOpera.cpp b/src/core/function/gpg/GpgFileOpera.cpp
index de50de62..199cf3d7 100644
--- a/src/core/function/gpg/GpgFileOpera.cpp
+++ b/src/core/function/gpg/GpgFileOpera.cpp
@@ -27,19 +27,15 @@
*/
#include "GpgFileOpera.h"
-#include <memory>
-#include <string>
-
-#include "GpgBasicOperator.h"
-#include "GpgConstants.h"
-#include "function/FileOperator.h"
-
-GpgFrontend::GpgFileOpera::GpgFileOpera(int channel)
- : SingletonFunctionObject<GpgFileOpera>(channel) {}
-
-GpgFrontend::GpgError GpgFrontend::GpgFileOpera::EncryptFile(
- KeyListPtr keys, const std::string& in_path, const std::string& out_path,
- GpgEncrResult& result, int _channel) {
+#include "core/GpgConstants.h"
+#include "core/function/FileOperator.h"
+#include "core/function/gpg/GpgBasicOperator.h"
+
+auto GpgFrontend::GpgFileOpera::EncryptFile(KeyListPtr keys,
+ const std::string& in_path,
+ const std::string& out_path,
+ GpgEncrResult& result, int _channel)
+ -> GpgFrontend::GpgError {
#ifdef WINDOWS
auto in_path_std =
std::filesystem::path(QString::fromStdString(in_path).toStdU16String());
@@ -68,9 +64,10 @@ GpgFrontend::GpgError GpgFrontend::GpgFileOpera::EncryptFile(
return err;
}
-GpgFrontend::GpgError GpgFrontend::GpgFileOpera::DecryptFile(
- const std::string& in_path, const std::string& out_path,
- GpgDecrResult& result) {
+auto GpgFrontend::GpgFileOpera::DecryptFile(const std::string& in_path,
+ const std::string& out_path,
+ GpgDecrResult& result)
+ -> GpgFrontend::GpgError {
#ifdef WINDOWS
auto in_path_std =
std::filesystem::path(QString::fromStdString(in_path).toStdU16String());
@@ -100,11 +97,11 @@ GpgFrontend::GpgError GpgFrontend::GpgFileOpera::DecryptFile(
return err;
}
-gpgme_error_t GpgFrontend::GpgFileOpera::SignFile(KeyListPtr keys,
- const std::string& in_path,
- const std::string& out_path,
- GpgSignResult& result,
- int _channel) {
+auto GpgFrontend::GpgFileOpera::SignFile(KeyListPtr keys,
+ const std::string& in_path,
+ const std::string& out_path,
+ GpgSignResult& result, int _channel)
+ -> gpgme_error_t {
#ifdef WINDOWS
auto in_path_std =
std::filesystem::path(QString::fromStdString(in_path).toStdU16String());
@@ -132,9 +129,10 @@ gpgme_error_t GpgFrontend::GpgFileOpera::SignFile(KeyListPtr keys,
return err;
}
-gpgme_error_t GpgFrontend::GpgFileOpera::VerifyFile(
- const std::string& data_path, const std::string& sign_path,
- GpgVerifyResult& result, int _channel) {
+auto GpgFrontend::GpgFileOpera::VerifyFile(const std::string& data_path,
+ const std::string& sign_path,
+ GpgVerifyResult& result,
+ int _channel) -> gpgme_error_t {
#ifdef WINDOWS
auto data_path_std =
std::filesystem::path(QString::fromStdString(data_path).toStdU16String());
@@ -162,10 +160,10 @@ gpgme_error_t GpgFrontend::GpgFileOpera::VerifyFile(
return err;
}
-gpg_error_t GpgFrontend::GpgFileOpera::EncryptSignFile(
+auto GpgFrontend::GpgFileOpera::EncryptSignFile(
KeyListPtr keys, KeyListPtr signer_keys, const std::string& in_path,
const std::string& out_path, GpgEncrResult& encr_res,
- GpgSignResult& sign_res, int _channel) {
+ GpgSignResult& sign_res, int _channel) -> gpg_error_t {
#ifdef WINDOWS
auto in_path_std =
std::filesystem::path(QString::fromStdString(in_path).toStdU16String());
@@ -194,9 +192,11 @@ gpg_error_t GpgFrontend::GpgFileOpera::EncryptSignFile(
return err;
}
-gpg_error_t GpgFrontend::GpgFileOpera::DecryptVerifyFile(
- const std::string& in_path, const std::string& out_path,
- GpgDecrResult& decr_res, GpgVerifyResult& verify_res) {
+auto GpgFrontend::GpgFileOpera::DecryptVerifyFile(const std::string& in_path,
+ const std::string& out_path,
+ GpgDecrResult& decr_res,
+ GpgVerifyResult& verify_res)
+ -> gpg_error_t {
#ifdef WINDOWS
auto in_path_std =
std::filesystem::path(QString::fromStdString(in_path).toStdU16String());
@@ -223,9 +223,9 @@ gpg_error_t GpgFrontend::GpgFileOpera::DecryptVerifyFile(
return err;
}
-unsigned int GpgFrontend::GpgFileOpera::EncryptFileSymmetric(
+auto GpgFrontend::GpgFileOpera::EncryptFileSymmetric(
const std::string& in_path, const std::string& out_path,
- GpgFrontend::GpgEncrResult& result, int _channel) {
+ GpgFrontend::GpgEncrResult& result, int _channel) -> unsigned int {
#ifdef WINDOWS
auto in_path_std =
std::filesystem::path(QString::fromStdString(in_path).toStdU16String());
diff --git a/src/core/function/gpg/GpgFileOpera.h b/src/core/function/gpg/GpgFileOpera.h
index f8b01a10..0d8ed0f2 100644
--- a/src/core/function/gpg/GpgFileOpera.h
+++ b/src/core/function/gpg/GpgFileOpera.h
@@ -29,49 +29,46 @@
#pragma once
#include "core/GpgConstants.h"
-#include "core/GpgContext.h"
#include "core/GpgModel.h"
namespace GpgFrontend {
/**
- * @brief Executive files related to the basic operations that are provided by
- * GpgBasicOperator
+ * @brief Executive files related to the basic operations of GPG
+ *
* @class class: GpgBasicOperator
*/
-class GPGFRONTEND_CORE_EXPORT GpgFileOpera
- : public SingletonFunctionObject<GpgFileOpera> {
+class GPGFRONTEND_CORE_EXPORT GpgFileOpera {
public:
- explicit GpgFileOpera(
- int channel = SingletonFunctionObject::GetDefaultChannel());
-
/**
- * @brief Encrypted file
+ * @brief Encrypted file with public key
*
* @param keys Used public key
* @param in_path The path where the enter file is located
* @param out_path The path where the output file is located
* @param result Encrypted results
- * @param _channel Channel in context
+ * @param channel Channel in context
* @return unsigned int error code
*/
- static unsigned int EncryptFile(KeyListPtr keys, const std::string& in_path,
- const std::string& out_path,
- GpgEncrResult& result,
- int _channel = GPGFRONTEND_DEFAULT_CHANNEL);
+ static auto EncryptFile(KeyListPtr keys, const std::string& in_path,
+ const std::string& out_path, GpgEncrResult& result,
+ int channel = GPGFRONTEND_DEFAULT_CHANNEL)
+ -> unsigned int;
/**
- * @brief 运用对称加密算法加密文件
+ * @brief Encrypted file symmetrically (with password)
*
* @param in_path
* @param out_path
* @param result
- * @param _channel
+ * @param channel
* @return unsigned int
*/
- static unsigned int EncryptFileSymmetric(
- const std::string& in_path, const std::string& out_path,
- GpgEncrResult& result, int _channel = GPGFRONTEND_DEFAULT_CHANNEL);
+ static auto EncryptFileSymmetric(const std::string& in_path,
+ const std::string& out_path,
+ GpgEncrResult& result,
+ int channel = GPGFRONTEND_DEFAULT_CHANNEL)
+ -> unsigned int;
/**
* @brief
@@ -81,40 +78,39 @@ class GPGFRONTEND_CORE_EXPORT GpgFileOpera
* @param result
* @return GpgError
*/
- static GpgError DecryptFile(const std::string& in_path,
- const std::string& out_path,
- GpgDecrResult& result);
+ static auto DecryptFile(const std::string& in_path,
+ const std::string& out_path, GpgDecrResult& result)
+ -> GpgError;
/**
- * @brief
+ * @brief Sign file with private key
*
* @param keys
* @param in_path
* @param out_path
* @param result
- * @param _channel
+ * @param channel
* @return GpgError
*/
- static GpgError SignFile(KeyListPtr keys, const std::string& in_path,
- const std::string& out_path, GpgSignResult& result,
- int _channel = GPGFRONTEND_DEFAULT_CHANNEL);
+ static auto SignFile(KeyListPtr keys, const std::string& in_path,
+ const std::string& out_path, GpgSignResult& result,
+ int channel = GPGFRONTEND_DEFAULT_CHANNEL) -> GpgError;
/**
- * @brief
+ * @brief Verify file with public key
*
- * @param data_path
- * @param sign_path
- * @param result
- * @param _channel
+ * @param data_path The path where the enter file is located
+ * @param sign_path The path where the signature file is located
+ * @param result Verify results
+ * @param channel Channel in context
* @return GpgError
*/
- static GpgError VerifyFile(const std::string& data_path,
- const std::string& sign_path,
- GpgVerifyResult& result,
- int _channel = GPGFRONTEND_DEFAULT_CHANNEL);
+ static auto VerifyFile(const std::string& data_path,
+ const std::string& sign_path, GpgVerifyResult& result,
+ int channel = GPGFRONTEND_DEFAULT_CHANNEL) -> GpgError;
/**
- * @brief
+ * @brief Encrypt and sign file with public key and private key
*
* @param keys
* @param signer_keys
@@ -122,15 +118,15 @@ class GPGFRONTEND_CORE_EXPORT GpgFileOpera
* @param out_path
* @param encr_res
* @param sign_res
- * @param _channel
+ * @param channel
* @return GpgError
*/
- static GpgError EncryptSignFile(KeyListPtr keys, KeyListPtr signer_keys,
- const std::string& in_path,
- const std::string& out_path,
- GpgEncrResult& encr_res,
- GpgSignResult& sign_res,
- int _channel = GPGFRONTEND_DEFAULT_CHANNEL);
+ static auto EncryptSignFile(KeyListPtr keys, KeyListPtr signer_keys,
+ const std::string& in_path,
+ const std::string& out_path,
+ GpgEncrResult& encr_res, GpgSignResult& sign_res,
+ int channel = GPGFRONTEND_DEFAULT_CHANNEL)
+ -> GpgError;
/**
* @brief
@@ -141,10 +137,10 @@ class GPGFRONTEND_CORE_EXPORT GpgFileOpera
* @param verify_res
* @return GpgError
*/
- static GpgError DecryptVerifyFile(const std::string& in_path,
- const std::string& out_path,
- GpgDecrResult& decr_res,
- GpgVerifyResult& verify_res);
+ static auto DecryptVerifyFile(const std::string& in_path,
+ const std::string& out_path,
+ GpgDecrResult& decr_res,
+ GpgVerifyResult& verify_res) -> GpgError;
};
} // namespace GpgFrontend
diff --git a/src/core/function/gpg/GpgKeyGetter.cpp b/src/core/function/gpg/GpgKeyGetter.cpp
index 6401e750..09c77c28 100644
--- a/src/core/function/gpg/GpgKeyGetter.cpp
+++ b/src/core/function/gpg/GpgKeyGetter.cpp
@@ -32,136 +32,199 @@
#include <mutex>
#include <shared_mutex>
-#include <utility>
-#include "GpgConstants.h"
-#include "model/GpgKey.h"
+#include "core/GpgConstants.h"
+#include "core/GpgContext.h"
-GpgFrontend::GpgKeyGetter::GpgKeyGetter(int channel)
- : SingletonFunctionObject<GpgKeyGetter>(channel) {
- SPDLOG_DEBUG("called channel: {}", channel);
-}
+namespace GpgFrontend {
-GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::GetKey(const std::string& fpr,
- bool use_cache) {
- // find in cache first
- if (use_cache) {
- auto key = get_key_in_cache(fpr);
- if (key.IsGood()) return key;
+class GpgKeyGetter::Impl : public SingletonFunctionObject<GpgKeyGetter::Impl> {
+ public:
+ explicit Impl(int channel)
+ : SingletonFunctionObject<GpgKeyGetter::Impl>(channel) {
+ SPDLOG_DEBUG("called channel: {}", channel);
}
- gpgme_key_t _p_key = nullptr;
- gpgme_get_key(ctx_, fpr.c_str(), &_p_key, 1);
- if (_p_key == nullptr) {
- SPDLOG_WARN("GpgKeyGetter GetKey Private _p_key Null fpr", fpr);
- return GetPubkey(fpr);
- } else {
- return GpgKey(std::move(_p_key));
- }
-}
+ auto GetKey(const std::string& fpr, bool use_cache) -> GpgKey {
+ // find in cache first
+ if (use_cache) {
+ auto key = get_key_in_cache(fpr);
+ if (key.IsGood()) return key;
+ }
-GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::GetPubkey(const std::string& fpr,
- bool use_cache) {
- // find in cache first
- if (use_cache) {
- auto key = get_key_in_cache(fpr);
- if (key.IsGood()) return key;
+ gpgme_key_t p_key = nullptr;
+ gpgme_get_key(ctx_, fpr.c_str(), &p_key, 1);
+ if (p_key == nullptr) {
+ SPDLOG_WARN("GpgKeyGetter GetKey Private _p_key Null fpr", fpr);
+ return GetPubkey(fpr, true);
+ }
+ return GpgKey(std::move(p_key));
}
- gpgme_key_t _p_key = nullptr;
- gpgme_get_key(ctx_, fpr.c_str(), &_p_key, 0);
- if (_p_key == nullptr) SPDLOG_WARN("GpgKeyGetter GetKey _p_key Null", fpr);
- return GpgKey(std::move(_p_key));
-}
+ auto GetPubkey(const std::string& fpr, bool use_cache) -> GpgKey {
+ // find in cache first
+ if (use_cache) {
+ auto key = get_key_in_cache(fpr);
+ if (key.IsGood()) return key;
+ }
-GpgFrontend::KeyLinkListPtr GpgFrontend::GpgKeyGetter::FetchKey() {
- // get the lock
- std::lock_guard<std::mutex> lock(keys_cache_mutex_);
+ gpgme_key_t p_key = nullptr;
+ gpgme_get_key(ctx_, fpr.c_str(), &p_key, 0);
+ if (p_key == nullptr) SPDLOG_WARN("GpgKeyGetter GetKey _p_key Null", fpr);
+ return GpgKey(std::move(p_key));
+ }
+
+ auto FetchKey() -> KeyLinkListPtr {
+ // get the lock
+ std::lock_guard<std::mutex> lock(keys_cache_mutex_);
- auto keys_list = std::make_unique<GpgKeyLinkList>();
+ auto keys_list = std::make_unique<GpgKeyLinkList>();
- for (const auto& [key, value] : keys_cache_) {
- keys_list->push_back(value.Copy());
+ for (const auto& [key, value] : keys_cache_) {
+ keys_list->push_back(value.Copy());
+ }
+ return keys_list;
}
- return keys_list;
-}
-void GpgFrontend::GpgKeyGetter::FlushKeyCache() {
- SPDLOG_DEBUG("called channel id: {}", GetChannel());
+ void FlushKeyCache() {
+ SPDLOG_DEBUG("called channel id: {}", GetChannel());
- // clear the keys cache
- keys_cache_.clear();
+ // clear the keys cache
+ keys_cache_.clear();
- // init
- GpgError err = gpgme_op_keylist_start(ctx_, nullptr, 0);
+ // init
+ GpgError err = gpgme_op_keylist_start(ctx_, nullptr, 0);
- // for debug
- assert(check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR);
+ // for debug
+ assert(check_gpg_error_2_err_code(err) == GPG_ERR_NO_ERROR);
- // return when error
- if (check_gpg_error_2_err_code(err) != GPG_ERR_NO_ERROR) return;
+ // return when error
+ if (check_gpg_error_2_err_code(err) != GPG_ERR_NO_ERROR) return;
- {
- // get the lock
- std::lock_guard<std::mutex> lock(keys_cache_mutex_);
- gpgme_key_t key;
- while ((err = gpgme_op_keylist_next(ctx_, &key)) == GPG_ERR_NO_ERROR) {
- auto gpg_key = GpgKey(std::move(key));
-
- // detect if the key is in a smartcard
- // if so, try to get full information using gpgme_get_key()
- // this maybe a bug in gpgme
- if (gpg_key.IsHasCardKey()) {
- gpg_key = GetKey(gpg_key.GetId(), false);
- }
+ {
+ // get the lock
+ std::lock_guard<std::mutex> lock(keys_cache_mutex_);
+ gpgme_key_t key;
+ while ((err = gpgme_op_keylist_next(ctx_, &key)) == GPG_ERR_NO_ERROR) {
+ auto gpg_key = GpgKey(std::move(key));
- keys_cache_.insert({gpg_key.GetId(), std::move(gpg_key)});
+ // detect if the key is in a smartcard
+ // if so, try to get full information using gpgme_get_key()
+ // this maybe a bug in gpgme
+ if (gpg_key.IsHasCardKey()) {
+ gpg_key = GetKey(gpg_key.GetId(), false);
+ }
+
+ keys_cache_.insert({gpg_key.GetId(), std::move(gpg_key)});
+ }
}
+
+ SPDLOG_DEBUG("cache address: {} object address: {}",
+ static_cast<void*>(&keys_cache_), static_cast<void*>(this));
+
+ // for debug
+ assert(check_gpg_error_2_err_code(err, GPG_ERR_EOF) == GPG_ERR_EOF);
+
+ err = gpgme_op_keylist_end(ctx_);
+ assert(check_gpg_error_2_err_code(err, GPG_ERR_EOF) == GPG_ERR_NO_ERROR);
}
- SPDLOG_DEBUG("cache address: {} object address: {}",
- static_cast<void*>(&keys_cache_), static_cast<void*>(this));
+ auto GetKeys(const KeyIdArgsListPtr& ids) -> KeyListPtr {
+ auto keys = std::make_unique<KeyArgsList>();
+ for (const auto& key_id : *ids) keys->emplace_back(GetKey(key_id, true));
+ return keys;
+ }
+
+ auto GetKeysCopy(const KeyLinkListPtr& keys) -> KeyLinkListPtr {
+ // get the lock
+ std::lock_guard<std::mutex> lock(ctx_mutex_);
+ auto keys_copy = std::make_unique<GpgKeyLinkList>();
+ for (const auto& key : *keys) keys_copy->emplace_back(key.Copy());
+ return keys_copy;
+ }
- // for debug
- assert(check_gpg_error_2_err_code(err, GPG_ERR_EOF) == GPG_ERR_EOF);
+ auto GetKeysCopy(const KeyListPtr& keys) -> KeyListPtr {
+ // get the lock
+ std::lock_guard<std::mutex> lock(ctx_mutex_);
+ auto keys_copy = std::make_unique<KeyArgsList>();
+ for (const auto& key : *keys) keys_copy->emplace_back(key.Copy());
+ return keys_copy;
+ }
+
+ private:
+ /**
+ * @brief Get the gpgme context object
+ *
+ */
+ GpgContext& ctx_ =
+ GpgContext::GetInstance(SingletonFunctionObject::GetChannel());
+
+ /**
+ * @brief shared mutex for the keys cache
+ *
+ */
+ mutable std::mutex ctx_mutex_;
+
+ /**
+ * @brief cache the keys with key id
+ *
+ */
+ std::map<std::string, GpgKey> keys_cache_;
+
+ /**
+ * @brief shared mutex for the keys cache
+ *
+ */
+ mutable std::mutex keys_cache_mutex_;
+
+ /**
+ * @brief Get the Key object
+ *
+ * @param id
+ * @return GpgKey
+ */
+ auto get_key_in_cache(const std::string& key_id) -> GpgKey {
+ std::lock_guard<std::mutex> lock(keys_cache_mutex_);
+ if (keys_cache_.find(key_id) != keys_cache_.end()) {
+ std::lock_guard<std::mutex> lock(ctx_mutex_);
+ // return a copy of the key in cache
+ return keys_cache_[key_id].Copy();
+ }
- err = gpgme_op_keylist_end(ctx_);
- assert(check_gpg_error_2_err_code(err, GPG_ERR_EOF) == GPG_ERR_NO_ERROR);
+ // return a bad key
+ return {};
+ }
+};
+
+GpgKeyGetter::GpgKeyGetter(int channel)
+ : SingletonFunctionObject<GpgKeyGetter>(channel),
+ p_(std::make_unique<Impl>(channel)) {
+ SPDLOG_DEBUG("called channel: {}", channel);
}
-GpgFrontend::KeyListPtr GpgFrontend::GpgKeyGetter::GetKeys(
- const KeyIdArgsListPtr& ids) {
- auto keys = std::make_unique<KeyArgsList>();
- for (const auto& id : *ids) keys->emplace_back(GetKey(id));
- return keys;
+auto GpgKeyGetter::GetKey(const std::string& key_id, bool use_cache) -> GpgKey {
+ return p_->GetKey(key_id, use_cache);
}
-GpgFrontend::KeyLinkListPtr GpgFrontend::GpgKeyGetter::GetKeysCopy(
- const GpgFrontend::KeyLinkListPtr& keys) {
- // get the lock
- std::lock_guard<std::mutex> lock(ctx_mutex_);
- auto keys_copy = std::make_unique<GpgKeyLinkList>();
- for (const auto& key : *keys) keys_copy->emplace_back(key.Copy());
- return keys_copy;
+auto GpgKeyGetter::GetPubkey(const std::string& key_id, bool use_cache)
+ -> GpgKey {
+ return p_->GetPubkey(key_id, use_cache);
}
-GpgFrontend::KeyListPtr GpgFrontend::GpgKeyGetter::GetKeysCopy(
- const GpgFrontend::KeyListPtr& keys) {
- // get the lock
- std::lock_guard<std::mutex> lock(ctx_mutex_);
- auto keys_copy = std::make_unique<KeyArgsList>();
- for (const auto& key : *keys) keys_copy->emplace_back(key.Copy());
- return keys_copy;
+void GpgKeyGetter::FlushKeyCache() { p_->FlushKeyCache(); }
+
+auto GpgKeyGetter::GetKeys(const KeyIdArgsListPtr& ids) -> KeyListPtr {
+ return p_->GetKeys(ids);
}
-GpgFrontend::GpgKey GpgFrontend::GpgKeyGetter::get_key_in_cache(
- const std::string& id) {
- std::lock_guard<std::mutex> lock(keys_cache_mutex_);
- if (keys_cache_.find(id) != keys_cache_.end()) {
- std::lock_guard<std::mutex> lock(ctx_mutex_);
- // return a copy of the key in cache
- return keys_cache_[id].Copy();
- }
- // return a bad key
- return GpgKey();
+auto GpgKeyGetter::GetKeysCopy(const KeyLinkListPtr& keys) -> KeyLinkListPtr {
+ return p_->GetKeysCopy(keys);
+}
+
+auto GpgKeyGetter::GetKeysCopy(const KeyListPtr& keys) -> KeyListPtr {
+ return p_->GetKeysCopy(keys);
}
+
+auto GpgKeyGetter::FetchKey() -> KeyLinkListPtr { return p_->FetchKey(); }
+
+} // namespace GpgFrontend
diff --git a/src/core/function/gpg/GpgKeyGetter.h b/src/core/function/gpg/GpgKeyGetter.h
index f6f6b214..85424b55 100644
--- a/src/core/function/gpg/GpgKeyGetter.h
+++ b/src/core/function/gpg/GpgKeyGetter.h
@@ -28,10 +28,6 @@
#pragma once
-#include <mutex>
-#include <vector>
-
-#include "core/GpgContext.h"
#include "core/GpgFunctionObject.h"
#include "core/GpgModel.h"
@@ -49,8 +45,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
*
* @param channel
*/
- explicit GpgKeyGetter(
- int channel = SingletonFunctionObject::GetDefaultChannel());
+ explicit GpgKeyGetter(int channel = kGpgFrontendDefaultChannel);
/**
* @brief Get the Key object
@@ -58,7 +53,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param fpr
* @return GpgKey
*/
- GpgKey GetKey(const std::string& id, bool use_cache = true);
+ auto GetKey(const std::string& key_id, bool use_cache = true) -> GpgKey;
/**
* @brief Get the Keys object
@@ -66,7 +61,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param ids
* @return KeyListPtr
*/
- KeyListPtr GetKeys(const KeyIdArgsListPtr& ids);
+ auto GetKeys(const KeyIdArgsListPtr& key_ids) -> KeyListPtr;
/**
* @brief Get the Pubkey object
@@ -74,14 +69,14 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param fpr
* @return GpgKey
*/
- GpgKey GetPubkey(const std::string& id, bool use_cache = true);
+ auto GetPubkey(const std::string& key_id, bool use_cache = true) -> GpgKey;
/**
* @brief Get all the keys by receiving a linked list
*
* @return KeyLinkListPtr
*/
- KeyLinkListPtr FetchKey();
+ auto FetchKey() -> KeyLinkListPtr;
/**
* @brief flush the keys in the cache
@@ -95,7 +90,7 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param keys
* @return KeyListPtr
*/
- KeyListPtr GetKeysCopy(const KeyListPtr& keys);
+ auto GetKeysCopy(const KeyListPtr& keys) -> KeyListPtr;
/**
* @brief Get the Keys Copy object
@@ -103,40 +98,10 @@ class GPGFRONTEND_CORE_EXPORT GpgKeyGetter
* @param keys
* @return KeyLinkListPtr
*/
- KeyLinkListPtr GetKeysCopy(const KeyLinkListPtr& keys);
+ auto GetKeysCopy(const KeyLinkListPtr& keys) -> KeyLinkListPtr;
private:
- /**
- * @brief Get the gpgme context object
- *
- */
- GpgContext& ctx_ =
- GpgContext::GetInstance(SingletonFunctionObject::GetChannel());
-
- /**
- * @brief shared mutex for the keys cache
- *
- */
- mutable std::mutex ctx_mutex_;
-
- /**
- * @brief cache the keys with key id
- *
- */
- std::map<std::string, GpgKey> keys_cache_;
-
- /**
- * @brief shared mutex for the keys cache
- *
- */
- mutable std::mutex keys_cache_mutex_;
-
- /**
- * @brief Get the Key object
- *
- * @param id
- * @return GpgKey
- */
- GpgKey get_key_in_cache(const std::string& id);
+ class Impl;
+ std::unique_ptr<Impl> p_;
};
} // namespace GpgFrontend
diff --git a/src/core/function/gpg/GpgKeyImportExporter.cpp b/src/core/function/gpg/GpgKeyImportExporter.cpp
index cbae7120..0cd14c2d 100644
--- a/src/core/function/gpg/GpgKeyImportExporter.cpp
+++ b/src/core/function/gpg/GpgKeyImportExporter.cpp
@@ -28,8 +28,6 @@
#include "GpgKeyImportExporter.h"
-#include <memory>
-
#include "GpgConstants.h"
#include "GpgKeyGetter.h"
diff --git a/src/core/function/gpg/GpgKeyImportExporter.h b/src/core/function/gpg/GpgKeyImportExporter.h
index 946d13b9..ef9e88f5 100644
--- a/src/core/function/gpg/GpgKeyImportExporter.h
+++ b/src/core/function/gpg/GpgKeyImportExporter.h
@@ -28,8 +28,6 @@
#pragma once
-#include <string>
-
#include "core/GpgConstants.h"
#include "core/GpgContext.h"
#include "core/GpgFunctionObject.h"
diff --git a/src/core/function/gpg/GpgKeyManager.cpp b/src/core/function/gpg/GpgKeyManager.cpp
index 056dd9be..b2fd22da 100644
--- a/src/core/function/gpg/GpgKeyManager.cpp
+++ b/src/core/function/gpg/GpgKeyManager.cpp
@@ -30,8 +30,6 @@
#include <boost/algorithm/string.hpp>
#include <boost/date_time/posix_time/conversion.hpp>
-#include <memory>
-#include <string>
#include "GpgBasicOperator.h"
#include "GpgKeyGetter.h"
diff --git a/src/core/function/gpg/GpgKeyManager.h b/src/core/function/gpg/GpgKeyManager.h
index 9a23050b..10682b1c 100644
--- a/src/core/function/gpg/GpgKeyManager.h
+++ b/src/core/function/gpg/GpgKeyManager.h
@@ -29,7 +29,6 @@
#pragma once
#include <functional>
-#include <string>
#include "core/GpgContext.h"
#include "core/GpgFunctionObject.h"
diff --git a/src/core/function/gpg/GpgKeyOpera.cpp b/src/core/function/gpg/GpgKeyOpera.cpp
index eb7dfe9f..9487eede 100644
--- a/src/core/function/gpg/GpgKeyOpera.cpp
+++ b/src/core/function/gpg/GpgKeyOpera.cpp
@@ -107,7 +107,7 @@ void GpgKeyOpera::GenerateRevokeCert(const GpgKey& key,
const auto app_path = Module::RetrieveRTValueTypedOrDefault<>(
"core", "gpgme.ctx.app_path", std::string{});
// get all components
- GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgCommandExecutor::ExecuteSync(
{app_path,
{"--command-fd", "0", "--status-fd", "1", "--no-tty", "-o",
output_file_path, "--gen-revoke", key.GetFingerprint().c_str()},
diff --git a/src/core/function/result_analyse/GpgResultAnalyse.h b/src/core/function/result_analyse/GpgResultAnalyse.h
index d28cb651..513e4515 100644
--- a/src/core/function/result_analyse/GpgResultAnalyse.h
+++ b/src/core/function/result_analyse/GpgResultAnalyse.h
@@ -28,7 +28,6 @@
#pragma once
#include <sstream>
-#include <string>
#include "core/GpgConstants.h"
namespace GpgFrontend {
diff --git a/src/core/thread/DataObject.cpp b/src/core/model/DataObject.cpp
index 55a5f452..a1eca4af 100644
--- a/src/core/thread/DataObject.cpp
+++ b/src/core/model/DataObject.cpp
@@ -28,12 +28,9 @@
#include "DataObject.h"
-#include <memory>
#include <stack>
-#include "function/DataObjectOperator.h"
-
-namespace GpgFrontend::Thread {
+namespace GpgFrontend {
class DataObject::Impl {
public:
@@ -63,7 +60,7 @@ DataObject::DataObject(std::initializer_list<std::any> i)
DataObject::~DataObject() = default;
-DataObject::DataObject(GpgFrontend::Thread::DataObject&&) noexcept = default;
+DataObject::DataObject(DataObject&&) noexcept = default;
std::any DataObject::operator[](size_t index) const {
return p_->GetParameter(index);
@@ -83,4 +80,4 @@ void DataObject::Swap(DataObject&& other) noexcept { p_ = std::move(other.p_); }
void swap(DataObject& a, DataObject& b) noexcept { a.Swap(b); }
-} // namespace GpgFrontend::Thread \ No newline at end of file
+} // namespace GpgFrontend \ No newline at end of file
diff --git a/src/core/thread/DataObject.h b/src/core/model/DataObject.h
index 3676ec7a..4fb073ba 100644
--- a/src/core/thread/DataObject.h
+++ b/src/core/model/DataObject.h
@@ -32,7 +32,7 @@
#include "core/GpgFrontendCoreExport.h"
-namespace GpgFrontend::Thread {
+namespace GpgFrontend {
class DataObject;
using DataObjectPtr = std::shared_ptr<DataObject>; ///<
@@ -45,7 +45,7 @@ class GPGFRONTEND_CORE_EXPORT DataObject {
~DataObject();
- DataObject(GpgFrontend::Thread::DataObject&&) noexcept;
+ DataObject(DataObject&&) noexcept;
std::any operator[](size_t index) const;
@@ -90,4 +90,4 @@ T ExtractParams(const std::shared_ptr<DataObject>& d_o, int index) {
void swap(DataObject& a, DataObject& b) noexcept;
-} // namespace GpgFrontend::Thread \ No newline at end of file
+} // namespace GpgFrontend \ No newline at end of file
diff --git a/src/core/model/GpgKeySignature.h b/src/core/model/GpgKeySignature.h
index 4324d6c6..395a9dcb 100644
--- a/src/core/model/GpgKeySignature.h
+++ b/src/core/model/GpgKeySignature.h
@@ -29,7 +29,6 @@
#pragma once
#include <boost/date_time.hpp>
-#include <string>
#include "core/GpgConstants.h"
diff --git a/src/core/model/GpgSubKey.h b/src/core/model/GpgSubKey.h
index 6d7ead84..589b428a 100644
--- a/src/core/model/GpgSubKey.h
+++ b/src/core/model/GpgSubKey.h
@@ -29,7 +29,6 @@
#pragma once
#include <boost/date_time.hpp>
-#include <string>
#include "core/GpgConstants.h"
diff --git a/src/core/module/Event.cpp b/src/core/module/Event.cpp
index 3e27e26d..2fcccbc4 100644
--- a/src/core/module/Event.cpp
+++ b/src/core/module/Event.cpp
@@ -28,70 +28,75 @@
#include "Event.h"
-#include <memory>
+#include <utility>
namespace GpgFrontend::Module {
class Event::Impl {
public:
- Impl(const std::string& event_dientifier,
- std::initializer_list<ParameterInitializer> params_init_list = {})
- : event_identifier_(event_dientifier) {
- for (const auto& param : params_init_list) {
+ Impl(std::string event_id, std::initializer_list<ParameterInitializer> params,
+ EventCallback callback)
+ : event_identifier_(std::move(event_id)), callback_(std::move(callback)) {
+ for (const auto& param : params) {
AddParameter(param);
}
}
- std::optional<ParameterValue> operator[](const std::string& key) const {
- auto it = data_.find(key);
- if (it != data_.end()) {
- return it->second;
+ auto operator[](const std::string& key) const
+ -> std::optional<ParameterValue> {
+ auto it_data = data_.find(key);
+ if (it_data != data_.end()) {
+ return it_data->second;
}
return std::nullopt;
}
- bool operator==(const Event& other) const {
+ auto operator==(const Event& other) const -> bool {
return event_identifier_ == other.p_->event_identifier_;
}
- bool operator!=(const Event& other) const { return !(*this == other); }
+ auto operator!=(const Event& other) const -> bool {
+ return !(*this == other);
+ }
- bool operator<(const Event& other) const {
+ auto operator<(const Event& other) const -> bool {
return this->event_identifier_ < other.p_->event_identifier_;
}
- operator std::string() const { return event_identifier_; }
+ explicit operator std::string() const { return event_identifier_; }
- EventIdentifier GetIdentifier() { return event_identifier_; }
+ auto GetIdentifier() -> EventIdentifier { return event_identifier_; }
void AddParameter(const std::string& key, const ParameterValue& value) {
data_[key] = value;
}
- void AddParameter(ParameterInitializer param) {
+ void AddParameter(const ParameterInitializer& param) {
AddParameter(param.key, param.value);
}
private:
EventIdentifier event_identifier_;
std::map<std::string, ParameterValue> data_;
+ EventCallback callback_;
};
-Event::Event(const std::string& event_dientifier,
- std::initializer_list<ParameterInitializer> params_init_list)
- : p_(std::make_unique<Impl>(event_dientifier, params_init_list)) {}
+Event::Event(const std::string& event_id,
+ std::initializer_list<ParameterInitializer> params,
+ EventCallback callback)
+ : p_(std::make_unique<Impl>(event_id, params, std::move(callback))) {}
Event::~Event() = default;
-bool Event::Event::operator==(const Event& other) const {
+auto Event::Event::operator==(const Event& other) const -> bool {
return this->p_ == other.p_;
}
-bool Event::Event::operator!=(const Event& other) const {
+auto Event::Event::operator!=(const Event& other) const -> bool {
return this->p_ != other.p_;
}
-bool Event::Event::operator<(const Event& other) const {
+auto Event::Event::operator<(const Event& other) const -> bool {
return this->p_ < other.p_;
}
@@ -99,7 +104,9 @@ Event::Event::operator std::string() const {
return static_cast<std::string>(*p_);
}
-EventIdentifier Event::Event::GetIdentifier() { return p_->GetIdentifier(); }
+auto Event::Event::GetIdentifier() -> EventIdentifier {
+ return p_->GetIdentifier();
+}
void Event::AddParameter(const std::string& key, const ParameterValue& value) {
p_->AddParameter(key, value);
diff --git a/src/core/module/Event.h b/src/core/module/Event.h
index 4adfc959..c0e62c25 100644
--- a/src/core/module/Event.h
+++ b/src/core/module/Event.h
@@ -29,9 +29,11 @@
#pragma once
#include <any>
+#include <functional>
#include <optional>
#include "core/GpgFrontendCore.h"
+#include "core/model/DataObject.h"
namespace GpgFrontend::Module {
@@ -45,29 +47,34 @@ class GPGFRONTEND_CORE_EXPORT Event {
public:
using ParameterValue = std::any;
using EventIdentifier = std::string;
+ using ListenerIdentifier = std::string;
+ using EventCallback =
+ std::function<void(EventIdentifier, ListenerIdentifier, DataObject)>;
struct ParameterInitializer {
std::string key;
ParameterValue value;
};
- Event(const std::string& event_dientifier,
- std::initializer_list<ParameterInitializer> params_init_list = {});
+ explicit Event(const std::string&,
+ std::initializer_list<ParameterInitializer> = {},
+ EventCallback = nullptr);
~Event();
- std::optional<ParameterValue> operator[](const std::string& key) const;
+ auto operator[](const std::string& key) const
+ -> std::optional<ParameterValue>;
- bool operator==(const Event& other) const;
+ auto operator==(const Event& other) const -> bool;
- bool operator!=(const Event& other) const;
+ auto operator!=(const Event& other) const -> bool;
- bool operator<(const Event& other) const;
+ auto operator<(const Event& other) const -> bool;
- bool operator<=(const Event& other) const;
+ auto operator<=(const Event& other) const -> bool;
- operator std::string() const;
+ explicit operator std::string() const;
- EventIdentifier GetIdentifier();
+ auto GetIdentifier() -> EventIdentifier;
void AddParameter(const std::string& key, const ParameterValue& value);
@@ -77,7 +84,8 @@ class GPGFRONTEND_CORE_EXPORT Event {
};
template <typename... Args>
-EventRefrernce MakeEvent(const EventIdentifier& event_id, Args&&... args) {
+auto MakeEvent(const EventIdentifier& event_id, Args&&... args)
+ -> EventRefrernce {
std::initializer_list<Event::ParameterInitializer> params = {
Event::ParameterInitializer{std::forward<Args>(args)}...};
return std::make_shared<Event>(event_id, params);
diff --git a/src/core/module/GlobalModuleContext.cpp b/src/core/module/GlobalModuleContext.cpp
index edd35000..caf04aff 100644
--- a/src/core/module/GlobalModuleContext.cpp
+++ b/src/core/module/GlobalModuleContext.cpp
@@ -34,28 +34,29 @@
#include <set>
#include <unordered_map>
#include <unordered_set>
+#include <utility>
#include "core/module/Event.h"
#include "core/module/Module.h"
#include "core/thread/Task.h"
-#include "thread/DataObject.h"
+#include "model/DataObject.h"
namespace GpgFrontend::Module {
class GlobalModuleContext::Impl {
public:
- Impl(TaskRunnerPtr task_runner)
+ explicit Impl(TaskRunnerPtr task_runner)
: random_gen_(
(boost::posix_time::microsec_clock::universal_time() -
boost::posix_time::ptime(boost::gregorian::date(1970, 1, 1)))
.total_milliseconds()),
- default_task_runner_(task_runner) {
+ default_task_runner_(std::move(task_runner)) {
// Initialize acquired channels with default values.
acquired_channel_.insert(GPGFRONTEND_DEFAULT_CHANNEL);
acquired_channel_.insert(GPGFRONTEND_NON_ASCII_CHANNEL);
}
- int GetChannel(ModuleRawPtr module) {
+ auto GetChannel(ModuleRawPtr module) -> int {
// Search for the module in the register table.
auto module_info_opt =
search_module_register_table(module->GetModuleIdentifier());
@@ -72,9 +73,11 @@ class GlobalModuleContext::Impl {
return module_info->channel;
}
- int GetDefaultChannel(ModuleRawPtr) { return GPGFRONTEND_DEFAULT_CHANNEL; }
+ static auto GetDefaultChannel(ModuleRawPtr) -> int {
+ return GPGFRONTEND_DEFAULT_CHANNEL;
+ }
- std::optional<TaskRunnerPtr> GetTaskRunner(ModuleRawPtr module) {
+ auto GetTaskRunner(ModuleRawPtr module) -> std::optional<TaskRunnerPtr> {
auto opt = search_module_register_table(module->GetModuleIdentifier());
if (!opt.has_value()) {
return std::nullopt;
@@ -82,7 +85,8 @@ class GlobalModuleContext::Impl {
return opt.value()->task_runner;
}
- std::optional<TaskRunnerPtr> GetTaskRunner(ModuleIdentifier module_id) {
+ auto GetTaskRunner(ModuleIdentifier module_id)
+ -> std::optional<TaskRunnerPtr> {
// Search for the module in the register table.
auto module_info_opt = search_module_register_table(module_id);
if (!module_info_opt.has_value()) {
@@ -92,11 +96,11 @@ class GlobalModuleContext::Impl {
return module_info_opt.value()->task_runner;
}
- std::optional<TaskRunnerPtr> GetGlobalTaskRunner() {
+ auto GetGlobalTaskRunner() -> std::optional<TaskRunnerPtr> {
return default_task_runner_;
}
- bool RegisterModule(ModulePtr module) {
+ auto RegisterModule(const ModulePtr& module) -> bool {
SPDLOG_DEBUG("attempting to register module: {}",
module->GetModuleIdentifier());
// Check if the module is null or already registered.
@@ -131,7 +135,7 @@ class GlobalModuleContext::Impl {
return true;
}
- bool ActiveModule(ModuleIdentifier module_id) {
+ auto ActiveModule(ModuleIdentifier module_id) -> bool {
SPDLOG_DEBUG("attempting to activate module: {}", module_id);
// Search for the module in the register table.
@@ -151,28 +155,27 @@ class GlobalModuleContext::Impl {
return module_info->activate;
}
- bool ListenEvent(ModuleIdentifier module_id, EventIdentifier event) {
+ auto ListenEvent(ModuleIdentifier module_id, EventIdentifier event) -> bool {
SPDLOG_DEBUG("module: {} is attempting to listen to event {}", module_id,
event);
// Check if the event exists, if not, create it.
- auto it = module_events_table_.find(event);
- if (it == module_events_table_.end()) {
+ auto met_it = module_events_table_.find(event);
+ if (met_it == module_events_table_.end()) {
module_events_table_[event] = std::unordered_set<ModuleIdentifier>();
- it = module_events_table_.find(event);
+ met_it = module_events_table_.find(event);
SPDLOG_INFO("new event {} of module system created", event);
}
- auto& listeners_set = it->second;
+ auto& listeners_set = met_it->second;
// Add the listener (module) to the event.
- auto listener_it =
- std::find(listeners_set.begin(), listeners_set.end(), module_id);
+ auto listener_it = listeners_set.find(module_id);
if (listener_it == listeners_set.end()) {
listeners_set.insert(module_id);
}
return true;
}
- bool DeactivateModule(ModuleIdentifier module_id) {
+ auto DeactivateModule(ModuleIdentifier module_id) -> bool {
// Search for the module in the register table.
auto module_info_opt = search_module_register_table(module_id);
if (!module_info_opt.has_value()) {
@@ -189,13 +192,13 @@ class GlobalModuleContext::Impl {
return !module_info->activate;
}
- bool TriggerEvent(EventRefrernce event) {
+ auto TriggerEvent(const EventRefrernce& event) -> bool {
auto event_id = event->GetIdentifier();
SPDLOG_DEBUG("attempting to trigger event: {}", event_id);
// Find the set of listeners associated with the given event in the table
- auto it = module_events_table_.find(event_id);
- if (it == module_events_table_.end()) {
+ auto met_it = module_events_table_.find(event_id);
+ if (met_it == module_events_table_.end()) {
// Log a warning if the event is not registered and nobody is listening
SPDLOG_WARN(
"event {} is not listening by anyone and not registered as well",
@@ -204,7 +207,7 @@ class GlobalModuleContext::Impl {
}
// Retrieve the set of listeners for this event
- auto& listeners_set = it->second;
+ auto& listeners_set = met_it->second;
// Check if the set of listeners is empty
if (listeners_set.empty()) {
@@ -219,7 +222,7 @@ class GlobalModuleContext::Impl {
event->GetIdentifier(), listeners_set.size());
// Iterate through each listener and execute the corresponding module
- for (auto& listener_module_id : listeners_set) {
+ for (const auto& listener_module_id : listeners_set) {
// Search for the module's information in the registration table
auto module_info_opt = search_module_register_table(listener_module_id);
@@ -227,6 +230,7 @@ class GlobalModuleContext::Impl {
if (!module_info_opt.has_value()) {
SPDLOG_ERROR("cannot find module id {} at register table",
listener_module_id);
+ continue;
}
// Retrieve the module's information
@@ -243,20 +247,18 @@ class GlobalModuleContext::Impl {
if (!module_info->activate) continue;
Thread::Task::TaskRunnable exec_runnerable =
- [module, event](Thread::DataObjectPtr) -> int {
- return module->Exec(event);
+ [module, event](DataObjectPtr) -> int { return module->Exec(event); };
+
+ Thread::Task::TaskCallback exec_callback = [listener_module_id, event_id](
+ int code, DataObjectPtr) {
+ if (code < 0) {
+ // Log an error if the module execution fails
+ SPDLOG_ERROR(
+ "module {} execution failed of event {}: exec return code {}",
+ listener_module_id, event_id, code);
+ }
};
- Thread::Task::TaskCallback exec_callback =
- [listener_module_id, event_id](int code, Thread::DataObjectPtr) {
- if (code < 0) {
- // Log an error if the module execution fails
- SPDLOG_ERROR(
- "module {} execution failed of event {}: exec return code {}",
- listener_module_id, event_id, code);
- }
- };
-
module_info->task_runner->PostTask(
new Thread::Task(exec_runnerable,
(boost::format("event/%1%/module/exec/%2%") %
@@ -269,8 +271,8 @@ class GlobalModuleContext::Impl {
return true;
}
- bool IsModuleExists(ModuleIdentifier id) const {
- return search_module_register_table(id).has_value();
+ auto IsModuleExists(const ModuleIdentifier& m_id) const -> bool {
+ return search_module_register_table(m_id).has_value();
}
private:
@@ -292,7 +294,7 @@ class GlobalModuleContext::Impl {
boost::random::mt19937 random_gen_;
TaskRunnerPtr default_task_runner_;
- int acquire_new_unique_channel() {
+ auto acquire_new_unique_channel() -> int {
boost::random::uniform_int_distribution<> dist(1, 65535);
int random_channel = dist(random_gen_);
@@ -307,70 +309,71 @@ class GlobalModuleContext::Impl {
}
// Function to search for a module in the register table.
- std::optional<ModuleRegisterInfoPtr> search_module_register_table(
- ModuleIdentifier identifier) const {
- auto it = module_register_table_.find(identifier);
- if (it == module_register_table_.end()) {
+ auto search_module_register_table(const ModuleIdentifier& identifier) const
+ -> std::optional<ModuleRegisterInfoPtr> {
+ auto mrt_it = module_register_table_.find(identifier);
+ if (mrt_it == module_register_table_.end()) {
return std::nullopt;
}
- return it->second;
+ return mrt_it->second;
}
};
// Constructor for GlobalModuleContext, takes a TaskRunnerPtr as an argument.
GlobalModuleContext::GlobalModuleContext(TaskRunnerPtr task_runner)
- : p_(std::make_unique<Impl>(task_runner)) {}
+ : p_(std::make_unique<Impl>(std::move(task_runner))) {}
GlobalModuleContext::~GlobalModuleContext() = default;
// Function to get the task runner associated with a module.
-std::optional<TaskRunnerPtr> GlobalModuleContext::GetTaskRunner(
- ModuleRawPtr module) {
+auto GlobalModuleContext::GetTaskRunner(ModuleRawPtr module)
+ -> std::optional<TaskRunnerPtr> {
return p_->GetTaskRunner(module);
}
// Function to get the task runner associated with a module.
-std::optional<TaskRunnerPtr> GlobalModuleContext::GetTaskRunner(
- ModuleIdentifier module_id) {
- return p_->GetTaskRunner(module_id);
+auto GlobalModuleContext::GetTaskRunner(ModuleIdentifier module_id)
+ -> std::optional<TaskRunnerPtr> {
+ return p_->GetTaskRunner(std::move(module_id));
}
// Function to get the global task runner.
-std::optional<TaskRunnerPtr> GlobalModuleContext::GetGlobalTaskRunner() {
+auto GlobalModuleContext::GetGlobalTaskRunner()
+ -> std::optional<TaskRunnerPtr> {
return p_->GetGlobalTaskRunner();
}
-bool GlobalModuleContext::RegisterModule(ModulePtr module) {
- return p_->RegisterModule(module);
+auto GlobalModuleContext::RegisterModule(ModulePtr module) -> bool {
+ return p_->RegisterModule(std::move(module));
}
-bool GlobalModuleContext::ActiveModule(ModuleIdentifier module_id) {
- return p_->ActiveModule(module_id);
+auto GlobalModuleContext::ActiveModule(ModuleIdentifier module_id) -> bool {
+ return p_->ActiveModule(std::move(module_id));
}
-bool GlobalModuleContext::ListenEvent(ModuleIdentifier module_id,
- EventIdentifier event) {
- return p_->ListenEvent(module_id, event);
+auto GlobalModuleContext::ListenEvent(ModuleIdentifier module_id,
+ EventIdentifier event) -> bool {
+ return p_->ListenEvent(std::move(module_id), std::move(event));
}
-bool GlobalModuleContext::DeactivateModule(ModuleIdentifier module_id) {
- return p_->DeactivateModule(module_id);
+auto GlobalModuleContext::DeactivateModule(ModuleIdentifier module_id) -> bool {
+ return p_->DeactivateModule(std::move(module_id));
}
-bool GlobalModuleContext::TriggerEvent(EventRefrernce event) {
- return p_->TriggerEvent(event);
+auto GlobalModuleContext::TriggerEvent(EventRefrernce event) -> bool {
+ return p_->TriggerEvent(std::move(event));
}
-int GlobalModuleContext::GetChannel(ModuleRawPtr module) {
+auto GlobalModuleContext::GetChannel(ModuleRawPtr module) -> int {
return p_->GetChannel(module);
}
-int GlobalModuleContext::GetDefaultChannel(ModuleRawPtr _) {
- return p_->GetDefaultChannel(_);
+auto GlobalModuleContext::GetDefaultChannel(ModuleRawPtr channel) -> int {
+ return GlobalModuleContext::Impl::GetDefaultChannel(channel);
}
-bool GlobalModuleContext::IsModuleExists(ModuleIdentifier id) {
- return p_->IsModuleExists(id);
+auto GlobalModuleContext::IsModuleExists(ModuleIdentifier m_id) -> bool {
+ return p_->IsModuleExists(std::move(m_id));
}
} // namespace GpgFrontend::Module
diff --git a/src/core/module/GlobalModuleContext.h b/src/core/module/GlobalModuleContext.h
index 8ef1f644..ea9465e1 100644
--- a/src/core/module/GlobalModuleContext.h
+++ b/src/core/module/GlobalModuleContext.h
@@ -53,31 +53,31 @@ using TaskRunnerPtr = std::shared_ptr<Thread::TaskRunner>;
class GPGFRONTEND_CORE_EXPORT GlobalModuleContext : public QObject {
Q_OBJECT
public:
- GlobalModuleContext(TaskRunnerPtr);
+ explicit GlobalModuleContext(TaskRunnerPtr);
- ~GlobalModuleContext();
+ ~GlobalModuleContext() override;
- int GetChannel(ModuleRawPtr);
+ auto GetChannel(ModuleRawPtr) -> int;
- int GetDefaultChannel(ModuleRawPtr);
+ static auto GetDefaultChannel(ModuleRawPtr) -> int;
- std::optional<TaskRunnerPtr> GetTaskRunner(ModuleRawPtr);
+ auto GetTaskRunner(ModuleRawPtr) -> std::optional<TaskRunnerPtr>;
- std::optional<TaskRunnerPtr> GetTaskRunner(ModuleIdentifier);
+ auto GetTaskRunner(ModuleIdentifier) -> std::optional<TaskRunnerPtr>;
- std::optional<TaskRunnerPtr> GetGlobalTaskRunner();
+ auto GetGlobalTaskRunner() -> std::optional<TaskRunnerPtr>;
- bool RegisterModule(ModulePtr);
+ auto RegisterModule(ModulePtr) -> bool;
- bool ActiveModule(ModuleIdentifier);
+ auto ActiveModule(ModuleIdentifier) -> bool;
- bool DeactivateModule(ModuleIdentifier);
+ auto DeactivateModule(ModuleIdentifier) -> bool;
- bool ListenEvent(ModuleIdentifier, EventIdentifier);
+ auto ListenEvent(ModuleIdentifier, EventIdentifier) -> bool;
- bool TriggerEvent(EventRefrernce);
+ auto TriggerEvent(EventRefrernce) -> bool;
- bool IsModuleExists(ModuleIdentifier);
+ auto IsModuleExists(ModuleIdentifier) -> bool;
private:
class Impl;
diff --git a/src/core/module/GlobalRegisterTable.cpp b/src/core/module/GlobalRegisterTable.cpp
index 8d28dc34..a04eb1e9 100644
--- a/src/core/module/GlobalRegisterTable.cpp
+++ b/src/core/module/GlobalRegisterTable.cpp
@@ -29,13 +29,10 @@
#include "GlobalRegisterTable.h"
#include <any>
-#include <memory>
#include <optional>
#include <shared_mutex>
#include <unordered_map>
-#include "spdlog/spdlog.h"
-
namespace GpgFrontend::Module {
class GlobalRegisterTable::Impl {
@@ -44,7 +41,7 @@ class GlobalRegisterTable::Impl {
std::optional<std::any> value = std::nullopt;
std::unordered_map<std::string, std::unique_ptr<RTNode>> children;
int version = 0;
- const std::type_info* type = nullptr; // 保存类型信息
+ const std::type_info* type = nullptr;
};
Impl(GlobalRegisterTable* parent)
@@ -103,7 +100,7 @@ class GlobalRegisterTable::Impl {
return rtn;
}
- bool ListenPublish(QObject* o, Namespace n, Key k, LPCallback c, bool c_o) {
+ bool ListenPublish(QObject* o, Namespace n, Key k, LPCallback c) {
if (o == nullptr) return false;
return QObject::connect(
parent_, &GlobalRegisterTable::SignalPublish, o,
@@ -135,8 +132,8 @@ std::optional<std::any> GlobalRegisterTable::LookupKV(Namespace n, Key v) {
}
bool GlobalRegisterTable::ListenPublish(QObject* o, Namespace n, Key k,
- LPCallback c, bool c_o) {
- return p_->ListenPublish(o, n, k, c, c_o);
+ LPCallback c) {
+ return p_->ListenPublish(o, n, k, c);
}
} // namespace GpgFrontend::Module \ No newline at end of file
diff --git a/src/core/module/GlobalRegisterTable.h b/src/core/module/GlobalRegisterTable.h
index 164f74b4..d05f74b4 100644
--- a/src/core/module/GlobalRegisterTable.h
+++ b/src/core/module/GlobalRegisterTable.h
@@ -49,7 +49,7 @@ class GlobalRegisterTable : public QObject {
std::optional<std::any> LookupKV(Namespace, Key);
- bool ListenPublish(QObject *, Namespace, Key, LPCallback, bool);
+ bool ListenPublish(QObject *, Namespace, Key, LPCallback);
signals:
void SignalPublish(Namespace, Key, int, std::any);
diff --git a/src/core/module/Module.cpp b/src/core/module/Module.cpp
index 12de004a..d66773ff 100644
--- a/src/core/module/Module.cpp
+++ b/src/core/module/Module.cpp
@@ -29,7 +29,6 @@
#include "Module.h"
#include <boost/format.hpp>
-#include <string>
#include "core/module/GlobalModuleContext.h"
diff --git a/src/core/module/ModuleManager.cpp b/src/core/module/ModuleManager.cpp
index ba24ec7a..4dcc9595 100644
--- a/src/core/module/ModuleManager.cpp
+++ b/src/core/module/ModuleManager.cpp
@@ -51,7 +51,7 @@ class ModuleManager::Impl {
void RegisterModule(ModulePtr module) {
task_runner_->PostTask(new Thread::Task(
- [=](GpgFrontend::Thread::DataObjectPtr) -> int {
+ [=](GpgFrontend::DataObjectPtr) -> int {
module->SetGPC(gmc_);
gmc_->RegisterModule(module);
return 0;
@@ -61,7 +61,7 @@ class ModuleManager::Impl {
void TriggerEvent(EventRefrernce event) {
task_runner_->PostTask(new Thread::Task(
- [=](GpgFrontend::Thread::DataObjectPtr) -> int {
+ [=](GpgFrontend::DataObjectPtr) -> int {
gmc_->TriggerEvent(event);
return 0;
},
@@ -70,7 +70,7 @@ class ModuleManager::Impl {
void ActiveModule(ModuleIdentifier identifier) {
task_runner_->PostTask(new Thread::Task(
- [=](GpgFrontend::Thread::DataObjectPtr) -> int {
+ [=](GpgFrontend::DataObjectPtr) -> int {
gmc_->ActiveModule(identifier);
return 0;
},
@@ -89,8 +89,8 @@ class ModuleManager::Impl {
return grt_->LookupKV(n, k);
}
- bool ListenPublish(QObject* o, Namespace n, Key k, LPCallback c, bool c_o) {
- return grt_->ListenPublish(o, n, k, c, c_o);
+ bool ListenPublish(QObject* o, Namespace n, Key k, LPCallback c) {
+ return grt_->ListenPublish(o, n, k, c);
}
private:
@@ -107,9 +107,8 @@ bool UpsertRTValue(const std::string& namespace_, const std::string& key,
}
bool GPGFRONTEND_CORE_EXPORT ListenRTPublishEvent(QObject* o, Namespace n,
- Key k, LPCallback c,
- bool c_o) {
- return ModuleManager::GetInstance()->ListenRTPublish(o, n, k, c, c_o);
+ Key k, LPCallback c) {
+ return ModuleManager::GetInstance()->ListenRTPublish(o, n, k, c);
}
ModuleManager::ModuleManager() : p_(std::make_unique<Impl>()) {}
@@ -147,8 +146,8 @@ std::optional<std::any> ModuleManager::RetrieveRTValue(Namespace n, Key k) {
}
bool ModuleManager::ListenRTPublish(QObject* o, Namespace n, Key k,
- LPCallback c, bool c_o) {
- return p_->ListenPublish(o, n, k, c, c_o);
+ LPCallback c) {
+ return p_->ListenPublish(o, n, k, c);
}
ModuleIdentifier GetRealModuleIdentifier(const ModuleIdentifier& id) {
diff --git a/src/core/module/ModuleManager.h b/src/core/module/ModuleManager.h
index 1ce2d8b5..4488838c 100644
--- a/src/core/module/ModuleManager.h
+++ b/src/core/module/ModuleManager.h
@@ -76,7 +76,7 @@ class GPGFRONTEND_CORE_EXPORT ModuleManager : public QObject {
std::optional<std::any> RetrieveRTValue(Namespace, Key);
- bool ListenRTPublish(QObject*, Namespace, Key, LPCallback, bool);
+ bool ListenRTPublish(QObject*, Namespace, Key, LPCallback);
private:
class Impl;
@@ -111,8 +111,7 @@ bool GPGFRONTEND_CORE_EXPORT UpsertRTValue(const std::string& namespace_,
const std::any& value);
bool GPGFRONTEND_CORE_EXPORT ListenRTPublishEvent(QObject*, Namespace, Key,
- LPCallback,
- bool callback_once = true);
+ LPCallback);
template <typename T>
std::optional<T> RetrieveRTValueTyped(const std::string& namespace_,
diff --git a/src/core/thread/Task.cpp b/src/core/thread/Task.cpp
index 0e0f63ac..d7f1dab9 100644
--- a/src/core/thread/Task.cpp
+++ b/src/core/thread/Task.cpp
@@ -28,16 +28,11 @@
#include "core/thread/Task.h"
-#include <qobjectdefs.h>
-#include <qtmetamacros.h>
-
#include <boost/stacktrace.hpp>
#include <boost/uuid/uuid.hpp>
#include <boost/uuid/uuid_generators.hpp>
#include <boost/uuid/uuid_io.hpp>
-#include <memory>
-
-#include "spdlog/spdlog.h"
+#include <utility>
namespace GpgFrontend::Thread {
@@ -56,11 +51,11 @@ class Task::Impl : public QObject {
: QObject(parent),
parent_(parent),
uuid_(generate_uuid()),
- name_(name),
- runnable_(runnable),
+ name_(std::move(name)),
+ runnable_(std::move(runnable)),
callback_([](int, const DataObjectPtr &) {}),
callback_thread_(QThread::currentThread()),
- data_object_(data_object) {
+ data_object_(std::move(data_object)) {
SPDLOG_TRACE("task {} created with runnable, callback_thread_: {}",
GetFullID(), static_cast<void *>(callback_thread_));
init();
@@ -71,11 +66,11 @@ class Task::Impl : public QObject {
: QObject(parent),
parent_(parent),
uuid_(generate_uuid()),
- name_(name),
- runnable_(runnable),
- callback_(callback),
+ name_(std::move(name)),
+ runnable_(std::move(runnable)),
+ callback_(std::move(callback)),
callback_thread_(QThread::currentThread()),
- data_object_(data_object) {
+ data_object_(std::move(data_object)) {
SPDLOG_TRACE(
"task {} created with runnable and callback, callback_thread_: {}",
GetFullID(), static_cast<void *>(callback_thread_));
diff --git a/src/core/thread/Task.h b/src/core/thread/Task.h
index f6a2abe8..da74005f 100644
--- a/src/core/thread/Task.h
+++ b/src/core/thread/Task.h
@@ -29,15 +29,12 @@
#pragma once
#include "core/GpgFrontendCore.h"
-#include "core/thread/DataObject.h"
+#include "core/model/DataObject.h"
namespace GpgFrontend::Thread {
class TaskRunner;
-class DataObject;
-using DataObjectPtr = std::shared_ptr<DataObject>; ///<
-
class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable {
Q_OBJECT
public:
@@ -50,7 +47,7 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable {
* @brief Construct a new Task object
*
*/
- Task(std::string name);
+ explicit Task(std::string name);
/**
* @brief Construct a new Task object
@@ -68,11 +65,11 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable {
explicit Task(TaskRunnable runnable, std::string name, DataObjectPtr data,
TaskCallback callback);
- virtual ~Task() override;
+ ~Task() override;
- std::string GetUUID() const;
+ [[nodiscard]] auto GetUUID() const -> std::string;
- std::string GetFullID() const;
+ [[nodiscard]] auto GetFullID() const -> std::string;
void HoldOnLifeCycle(bool hold_on);
@@ -95,6 +92,6 @@ class GPGFRONTEND_CORE_EXPORT Task : public QObject, public QRunnable {
class Impl;
Impl* p_;
- virtual void run() override;
+ void run() override;
};
} // namespace GpgFrontend::Thread
diff --git a/src/core/thread/TaskRunner.cpp b/src/core/thread/TaskRunner.cpp
index ca6a4033..86e06dfd 100644
--- a/src/core/thread/TaskRunner.cpp
+++ b/src/core/thread/TaskRunner.cpp
@@ -33,8 +33,6 @@
#include <qthread.h>
#include <qthreadpool.h>
-#include <memory>
-
#include "core/thread/Task.h"
namespace GpgFrontend::Thread {
diff --git a/src/core/thread/TaskRunner.h b/src/core/thread/TaskRunner.h
index b4ff3552..4df1d465 100644
--- a/src/core/thread/TaskRunner.h
+++ b/src/core/thread/TaskRunner.h
@@ -28,8 +28,6 @@
#pragma once
-#include <vector>
-
#include "core/GpgFrontendCore.h"
namespace GpgFrontend::Thread {
diff --git a/src/core/thread/TaskRunnerGetter.cpp b/src/core/thread/TaskRunnerGetter.cpp
index ce7dbd32..2e4de859 100644
--- a/src/core/thread/TaskRunnerGetter.cpp
+++ b/src/core/thread/TaskRunnerGetter.cpp
@@ -28,8 +28,6 @@
#include "core/thread/TaskRunnerGetter.h"
-#include <memory>
-
#include "thread/TaskRunner.h"
namespace GpgFrontend::Thread {
diff --git a/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp b/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp
index a9eb543b..0ec9b4d5 100644
--- a/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp
+++ b/src/module/integrated/gnupg_info_gathering_module/GnuPGInfoGatheringModule.cpp
@@ -106,7 +106,7 @@ int GnuPGInfoGatheringModule::Exec(EventRefrernce event) {
MODULE_LOG_DEBUG("start to load extra info at module gnupginfogathering...");
// get all components
- GpgCommandExecutor::GetInstance().ExecuteSync(
+ GpgCommandExecutor::ExecuteSync(
{gpgconf_path,
{"--list-components"},
[this, gpgme_version, gpgconf_path](
@@ -411,7 +411,7 @@ int GnuPGInfoGatheringModule::Exec(EventRefrernce event) {
getTaskRunner()});
}
- GpgCommandExecutor::GetInstance().ExecuteConcurrentlySync(exec_contexts);
+ GpgCommandExecutor::ExecuteConcurrentlySync(exec_contexts);
UpsertRTValue(GetModuleIdentifier(), "gnupg.gathering_done", true);
return 0;
diff --git a/src/module/integrated/version_checking_module/VersionCheckTask.cpp b/src/module/integrated/version_checking_module/VersionCheckTask.cpp
index c3b61339..c1c7f4ae 100644
--- a/src/module/integrated/version_checking_module/VersionCheckTask.cpp
+++ b/src/module/integrated/version_checking_module/VersionCheckTask.cpp
@@ -40,9 +40,8 @@ namespace GpgFrontend::Module::Integrated::VersionCheckingModule {
VersionCheckTask::VersionCheckTask()
: Task("version_check_task"),
network_manager_(new QNetworkAccessManager(this)),
- current_version_(std::string("v") + std::to_string(VERSION_MAJOR) + "." +
- std::to_string(VERSION_MINOR) + "." +
- std::to_string(VERSION_PATCH)) {
+ current_version_(std::string("v") + VERSION_MAJOR + "." + VERSION_MINOR +
+ "." + VERSION_PATCH) {
HoldOnLifeCycle(true);
qRegisterMetaType<SoftwareVersion>("SoftwareVersion");
version_.current_version = current_version_;
diff --git a/src/ui/UserInterfaceUtils.cpp b/src/ui/UserInterfaceUtils.cpp
index 5b92ffc0..1cdb1267 100644
--- a/src/ui/UserInterfaceUtils.cpp
+++ b/src/ui/UserInterfaceUtils.cpp
@@ -120,7 +120,7 @@ void process_result_analyse(TextEdit *edit, InfoBoardWidget *info_board,
void process_operation(QWidget *parent, const std::string &waiting_title,
const Thread::Task::TaskRunnable func,
const Thread::Task::TaskCallback callback,
- Thread::DataObjectPtr data_object) {
+ DataObjectPtr data_object) {
auto *dialog =
new WaitingDialog(QString::fromStdString(waiting_title), parent);
@@ -437,7 +437,7 @@ void CommonUtils::SlotImportKeyFromKeyServer(
void CommonUtils::slot_update_key_status() {
auto refresh_task = new Thread::Task(
- [](Thread::DataObjectPtr) -> int {
+ [](DataObjectPtr) -> int {
// flush key cache for all GpgKeyGetter Intances.
for (const auto &channel_id : GpgKeyGetter::GetAllChannelId()) {
GpgKeyGetter::GetInstance(channel_id).FlushKeyCache();
diff --git a/src/ui/UserInterfaceUtils.h b/src/ui/UserInterfaceUtils.h
index 7031a480..9356e459 100644
--- a/src/ui/UserInterfaceUtils.h
+++ b/src/ui/UserInterfaceUtils.h
@@ -106,7 +106,7 @@ void process_operation(
QWidget* parent, const std::string& waiting_title,
GpgFrontend::Thread::Task::TaskRunnable func,
GpgFrontend::Thread::Task::TaskCallback callback = nullptr,
- Thread::DataObjectPtr data_object = nullptr);
+ DataObjectPtr data_object = nullptr);
/**
* @brief
diff --git a/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp b/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp
index b13049ba..b4a708ed 100644
--- a/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp
+++ b/src/ui/dialog/gnupg/GnuPGControllerDialog.cpp
@@ -31,7 +31,6 @@
#include "SignalStation.h"
#include "core/function/GlobalSettingStation.h"
#include "core/module/ModuleManager.h"
-#include "spdlog/spdlog.h"
#include "ui/dialog/GeneralDialog.h"
#include "ui_GnuPGControllerDialog.h"
diff --git a/src/ui/dialog/help/AboutDialog.cpp b/src/ui/dialog/help/AboutDialog.cpp
index ae708e46..f308b75c 100644
--- a/src/ui/dialog/help/AboutDialog.cpp
+++ b/src/ui/dialog/help/AboutDialog.cpp
@@ -160,9 +160,8 @@ UpdateTab::UpdateTab(QWidget* parent) : QWidget(parent) {
pixmap_label->setPixmap(*pixmap);
layout->addWidget(pixmap_label, 0, 0, 1, -1, Qt::AlignCenter);
- current_version_ = "v" + QString::number(VERSION_MAJOR) + "." +
- QString::number(VERSION_MINOR) + "." +
- QString::number(VERSION_PATCH);
+ current_version_ =
+ QString("v") + VERSION_MAJOR + "." + VERSION_MINOR + "." + VERSION_PATCH;
auto tips_label = new QLabel();
tips_label->setText(
diff --git a/src/ui/main_window/MainWindow.cpp b/src/ui/main_window/MainWindow.cpp
index 46d72361..1ea706ef 100644
--- a/src/ui/main_window/MainWindow.cpp
+++ b/src/ui/main_window/MainWindow.cpp
@@ -123,8 +123,7 @@ void MainWindow::Init() noexcept {
if (GlobalSettingStation::GetInstance().LookupSettings(
"general.clear_gpg_password_cache", false)) {
- if (GpgFrontend::GpgAdvancedOperator::GetInstance()
- .ClearGpgPasswordCache()) {
+ if (GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache()) {
SPDLOG_DEBUG("clear gpg password cache done");
} else {
SPDLOG_ERROR("clear gpg password cache error");
diff --git a/src/ui/main_window/MainWindowFileSlotFunction.cpp b/src/ui/main_window/MainWindowFileSlotFunction.cpp
index 8df74862..5a7f5e34 100644
--- a/src/ui/main_window/MainWindowFileSlotFunction.cpp
+++ b/src/ui/main_window/MainWindowFileSlotFunction.cpp
@@ -92,7 +92,7 @@ bool process_tarball_into_directory(QWidget* parent,
bool if_error = false;
process_operation(parent, _("Extracting Tarball"),
- [&](Thread::DataObjectPtr) -> int {
+ [&](DataObjectPtr) -> int {
try {
GpgFrontend::ArchiveFileOperator::ExtractArchive(
target_path, base_path);
@@ -136,16 +136,15 @@ bool process_directory_into_tarball(QWidget* parent, QString& path) {
selected_dir_path.u8string());
bool if_error = false;
- process_operation(parent, _("Making Tarball"),
- [&](Thread::DataObjectPtr) -> int {
- try {
- GpgFrontend::ArchiveFileOperator::CreateArchive(
- base_path, target_path, 0, {selected_dir_path});
- } catch (const std::runtime_error& e) {
- if_error = true;
- }
- return 0;
- });
+ process_operation(parent, _("Making Tarball"), [&](DataObjectPtr) -> int {
+ try {
+ GpgFrontend::ArchiveFileOperator::CreateArchive(base_path, target_path,
+ 0, {selected_dir_path});
+ } catch (const std::runtime_error& e) {
+ if_error = true;
+ }
+ return 0;
+ });
if (if_error || !exists(target_path)) {
throw std::runtime_error("Compress Failed");
@@ -229,7 +228,7 @@ void MainWindow::SlotFileEncrypt() {
if (ret == QMessageBox::Cancel) return;
process_operation(
- this, _("Symmetrically Encrypting"), [&](Thread::DataObjectPtr) -> int {
+ this, _("Symmetrically Encrypting"), [&](DataObjectPtr) -> int {
try {
error = GpgFrontend::GpgFileOpera::EncryptFileSymmetric(
path.toStdString(), out_path.toStdString(), result, _channel);
@@ -255,7 +254,7 @@ void MainWindow::SlotFileEncrypt() {
}
}
- process_operation(this, _("Encrypting"), [&](Thread::DataObjectPtr) -> int {
+ process_operation(this, _("Encrypting"), [&](DataObjectPtr) -> int {
try {
error =
GpgFileOpera::EncryptFile(std::move(p_keys), path.toStdString(),
@@ -318,7 +317,7 @@ void MainWindow::SlotFileDecrypt() {
GpgDecrResult result = nullptr;
gpgme_error_t error;
bool if_error = false;
- process_operation(this, _("Decrypting"), [&](Thread::DataObjectPtr) -> int {
+ process_operation(this, _("Decrypting"), [&](DataObjectPtr) -> int {
try {
error = GpgFileOpera::DecryptFile(path.toStdString(), out_path.u8string(),
result);
@@ -422,7 +421,7 @@ void MainWindow::SlotFileSign() {
gpgme_error_t error;
bool if_error = false;
- process_operation(this, _("Signing"), [&](Thread::DataObjectPtr) -> int {
+ process_operation(this, _("Signing"), [&](DataObjectPtr) -> int {
try {
error =
GpgFileOpera::SignFile(std::move(keys), in_path.u8string(),
@@ -506,7 +505,7 @@ void MainWindow::SlotFileVerify() {
GpgVerifyResult result = nullptr;
gpgme_error_t error;
bool if_error = false;
- process_operation(this, _("Verifying"), [&](Thread::DataObjectPtr) -> int {
+ process_operation(this, _("Verifying"), [&](DataObjectPtr) -> int {
try {
error =
GpgFileOpera::VerifyFile(data_file_path.u8string(),
@@ -522,11 +521,13 @@ void MainWindow::SlotFileVerify() {
result_analyse.Analyse();
process_result_analyse(edit_, info_board_, result_analyse);
- if (result_analyse.GetStatus() == -2)
+ if (result_analyse.GetStatus() == -2) {
import_unknown_key_from_keyserver(this, result_analyse);
+ }
- if (result_analyse.GetStatus() >= 0)
+ if (result_analyse.GetStatus() >= 0) {
show_verify_details(this, info_board_, error, result);
+ }
fileTreeView->update();
} else {
@@ -537,8 +538,8 @@ void MainWindow::SlotFileVerify() {
}
void MainWindow::SlotFileEncryptSign() {
- auto fileTreeView = edit_->SlotCurPageFileTreeView();
- auto path = fileTreeView->GetSelected();
+ auto* file_tree_view = edit_->SlotCurPageFileTreeView();
+ auto path = file_tree_view->GetSelected();
if (!path_pre_check(this, path)) return;
@@ -578,14 +579,14 @@ void MainWindow::SlotFileEncryptSign() {
path = path + (file_info.isDir() ? ".tar" : "");
}
- auto _channel = GPGFRONTEND_DEFAULT_CHANNEL;
- auto _extension = ".asc";
+ auto channel = GPGFRONTEND_DEFAULT_CHANNEL;
+ const auto* extension = ".asc";
if (non_ascii_when_export || file_info.isDir()) {
- _channel = GPGFRONTEND_NON_ASCII_CHANNEL;
- _extension = ".gpg";
+ channel = GPGFRONTEND_NON_ASCII_CHANNEL;
+ extension = ".gpg";
}
- auto out_path = path + _extension;
+ auto out_path = path + extension;
if (QFile::exists(out_path)) {
auto ret = QMessageBox::warning(
@@ -596,15 +597,15 @@ void MainWindow::SlotFileEncryptSign() {
if (ret == QMessageBox::Cancel) return;
}
- auto signersPicker = new SignersPicker(this);
+ auto* signers_picker = new SignersPicker(this);
QEventLoop loop;
- connect(signersPicker, &SignersPicker::finished, &loop, &QEventLoop::quit);
+ connect(signers_picker, &SignersPicker::finished, &loop, &QEventLoop::quit);
loop.exec();
// return when canceled
- if (!signersPicker->GetStatus()) return;
+ if (!signers_picker->GetStatus()) return;
- auto signer_key_ids = signersPicker->GetCheckedSigners();
+ auto signer_key_ids = signers_picker->GetCheckedSigners();
auto p_signer_keys = GpgKeyGetter::GetInstance().GetKeys(signer_key_ids);
// convert directory into tarball
@@ -624,11 +625,11 @@ void MainWindow::SlotFileEncryptSign() {
bool if_error = false;
process_operation(
- this, _("Encrypting and Signing"), [&](Thread::DataObjectPtr) -> int {
+ this, _("Encrypting and Signing"), [&](DataObjectPtr) -> int {
try {
error = GpgFileOpera::EncryptSignFile(
std::move(p_keys), std::move(p_signer_keys), path.toStdString(),
- out_path.toStdString(), encr_result, sign_result, _channel);
+ out_path.toStdString(), encr_result, sign_result, channel);
} catch (const std::runtime_error& e) {
if_error = true;
}
@@ -643,7 +644,7 @@ void MainWindow::SlotFileEncryptSign() {
sign_res.Analyse();
process_result_analyse(edit_, info_board_, encrypt_result, sign_res);
- fileTreeView->update();
+ file_tree_view->update();
} else {
QMessageBox::critical(this, _("Error"),
@@ -662,8 +663,8 @@ void MainWindow::SlotFileEncryptSign() {
}
void MainWindow::SlotFileDecryptVerify() {
- auto fileTreeView = edit_->SlotCurPageFileTreeView();
- auto path = fileTreeView->GetSelected();
+ auto* file_tree_view = edit_->SlotCurPageFileTreeView();
+ auto path = file_tree_view->GetSelected();
if (!path_pre_check(this, path)) return;
@@ -697,7 +698,7 @@ void MainWindow::SlotFileDecryptVerify() {
gpgme_error_t error;
bool if_error = false;
process_operation(
- this, _("Decrypting and Verifying"), [&](Thread::DataObjectPtr) -> int {
+ this, _("Decrypting and Verifying"), [&](DataObjectPtr) -> int {
try {
error = GpgFileOpera::DecryptVerifyFile(
path.toStdString(), out_path.u8string(), d_result, v_result);
@@ -714,13 +715,15 @@ void MainWindow::SlotFileDecryptVerify() {
verify_res.Analyse();
process_result_analyse(edit_, info_board_, decrypt_res, verify_res);
- if (verify_res.GetStatus() == -2)
+ if (verify_res.GetStatus() == -2) {
import_unknown_key_from_keyserver(this, verify_res);
+ }
- if (verify_res.GetStatus() >= 0)
+ if (verify_res.GetStatus() >= 0) {
show_verify_details(this, info_board_, error, v_result);
+ }
- fileTreeView->update();
+ file_tree_view->update();
} else {
QMessageBox::critical(this, _("Error"),
_("An error occurred during operation."));
@@ -729,10 +732,11 @@ void MainWindow::SlotFileDecryptVerify() {
// extract the tarball
if (out_path.extension() == ".tar" && exists(out_path)) {
- bool ret = QMessageBox::information(
- this, _("Decrypting"),
- _("Do you want to extract and delete the decrypted tarball?"),
- QMessageBox::Ok | QMessageBox::Cancel);
+ bool ret =
+ QMessageBox::information(
+ this, _("Decrypting"),
+ _("Do you want to extract and delete the decrypted tarball?"),
+ QMessageBox::Ok | QMessageBox::Cancel) != 0;
if (ret) {
if (process_tarball_into_directory(this, out_path)) {
QMessageBox::information(this, _("Decrypting"),
diff --git a/src/ui/main_window/MainWindowSlotFunction.cpp b/src/ui/main_window/MainWindowSlotFunction.cpp
index dc4b3965..3485799e 100644
--- a/src/ui/main_window/MainWindowSlotFunction.cpp
+++ b/src/ui/main_window/MainWindowSlotFunction.cpp
@@ -40,8 +40,8 @@
#include "core/function/result_analyse/GpgEncryptResultAnalyse.h"
#include "core/function/result_analyse/GpgSignResultAnalyse.h"
#include "core/function/result_analyse/GpgVerifyResultAnalyse.h"
+#include "core/model/DataObject.h"
#include "core/module/ModuleManager.h"
-#include "core/thread/DataObject.h"
#include "ui/UserInterfaceUtils.h"
#include "ui/dialog/SignersPicker.h"
#include "ui/dialog/help/AboutDialog.h"
@@ -62,17 +62,17 @@ void MainWindow::slot_encrypt() {
auto key_ids = m_key_list_->GetChecked();
// data to transfer into task
- auto data_object = Thread::TransferParams(
+ auto data_object = TransferParams(
edit_->CurTextPage()->GetTextPage()->toPlainText().toStdString());
// the callback function
- auto result_callback = [this](int rtn, Thread::DataObjectPtr data_object) {
- if (!rtn) {
+ auto result_callback = [this](int rtn, const DataObjectPtr& data_object) {
+ if (rtn == 0) {
if (!data_object->Check<GpgError, GpgEncrResult, ByteArrayPtr>())
throw std::runtime_error("data object doesn't pass checking");
- auto error = Thread::ExtractParams<GpgError>(data_object, 0);
- auto result = Thread::ExtractParams<GpgEncrResult>(data_object, 1);
- auto tmp = Thread::ExtractParams<ByteArrayPtr>(data_object, 2);
+ auto error = ExtractParams<GpgError>(data_object, 0);
+ auto result = ExtractParams<GpgEncrResult>(data_object, 1);
+ auto tmp = ExtractParams<ByteArrayPtr>(data_object, 2);
auto resultAnalyse = GpgEncryptResultAnalyse(error, std::move(result));
resultAnalyse.Analyse();
@@ -90,7 +90,7 @@ void MainWindow::slot_encrypt() {
Thread::Task::TaskRunnable encrypt_runner = nullptr;
- std::string encrypt_type = "";
+ std::string encrypt_type;
if (key_ids->empty()) {
// Symmetric Encrypt
@@ -103,10 +103,10 @@ void MainWindow::slot_encrypt() {
if (ret == QMessageBox::Cancel) return;
encrypt_type = _("Symmetrically Encrypting");
- encrypt_runner = [](Thread::DataObjectPtr data_object) -> int {
+ encrypt_runner = [](const DataObjectPtr& data_object) -> int {
if (data_object == nullptr || !data_object->Check<std::string>())
throw std::runtime_error("data object doesn't pass checking");
- auto buffer = Thread::ExtractParams<std::string>(data_object, 0);
+ auto buffer = ExtractParams<std::string>(data_object, 0);
try {
GpgEncrResult result = nullptr;
auto tmp = std::make_shared<ByteArray>();
@@ -114,8 +114,7 @@ void MainWindow::slot_encrypt() {
GpgFrontend::GpgBasicOperator::GetInstance().EncryptSymmetric(
buffer, tmp, result);
- data_object->Swap(Thread::DataObject{
- std::move(error), std::move(result), std::move(tmp)});
+ data_object->Swap(DataObject{error, std::move(result), std::move(tmp)});
} catch (const std::runtime_error& e) {
return -1;
}
@@ -142,14 +141,14 @@ void MainWindow::slot_encrypt() {
// Asymmetric Encrypt
encrypt_type = _("Encrypting");
- encrypt_runner = [](Thread::DataObjectPtr data_object) -> int {
+ encrypt_runner = [](DataObjectPtr data_object) -> int {
// check the size of the data object
if (data_object == nullptr ||
!data_object->Check<std::string, KeyListPtr>())
throw std::runtime_error("data object doesn't pass checking");
- auto buffer = Thread::ExtractParams<std::string>(data_object, 0);
- auto keys = Thread::ExtractParams<KeyListPtr>(data_object, 1);
+ auto buffer = ExtractParams<std::string>(data_object, 0);
+ auto keys = ExtractParams<KeyListPtr>(data_object, 1);
try {
GpgEncrResult result = nullptr;
auto tmp = std::make_shared<ByteArray>();
@@ -198,7 +197,7 @@ void MainWindow::slot_sign() {
}
// data to transfer into task
- auto data_object = Thread::TransferParams();
+ auto data_object = TransferParams();
// set input buffer
auto buffer =
@@ -208,13 +207,13 @@ void MainWindow::slot_sign() {
// push the keys into data object
data_object->AppendObject(std::move(keys));
- auto sign_ruunner = [](Thread::DataObjectPtr data_object) -> int {
+ auto sign_ruunner = [](DataObjectPtr data_object) -> int {
// check the size of the data object
if (data_object == nullptr || data_object->GetObjectSize() != 2)
throw std::runtime_error("data object doesn't pass checking");
- auto buffer = Thread::ExtractParams<std::string>(data_object, 0);
- auto keys = Thread::ExtractParams<KeyListPtr>(data_object, 1);
+ auto buffer = ExtractParams<std::string>(data_object, 0);
+ auto keys = ExtractParams<KeyListPtr>(data_object, 1);
try {
GpgSignResult result = nullptr;
@@ -229,13 +228,13 @@ void MainWindow::slot_sign() {
return 0;
};
- auto result_callback = [this](int rtn, Thread::DataObjectPtr data_object) {
+ auto result_callback = [this](int rtn, DataObjectPtr data_object) {
if (!rtn) {
if (data_object == nullptr || data_object->GetObjectSize() != 3)
throw std::runtime_error("data object doesn't pass checking");
- auto error = Thread::ExtractParams<GpgError>(data_object, 0);
- auto result = Thread::ExtractParams<GpgSignResult>(data_object, 1);
- auto tmp = Thread::ExtractParams<ByteArrayPtr>(data_object, 2);
+ auto error = ExtractParams<GpgError>(data_object, 0);
+ auto result = ExtractParams<GpgSignResult>(data_object, 1);
+ auto tmp = ExtractParams<ByteArrayPtr>(data_object, 2);
auto resultAnalyse = GpgSignResultAnalyse(error, std::move(result));
resultAnalyse.Analyse();
process_result_analyse(edit_, info_board_, resultAnalyse);
@@ -269,15 +268,15 @@ void MainWindow::slot_decrypt() {
}
// data to transfer into task
- auto data_object = Thread::TransferParams(
+ auto data_object = TransferParams(
edit_->CurTextPage()->GetTextPage()->toPlainText().toStdString());
- auto decrypt_runner = [](Thread::DataObjectPtr data_object) -> int {
+ auto decrypt_runner = [](DataObjectPtr data_object) -> int {
// check the size of the data object
if (data_object == nullptr || data_object->GetObjectSize() != 1)
throw std::runtime_error("data object doesn't pass checking");
- auto buffer = Thread::ExtractParams<std::string>(data_object, 0);
+ auto buffer = ExtractParams<std::string>(data_object, 0);
try {
GpgDecrResult result = nullptr;
auto decrypted = std::make_shared<ByteArray>();
@@ -291,14 +290,14 @@ void MainWindow::slot_decrypt() {
return 0;
};
- auto result_callback = [this](int rtn, Thread::DataObjectPtr data_object) {
+ auto result_callback = [this](int rtn, DataObjectPtr data_object) {
if (!rtn) {
if (data_object == nullptr ||
!data_object->Check<GpgError, GpgDecrResult, ByteArrayPtr>())
throw std::runtime_error("data object doesn't pass checking");
- auto error = Thread::ExtractParams<GpgError>(data_object, 0);
- auto result = Thread::ExtractParams<GpgDecrResult>(data_object, 1);
- auto decrypted = Thread::ExtractParams<ByteArrayPtr>(data_object, 2);
+ auto error = ExtractParams<GpgError>(data_object, 0);
+ auto result = ExtractParams<GpgDecrResult>(data_object, 1);
+ auto decrypted = ExtractParams<ByteArrayPtr>(data_object, 2);
auto resultAnalyse = GpgDecryptResultAnalyse(error, std::move(result));
resultAnalyse.Analyse();
process_result_analyse(edit_, info_board_, resultAnalyse);
@@ -323,19 +322,19 @@ void MainWindow::slot_verify() {
}
// data to transfer into task
- auto data_object = Thread::TransferParams();
+ auto data_object = TransferParams();
// set input buffer
auto buffer =
edit_->CurTextPage()->GetTextPage()->toPlainText().toStdString();
data_object->AppendObject(std::move(buffer));
- auto verify_runner = [](Thread::DataObjectPtr data_object) -> int {
+ auto verify_runner = [](DataObjectPtr data_object) -> int {
// check the size of the data object
if (data_object == nullptr || !data_object->Check<std::string>())
throw std::runtime_error("data object doesn't pass checking");
- auto buffer = Thread::ExtractParams<std::string>(data_object, 0);
+ auto buffer = ExtractParams<std::string>(data_object, 0);
SPDLOG_DEBUG("verify buffer size: {}", buffer.size());
@@ -352,14 +351,13 @@ void MainWindow::slot_verify() {
return 0;
};
- auto result_callback = [this](int rtn, Thread::DataObjectPtr data_object) {
+ auto result_callback = [this](int rtn, DataObjectPtr data_object) {
if (!rtn) {
if (data_object == nullptr ||
!data_object->Check<GpgError, GpgVerifyResult>())
throw std::runtime_error("data object doesn't pass checking");
- auto error = Thread::ExtractParams<GpgError>(data_object, 0);
- auto verify_result =
- Thread::ExtractParams<GpgVerifyResult>(data_object, 1);
+ auto error = ExtractParams<GpgError>(data_object, 0);
+ auto verify_result = ExtractParams<GpgVerifyResult>(data_object, 1);
auto result_analyse = GpgVerifyResultAnalyse(error, verify_result);
result_analyse.Analyse();
@@ -434,19 +432,19 @@ void MainWindow::slot_encrypt_sign() {
}
// data to transfer into task
- auto data_object = Thread::TransferParams(
+ auto data_object = TransferParams(
std::move(signer_keys), std::move(keys),
edit_->CurTextPage()->GetTextPage()->toPlainText().toStdString());
- auto encrypt_sign_runner = [](Thread::DataObjectPtr data_object) -> int {
+ auto encrypt_sign_runner = [](DataObjectPtr data_object) -> int {
// check the size of the data object
if (data_object == nullptr ||
!data_object->Check<KeyListPtr, KeyListPtr, std::string>())
throw std::runtime_error("data object doesn't pass checking");
- auto signer_keys = Thread::ExtractParams<KeyListPtr>(data_object, 0);
- auto keys = Thread::ExtractParams<KeyListPtr>(data_object, 1);
- auto buffer = Thread::ExtractParams<std::string>(data_object, 2);
+ auto signer_keys = ExtractParams<KeyListPtr>(data_object, 0);
+ auto keys = ExtractParams<KeyListPtr>(data_object, 1);
+ auto buffer = ExtractParams<std::string>(data_object, 2);
try {
GpgEncrResult encr_result = nullptr;
GpgSignResult sign_result = nullptr;
@@ -463,17 +461,16 @@ void MainWindow::slot_encrypt_sign() {
return 0;
};
- auto result_callback = [this](int rtn, Thread::DataObjectPtr data_object) {
+ auto result_callback = [this](int rtn, DataObjectPtr data_object) {
if (!rtn) {
if (data_object == nullptr ||
!data_object
->Check<GpgError, GpgEncrResult, GpgSignResult, ByteArrayPtr>())
throw std::runtime_error("data object doesn't pass checking");
- auto error = Thread::ExtractParams<GpgError>(data_object, 0);
- auto encrypt_result =
- Thread::ExtractParams<GpgEncrResult>(data_object, 1);
- auto sign_result = Thread::ExtractParams<GpgSignResult>(data_object, 2);
- auto tmp = Thread::ExtractParams<ByteArrayPtr>(data_object, 3);
+ auto error = ExtractParams<GpgError>(data_object, 0);
+ auto encrypt_result = ExtractParams<GpgEncrResult>(data_object, 1);
+ auto sign_result = ExtractParams<GpgSignResult>(data_object, 2);
+ auto tmp = ExtractParams<ByteArrayPtr>(data_object, 3);
auto encrypt_result_analyse =
GpgEncryptResultAnalyse(error, std::move(encrypt_result));
@@ -506,15 +503,15 @@ void MainWindow::slot_decrypt_verify() {
}
// data to transfer into task
- auto data_object = Thread::TransferParams(
+ auto data_object = TransferParams(
edit_->CurTextPage()->GetTextPage()->toPlainText().toStdString());
- auto decrypt_verify_runner = [](Thread::DataObjectPtr data_object) -> int {
+ auto decrypt_verify_runner = [](DataObjectPtr data_object) -> int {
// check the size of the data object
if (data_object == nullptr || !data_object->Check<std::string>())
throw std::runtime_error("data object doesn't pass checking");
- auto buffer = Thread::ExtractParams<std::string>(data_object, 0);
+ auto buffer = ExtractParams<std::string>(data_object, 0);
try {
GpgDecrResult decrypt_result = nullptr;
GpgVerifyResult verify_result = nullptr;
@@ -531,19 +528,17 @@ void MainWindow::slot_decrypt_verify() {
return 0;
};
- auto result_callback = [this](int rtn, Thread::DataObjectPtr data_object) {
+ auto result_callback = [this](int rtn, DataObjectPtr data_object) {
if (!rtn) {
if (data_object == nullptr ||
!data_object->Check<GpgError, GpgDecrResult, GpgVerifyResult,
ByteArrayPtr>())
throw std::runtime_error("data object doesn't pass checking");
- auto error = Thread::ExtractParams<GpgError>(data_object, 0);
- auto decrypt_result =
- Thread::ExtractParams<GpgDecrResult>(data_object, 1);
- auto verify_result =
- Thread::ExtractParams<GpgVerifyResult>(data_object, 2);
- auto decrypted = Thread::ExtractParams<ByteArrayPtr>(data_object, 3);
+ auto error = ExtractParams<GpgError>(data_object, 0);
+ auto decrypt_result = ExtractParams<GpgDecrResult>(data_object, 1);
+ auto verify_result = ExtractParams<GpgVerifyResult>(data_object, 2);
+ auto decrypted = ExtractParams<ByteArrayPtr>(data_object, 3);
auto decrypt_result_analyse =
GpgDecryptResultAnalyse(error, std::move(decrypt_result));
diff --git a/src/ui/main_window/MainWindowUI.cpp b/src/ui/main_window/MainWindowUI.cpp
index 93bbd088..9c4e5ceb 100644
--- a/src/ui/main_window/MainWindowUI.cpp
+++ b/src/ui/main_window/MainWindowUI.cpp
@@ -287,8 +287,7 @@ void MainWindow::create_actions() {
clean_gpg_password_cache_act_->setIcon(QIcon(":configure.png"));
clean_gpg_password_cache_act_->setToolTip(_("Clear Password Cache of GnuPG"));
connect(clean_gpg_password_cache_act_, &QAction::triggered, this, [=]() {
- if (GpgFrontend::GpgAdvancedOperator::GetInstance()
- .ClearGpgPasswordCache()) {
+ if (GpgFrontend::GpgAdvancedOperator::ClearGpgPasswordCache()) {
QMessageBox::information(this, _("Successful Operation"),
_("Clear password cache successfully"));
} else {
@@ -301,7 +300,7 @@ void MainWindow::create_actions() {
reload_components_act_->setIcon(QIcon(":configure.png"));
reload_components_act_->setToolTip(_("Reload All GnuPG's Components"));
connect(reload_components_act_, &QAction::triggered, this, [=]() {
- if (GpgFrontend::GpgAdvancedOperator::GetInstance().ReloadGpgComponents()) {
+ if (GpgFrontend::GpgAdvancedOperator::ReloadGpgComponents()) {
QMessageBox::information(
this, _("Successful Operation"),
_("Reload all the GnuPG's components successfully"));
@@ -316,7 +315,7 @@ void MainWindow::create_actions() {
restart_components_act_->setIcon(QIcon(":configure.png"));
restart_components_act_->setToolTip(_("Restart All GnuPG's Components"));
connect(restart_components_act_, &QAction::triggered, this, [=]() {
- GpgFrontend::GpgAdvancedOperator::GetInstance().RestartGpgComponents();
+ GpgFrontend::GpgAdvancedOperator::RestartGpgComponents();
Module::ListenRTPublishEvent(
this, "core", "gpg_advanced_operator.restart_gpg_components",
[=](Module::Namespace, Module::Key, int, std::any value) {