diff --git a/docs/html/DataObjectOperator_8h_source.html b/docs/html/DataObjectOperator_8h_source.html
index 797672f8..9068c6ce 100644
--- a/docs/html/DataObjectOperator_8h_source.html
+++ b/docs/html/DataObjectOperator_8h_source.html
@@ -133,9 +133,9 @@ $(document).ready(function(){initNavTree('DataObjectOperator_8h_source.html','')
std::random_device rd_
Random device.
Definition: DataObjectOperator.h:74
QByteArray hash_key_
Hash key.
Definition: DataObjectOperator.h:76
Definition: GlobalSettingStation.h:43
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GlobalSettingStation & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GlobalSettingStation & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GlobalSettingStation_8h_source.html b/docs/html/GlobalSettingStation_8h_source.html
index a471f4d4..4fd38f14 100644
--- a/docs/html/GlobalSettingStation_8h_source.html
+++ b/docs/html/GlobalSettingStation_8h_source.html
@@ -199,8 +199,8 @@ $(document).ready(function(){initNavTree('GlobalSettingStation_8h_source.html','
std::filesystem::path GetStandaloneDatabaseDir() const
Get the Standalone Database Dir object.
Definition: GlobalSettingStation.h:90
~GlobalSettingStation() noexcept override
Destroy the Global Setting Station object.
std::filesystem::path GetResourceDir() const
Get the Resource Dir object.
Definition: GlobalSettingStation.h:125
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GnupgTab_8h_source.html b/docs/html/GnupgTab_8h_source.html
index 20bef942..d59e1a10 100644
--- a/docs/html/GnupgTab_8h_source.html
+++ b/docs/html/GnupgTab_8h_source.html
@@ -139,7 +139,7 @@ $(document).ready(function(){initNavTree('GnupgTab_8h_source.html',''); initResi
Definition: GnupgTab.h:40
-GnupgTab(QWidget *parent=nullptr)
Construct a new Info Tab object.
Definition: GnupgTab.cpp:37
+GnupgTab(QWidget *parent=nullptr)
Construct a new Info Tab object.
Definition: GnupgTab.cpp:39
Definition: FileReadTask.cpp:29
diff --git a/docs/html/GpgAdvancedOperator_8h_source.html b/docs/html/GpgAdvancedOperator_8h_source.html
index ec68c30a..52a35d05 100644
--- a/docs/html/GpgAdvancedOperator_8h_source.html
+++ b/docs/html/GpgAdvancedOperator_8h_source.html
@@ -156,10 +156,10 @@ $(document).ready(function(){initNavTree('GpgAdvancedOperator_8h_source.html',''
Definition: GpgAdvancedOperator.h:42
Definition: GpgContext.h:64
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgBasicOperator_8h_source.html b/docs/html/GpgBasicOperator_8h_source.html
index 2d93aec8..986c11f6 100644
--- a/docs/html/GpgBasicOperator_8h_source.html
+++ b/docs/html/GpgBasicOperator_8h_source.html
@@ -141,10 +141,10 @@ $(document).ready(function(){initNavTree('GpgBasicOperator_8h_source.html','');
Basic operation collection.
Definition: GpgBasicOperator.h:44
Definition: GpgContext.h:64
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgCommandExecutor_8h_source.html b/docs/html/GpgCommandExecutor_8h_source.html
index 84e6e61d..958fa5ec 100644
--- a/docs/html/GpgCommandExecutor_8h_source.html
+++ b/docs/html/GpgCommandExecutor_8h_source.html
@@ -112,20 +112,25 @@ $(document).ready(function(){initNavTree('GpgCommandExecutor_8h_source.html','')
66 [](
int, std::string, std::string) {},
67 std::function<void(QProcess *)> interact_func = [](QProcess *) {});
-
-
-
-
+ 69 void ExecuteConcurrently(
+ 70 std::string cmd, std::vector<std::string> arguments,
+ 71 std::function<
void(
int, std::string, std::string)> callback,
+ 72 std::function<
void(QProcess *)> interact_func = [](QProcess *) {});
-
-
-
+
+
+
+
+
+
+
+
Extra commands related to GPG.
Definition: GpgCommandExecutor.h:47
Definition: GpgContext.h:64
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgContext_8h_source.html b/docs/html/GpgContext_8h_source.html
index 75261e9d..88709bc2 100644
--- a/docs/html/GpgContext_8h_source.html
+++ b/docs/html/GpgContext_8h_source.html
@@ -130,52 +130,53 @@ $(document).ready(function(){initNavTree('GpgContext_8h_source.html',''); initRe
107 operator gpgme_ctx_t()
const {
return _ctx_ref.get(); }
-
-
+
+ 111 GpgContextInitArgs args_{};
112 bool extend_info_loaded_ =
false;
-
- 118 void post_init_ctx();
-
- 125 std::string need_user_input_passphrase();
-
- 131 std::optional<std::string> check_binary_chacksum(std::filesystem::path);
-
-
- 138 void operator()(gpgme_ctx_t _ctx);
-
-
- 141 using CtxRefHandler =
- 142 std::unique_ptr<struct gpgme_context, _ctx_ref_deleter>;
- 143 CtxRefHandler _ctx_ref =
nullptr;
-
-
-
- 151 void SignalNeedUserInputPassphrase();
-
-
- 164 static gpgme_error_t test_passphrase_cb(
void* opaque,
const char* uid_hint,
- 165 const char* passphrase_info,
- 166 int last_was_bad,
int fd);
-
- 178 static gpgme_error_t custom_passphrase_cb(
void* opaque,
const char* uid_hint,
- 179 const char* passphrase_info,
- 180 int last_was_bad,
int fd);
-
- 190 static gpgme_error_t test_status_cb(
void* hook,
const char* keyword,
-
-
- 198 void SetPassphraseCb(gpgme_passphrase_cb_t func)
const;
-
-
-
-
+ 113 std::shared_mutex preload_lock_{};
+
+ 119 void post_init_ctx();
+
+ 126 std::string need_user_input_passphrase();
+
+ 132 std::optional<std::string> check_binary_chacksum(std::filesystem::path);
+
+
+ 139 void operator()(gpgme_ctx_t _ctx);
+
+
+ 142 using CtxRefHandler =
+ 143 std::unique_ptr<struct gpgme_context, _ctx_ref_deleter>;
+ 144 CtxRefHandler _ctx_ref =
nullptr;
+
+
+
+ 152 void SignalNeedUserInputPassphrase();
+
+
+ 165 static gpgme_error_t test_passphrase_cb(
void* opaque,
const char* uid_hint,
+ 166 const char* passphrase_info,
+ 167 int last_was_bad,
int fd);
+
+ 179 static gpgme_error_t custom_passphrase_cb(
void* opaque,
const char* uid_hint,
+ 180 const char* passphrase_info,
+ 181 int last_was_bad,
int fd);
+
+ 191 static gpgme_error_t test_status_cb(
void* hook,
const char* keyword,
+
+
+ 199 void SetPassphraseCb(gpgme_passphrase_cb_t func)
const;
+
+
+
+
Definition: GpgContext.h:64
~GpgContext() override=default
Destroy the Gpg Context object.
-Use to record some info about gnupg.
Definition: GpgInfo.h:39
-Definition: GpgFunctionObject.h:148
+Use to record some info about gnupg.
Definition: GpgInfo.h:40
+Definition: GpgFunctionObject.h:150
Definition: CoreCommonUtil.cpp:31
Definition: GpgContext.h:46
-Definition: GpgContext.h:137
+Definition: GpgContext.h:138
diff --git a/docs/html/GpgFileOpera_8h_source.html b/docs/html/GpgFileOpera_8h_source.html
index 009e885d..3bcc90a3 100644
--- a/docs/html/GpgFileOpera_8h_source.html
+++ b/docs/html/GpgFileOpera_8h_source.html
@@ -141,8 +141,8 @@ $(document).ready(function(){initNavTree('GpgFileOpera_8h_source.html',''); init
Definition: GpgFileOpera.h:44
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgFrontendUIInit_8h_source.html b/docs/html/GpgFrontendUIInit_8h_source.html
index 99cc7374..5de18345 100644
--- a/docs/html/GpgFrontendUIInit_8h_source.html
+++ b/docs/html/GpgFrontendUIInit_8h_source.html
@@ -106,7 +106,7 @@ $(document).ready(function(){initNavTree('GpgFrontendUIInit_8h_source.html','');
Definition: FileReadTask.cpp:29
-int RunGpgFrontendUI(QApplication *app)
run main window
Definition: GpgFrontendUIInit.cpp:122
+int RunGpgFrontendUI(QApplication *app)
run main window
Definition: GpgFrontendUIInit.cpp:121
void InitGpgFrontendUI(QApplication *app)
init the UI library
Definition: GpgFrontendUIInit.cpp:52
diff --git a/docs/html/GpgFunctionObject_8h_source.html b/docs/html/GpgFunctionObject_8h_source.html
index c8cb2996..a9bffcec 100644
--- a/docs/html/GpgFunctionObject_8h_source.html
+++ b/docs/html/GpgFunctionObject_8h_source.html
@@ -90,158 +90,177 @@ $(document).ready(function(){initNavTree('GpgFunctionObject_8h_source.html','');
29 #ifndef GPGFRONTEND_ZH_CN_TS_FUNCTIONOBJECT_H
30 #define GPGFRONTEND_ZH_CN_TS_FUNCTIONOBJECT_H
- 32 #include "GpgConstants.h"
+
-
+ 34 #include "GpgConstants.h"
-
-
-
-
-
-
- 60 static
int GetDefaultChannel();
-
- 67 [[nodiscard]]
int GetChannel() const;
-
- 74 void SetChannel(
int channel);
-
-
- 77 int channel_ = _default_channel;
- 78 static constexpr
int _default_channel = 0;
-
-
-
-
- 88 void ReleaseChannel(
int channel);
-
-
-
- 103 std::vector<int> GetAllChannelId();
-
-
- 113 std::unique_ptr<ChannelObject> p_obj);
-
-
-
- 117 std::map<int, std::unique_ptr<ChannelObject>>
-
-
-
-
-
-
-
-
-
-
-
- 140 std::map<size_t, std::unique_ptr<SingletonStorage>> storages_map_;
-
- 147 template <
typename T>
-
-
-
-
-
-
-
-
- 171 int channel = GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL) {
-
- 173 "T not derived from SingletonFunctionObject<T>");
-
-
-
-
-
- 179 auto* _p_pbj = (T*)(p_storage->FindObjectInChannel(channel));
-
- 181 if (_p_pbj ==
nullptr) {
- 182 auto new_obj = std::unique_ptr<ChannelObject>(
new T(channel));
- 183 return *(T*)(p_storage->SetObjectInChannel(channel, std::move(new_obj)));
-
-
-
-
-
-
-
- 198 std::function<std::unique_ptr<ChannelObject>(
void)> factory) {
-
- 200 "T not derived from SingletonFunctionObject<T>");
-
-
-
-
-
- 206 auto _p_pbj = (T*)(p_storage->FindObjectInChannel(channel));
+
+
+
+
+
+
+
+
+ 62 static
int GetDefaultChannel();
+
+ 69 [[nodiscard]]
int GetChannel() const;
+
+ 76 void SetChannel(
int channel);
+
+
+ 79 int channel_ = _default_channel;
+ 80 static constexpr
int _default_channel = 0;
+
+
+
+
+ 90 void ReleaseChannel(
int channel);
+
+
+
+ 105 std::vector<int> GetAllChannelId();
+
+
+ 115 std::unique_ptr<ChannelObject> p_obj);
+
+
+
+ 119 std::map<int, std::unique_ptr<ChannelObject>>
+
+
+
+
+
+
+
+
+
+
+
+ 142 std::map<size_t, std::unique_ptr<SingletonStorage>> storages_map_;
+
+ 149 template <
typename T>
+
+
+
+
+
+
+
+
+ 173 int channel = GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL) {
+ 174 static std::mutex g_channel_mutex_map_lock;
+ 175 static std::map<int, std::mutex> g_channel_mutex_map;
+
+
+ 178 std::lock_guard<std::mutex> guard(g_channel_mutex_map_lock);
+ 179 if (g_channel_mutex_map.find(channel) == g_channel_mutex_map.end()) {
+ 180 g_channel_mutex_map[channel];
+
+
+
+
+ 185 "T not derived from SingletonFunctionObject<T>");
+
+
+
+
+ 190 auto* _p_pbj = (T*)(p_storage->FindObjectInChannel(channel));
+
+ 192 if (_p_pbj ==
nullptr) {
+
+ 194 std::lock_guard<std::mutex> guard(g_channel_mutex_map[channel]);
+
+
+ 197 if ((_p_pbj = (T*)(p_storage->FindObjectInChannel(channel))) !=
nullptr)
+
+
+
+ 201 auto new_obj = std::unique_ptr<ChannelObject>(
new T(channel));
+ 202 return *(T*)(p_storage->SetObjectInChannel(channel, std::move(new_obj)));
+
+
+
+
- 208 if (_p_pbj ==
nullptr) {
-
- 210 T*)(p_storage->SetObjectInChannel(channel, std::move(factory())));
-
-
-
-
-
-
-
-
-
+
+
+ 217 std::function<std::unique_ptr<ChannelObject>(
void)> factory) {
+
+ 219 "T not derived from SingletonFunctionObject<T>");
+
+
+
+
+
+ 225 auto _p_pbj = (T*)(p_storage->FindObjectInChannel(channel));
-
+ 227 if (_p_pbj ==
nullptr) {
+
+ 229 T*)(p_storage->SetObjectInChannel(channel, std::move(factory())));
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
- 268 void operator=(
const T&) =
delete;
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-object which in channel system
Definition: GpgFunctionObject.h:40
+
+
+ 287 void operator=(
const T&) =
delete;
+
+
+
+
+
+
+
+
+
+
+
+object which in channel system
Definition: GpgFunctionObject.h:42
int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.cpp:41
static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.cpp:43
ChannelObject() noexcept
Construct a new Default Channel Object object.
-Definition: GpgFunctionObject.h:148
+Definition: GpgFunctionObject.h:150
SingletonFunctionObject()=default
Construct a new Singleton Function Object object.
-static T & CreateInstance(int channel, std::function< std::unique_ptr< ChannelObject >(void)> factory)
Create a Instance object.
Definition: GpgFunctionObject.h:196
+static T & CreateInstance(int channel, std::function< std::unique_ptr< ChannelObject >(void)> factory)
Create a Instance object.
Definition: GpgFunctionObject.h:215
SingletonFunctionObject(const SingletonFunctionObject< T > &)=delete
prohibit copy
-SingletonFunctionObject(int channel)
Construct a new Singleton Function Object object.
Definition: GpgFunctionObject.h:282
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static std::vector< int > GetAllChannelId()
Get all the channel ids.
Definition: GpgFunctionObject.h:246
-static T & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
+SingletonFunctionObject(int channel)
Construct a new Singleton Function Object object.
Definition: GpgFunctionObject.h:301
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static std::vector< int > GetAllChannelId()
Get all the channel ids.
Definition: GpgFunctionObject.h:265
+static T & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
SingletonFunctionObject(const T &)=delete
Construct a new Singleton Function Object object.
virtual ~SingletonFunctionObject()=default
Destroy the Singleton Function Object object.
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
SingletonFunctionObject & operator=(const SingletonFunctionObject< T > &)=delete
prohibit copy
SingletonFunctionObject(T &&)=delete
Construct a new Singleton Function Object object.
-static void ReleaseChannel(int channel)
Definition: GpgFunctionObject.h:221
-Definition: GpgFunctionObject.h:121
+static void ReleaseChannel(int channel)
Definition: GpgFunctionObject.h:240
+Definition: GpgFunctionObject.h:123
SingletonStorage * GetSingletonStorage(const std::type_info &)
Get the Singleton Storage object.
Definition: GpgFunctionObject.cpp:97
-std::shared_mutex storages_mutex_
mutex for storages_map_
Definition: GpgFunctionObject.h:139
+std::shared_mutex storages_mutex_
mutex for storages_map_
Definition: GpgFunctionObject.h:141
static SingletonStorageCollection * GetInstance(bool force_refresh)
Get the Instance object.
Definition: GpgFunctionObject.cpp:122
-Definition: GpgFunctionObject.h:81
-std::shared_mutex instances_mutex_
mutex for _instances_map
Definition: GpgFunctionObject.h:116
+Definition: GpgFunctionObject.h:83
+std::shared_mutex instances_mutex_
mutex for _instances_map
Definition: GpgFunctionObject.h:118
std::vector< int > GetAllChannelId()
Get all the channel ids.
Definition: GpgFunctionObject.cpp:69
-std::map< int, std::unique_ptr< ChannelObject > > instances_map_
map of singleton instances
Definition: GpgFunctionObject.h:118
+std::map< int, std::unique_ptr< ChannelObject > > instances_map_
map of singleton instances
Definition: GpgFunctionObject.h:120
void ReleaseChannel(int channel)
Definition: GpgFunctionObject.cpp:45
Executive files related to the basic operations that are provided by GpgBasicOperator.
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgInfo_8h_source.html b/docs/html/GpgInfo_8h_source.html
index c84933af..c7869f17 100644
--- a/docs/html/GpgInfo_8h_source.html
+++ b/docs/html/GpgInfo_8h_source.html
@@ -90,33 +90,47 @@ $(document).ready(function(){initNavTree('GpgInfo_8h_source.html',''); initResiz
29 #ifndef GPGFRONTEND_ZH_CN_TS_GPGINFO_H
30 #define GPGFRONTEND_ZH_CN_TS_GPGINFO_H
-
-
-
-
-
-
- 42 std::string DatabasePath;
- 43 std::string GnupgVersion;
- 44 std::string GpgConfPath;
- 45 std::string AssuanPath;
-
- 47 std::string GpgAgentPath;
- 48 std::string DirmngrPath;
- 49 std::string KeyboxdPath;
- 50 std::string GpgMEVersion;
- 51 std::string GnuPGHomePath;
-
- 53 std::map<std::string, std::vector<std::string>> ComponentsInfo;
- 54 std::map<std::string, std::vector<std::string>> ConfigurationsInfo;
- 55 std::map<std::string, std::vector<std::string>> OptionsInfo;
- 56 std::map<std::string, std::vector<std::string>> AvailableOptionsInfo;
-
-
-
-
-Use to record some info about gnupg.
Definition: GpgInfo.h:39
-std::string AppPath
executable binary path of gnupg
Definition: GpgInfo.h:41
+
+
+
+
+
+
+
+ 43 std::string GpgMEVersion;
+
+
+
+
+
+
+
+
+
+
+
+
+ 56 std::map<std::string, std::vector<std::string>> ComponentsInfo;
+ 57 std::map<std::string, std::vector<std::string>> ConfigurationsInfo;
+ 58 std::map<std::string, std::vector<std::string>> OptionsInfo;
+ 59 std::map<std::string, std::vector<std::string>> AvailableOptionsInfo;
+
+ 61 std::shared_mutex Lock;
+
+
+
+
+Use to record some info about gnupg.
Definition: GpgInfo.h:40
+std::string KeyboxdPath
executable binary path of keyboxd
Definition: GpgInfo.h:52
+std::string GnuPGHomePath
value of —homedir
Definition: GpgInfo.h:54
+std::string AppPath
executable binary path of gnupg
Definition: GpgInfo.h:45
+std::string GpgConfPath
executable binary path of gpgconf
Definition: GpgInfo.h:47
+std::string AssuanPath
executable binary path of assuan
Definition: GpgInfo.h:48
+std::string DatabasePath
key database path
Definition: GpgInfo.h:46
+std::string DirmngrPath
executable binary path of dirmgr
Definition: GpgInfo.h:51
+std::string GnupgVersion
version of gnupg
Definition: GpgInfo.h:42
+std::string CMSPath
executable binary path of cms
Definition: GpgInfo.h:49
+std::string GpgAgentPath
executable binary path of gpg-agent
Definition: GpgInfo.h:50
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgKeyGetter_8h_source.html b/docs/html/GpgKeyGetter_8h_source.html
index 67a13f83..340892fb 100644
--- a/docs/html/GpgKeyGetter_8h_source.html
+++ b/docs/html/GpgKeyGetter_8h_source.html
@@ -140,10 +140,10 @@ $(document).ready(function(){initNavTree('GpgKeyGetter_8h_source.html',''); init
std::map< std::string, GpgKey > keys_cache_
cache the keys with key id
Definition: GpgKeyGetter.h:127
std::mutex keys_cache_mutex_
shared mutex for the keys cache
Definition: GpgKeyGetter.h:133
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgKeyImportExporter_8h_source.html b/docs/html/GpgKeyImportExporter_8h_source.html
index 530a5a9d..c5050b4c 100644
--- a/docs/html/GpgKeyImportExporter_8h_source.html
+++ b/docs/html/GpgKeyImportExporter_8h_source.html
@@ -169,10 +169,10 @@ $(document).ready(function(){initNavTree('GpgKeyImportExporter_8h_source.html','
Definition: GpgKeyImportExporter.h:45
Definition: GpgKeyImportExporter.h:90
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgKeyManager_8h_source.html b/docs/html/GpgKeyManager_8h_source.html
index 08e6cc93..24c3df17 100644
--- a/docs/html/GpgKeyManager_8h_source.html
+++ b/docs/html/GpgKeyManager_8h_source.html
@@ -122,10 +122,10 @@ $(document).ready(function(){initNavTree('GpgKeyManager_8h_source.html',''); ini
Definition: GpgContext.h:64
Definition: GpgKeyManager.h:43
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgKeyOpera_8h_source.html b/docs/html/GpgKeyOpera_8h_source.html
index 11526655..a4740514 100644
--- a/docs/html/GpgKeyOpera_8h_source.html
+++ b/docs/html/GpgKeyOpera_8h_source.html
@@ -133,10 +133,10 @@ $(document).ready(function(){initNavTree('GpgKeyOpera_8h_source.html',''); initR
Definition: GpgContext.h:64
Definition: GpgKeyOpera.h:48
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/GpgUIDOperator_8h_source.html b/docs/html/GpgUIDOperator_8h_source.html
index 95fce843..79720290 100644
--- a/docs/html/GpgUIDOperator_8h_source.html
+++ b/docs/html/GpgUIDOperator_8h_source.html
@@ -120,10 +120,10 @@ $(document).ready(function(){initNavTree('GpgUIDOperator_8h_source.html',''); in
Definition: GpgContext.h:64
Definition: GpgUIDOperator.h:41
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
-static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:170
-int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:239
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
+static GpgContext & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:172
+int GetChannel() const
Get the Channel object.
Definition: GpgFunctionObject.h:258
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/ListedKeyServerTestTask_8h_source.html b/docs/html/ListedKeyServerTestTask_8h_source.html
index 94d7ad5d..96040369 100644
--- a/docs/html/ListedKeyServerTestTask_8h_source.html
+++ b/docs/html/ListedKeyServerTestTask_8h_source.html
@@ -131,7 +131,7 @@ $(document).ready(function(){initNavTree('ListedKeyServerTestTask_8h_source.html
Definition: ListedKeyServerTestTask.h:37
void SignalKeyServerListTestResult(std::vector< KeyServerTestResultType > result)
ListedKeyServerTestTask(const QStringList &urls, int timeout, QWidget *parent=nullptr)
Definition: ListedKeyServerTestTask.cpp:31
-void slot_process_network_reply(int index, QNetworkReply *reply)
Definition: ListedKeyServerTestTask.cpp:73
+void slot_process_network_reply(int index, QNetworkReply *reply)
Definition: ListedKeyServerTestTask.cpp:74
Definition: ListedKeyServerTestTask.h:83
Definition: FileReadTask.cpp:29
diff --git a/docs/html/PassphraseGenerator_8h_source.html b/docs/html/PassphraseGenerator_8h_source.html
index 21fdc673..9e9b11f7 100644
--- a/docs/html/PassphraseGenerator_8h_source.html
+++ b/docs/html/PassphraseGenerator_8h_source.html
@@ -130,8 +130,8 @@ $(document).ready(function(){initNavTree('PassphraseGenerator_8h_source.html',''
std::random_device rd_
Random device.
Definition: PassphraseGenerator.h:77
std::string Generate(int len)
generate passphrase
Definition: PassphraseGenerator.h:60
PassphraseGenerator(int channel=SingletonFunctionObject::GetDefaultChannel())
PassphraseGenerator constructor.
Definition: PassphraseGenerator.h:50
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
Definition: CoreCommonUtil.cpp:31
diff --git a/docs/html/TaskRunnerGetter_8h_source.html b/docs/html/TaskRunnerGetter_8h_source.html
index 2e27e447..0f1a9323 100644
--- a/docs/html/TaskRunnerGetter_8h_source.html
+++ b/docs/html/TaskRunnerGetter_8h_source.html
@@ -119,8 +119,8 @@ $(document).ready(function(){initNavTree('TaskRunnerGetter_8h_source.html','');
-Definition: GpgFunctionObject.h:148
-static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:232
+Definition: GpgFunctionObject.h:150
+static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:251
Definition: TaskRunnerGetter.h:37
Definition: TaskRunner.h:40
Definition: CtxCheckTask.h:33
diff --git a/docs/html/TaskRunner_8h_source.html b/docs/html/TaskRunner_8h_source.html
index 1b930a80..f42f53bd 100644
--- a/docs/html/TaskRunner_8h_source.html
+++ b/docs/html/TaskRunner_8h_source.html
@@ -119,10 +119,13 @@ $(document).ready(function(){initNavTree('TaskRunner_8h_source.html',''); initRe
-
-
-
-
+ 82 QThreadPool thread_pool_{
this};
+
+ 88 void unregister_finished_task(std::string);
+
+
+
+
Definition: TaskRunner.h:40
std::mutex tasks_mutex_
The task queue mutex.
Definition: TaskRunner.h:81
std::map< std::string, Task * > pending_tasks_
The pending tasks.
Definition: TaskRunner.h:80
diff --git a/docs/html/Task_8h_source.html b/docs/html/Task_8h_source.html
index 9a7c11d7..4fe48c18 100644
--- a/docs/html/Task_8h_source.html
+++ b/docs/html/Task_8h_source.html
@@ -111,127 +111,144 @@ $(document).ready(function(){initNavTree('Task_8h_source.html',''); initResizabl
50 using TaskRunnable = std::function<int(DataObjectPtr)>;
51 using TaskCallback = std::function<void(
int, DataObjectPtr)>;
-
+
-
-
-
-
- 63 void (*destroy)(
const void *);
-
-
- 71 size_t GetObjectSize();
-
-
-
- 81 SPDLOG_TRACE(
"append object: {}",
static_cast<void *
>(
this));
- 82 auto *obj_dstr = this->get_heap_ptr(
sizeof(T));
- 83 new ((
void *)obj_dstr->p_obj) T(std::forward<T>(obj));
-
- 85 if (std::is_class_v<T>) {
- 86 auto destructor = [](
const void *x) {
- 87 static_cast<const T *
>(x)->~T();
-
- 89 obj_dstr->destroy = destructor;
-
- 91 obj_dstr->destroy =
nullptr;
-
-
- 94 data_objects_.push(obj_dstr);
-
-
- 103 template <
typename T>
-
- 105 SPDLOG_TRACE(
"called: {}",
static_cast<void *
>(
this));
- 106 auto *obj_dstr = this->get_heap_ptr(
sizeof(T));
- 107 auto *ptr_heap =
new ((
void *)obj_dstr->p_obj) T(std::move(*obj));
- 108 if (std::is_class_v<T>) {
- 109 SPDLOG_TRACE(
"is class");
- 110 auto destructor = [](
const void *x) {
- 111 static_cast<const T *
>(x)->~T();
-
- 113 obj_dstr->destroy = destructor;
-
- 115 obj_dstr->destroy =
nullptr;
-
- 117 data_objects_.push(std::move(obj_dstr));
-
-
- 126 template <
typename T>
-
- 128 SPDLOG_TRACE(
"pop object: {}",
static_cast<void *
>(
this));
- 129 if (data_objects_.empty())
throw std::runtime_error(
"No object to pop");
- 130 auto *obj_dstr = data_objects_.top();
- 131 auto *heap_ptr = (T *)obj_dstr->p_obj;
- 132 auto obj = std::move(*(T *)(heap_ptr));
- 133 this->free_heap_ptr(obj_dstr);
-
-
-
-
-
-
-
- 145 std::stack<Destructor *> data_objects_;
-
- 153 Destructor *get_heap_ptr(
size_t bytes_size);
-
- 160 void free_heap_ptr(Destructor *);
-
-
-
-
- 174 explicit Task(TaskCallback callback, DataObjectPtr data_object =
nullptr);
-
-
- 182 TaskRunnable runnable,
- 183 TaskCallback callback = [](
int,
const std::shared_ptr<DataObject> &) {},
- 184 DataObjectPtr data =
nullptr);
-
- 190 virtual ~Task()
override;
-
-
-
- 203 std::string GetUUID()
const;
-
-
- 210 void SignalTaskFinished();
-
- 216 void SignalTaskPostFinishedDone();
-
-
- 224 void SetFinishAfterRun(
bool finish_after_run);
-
- 231 void SetRTN(
int rtn);
-
-
- 234 const std::string uuid_;
- 235 TaskCallback callback_;
- 236 TaskRunnable runnable_;
- 237 bool finish_after_run_ =
true;
-
- 239 QThread *callback_thread_ =
nullptr;
- 240 DataObjectPtr data_object_ =
nullptr;
-
- 246 void before_finish_task();
-
-
-
- 258 virtual void run()
override;
-
- 265 static std::string generate_uuid();
-
-
+
+
+
+
+
+
+ 65 void (*destroy)(
const void *);
+
+
+ 73 size_t GetObjectSize();
+
+
+
+ 83 SPDLOG_TRACE(
"append object: {}",
static_cast<void *
>(
this));
+ 84 auto *obj_dstr = this->get_heap_ptr(
sizeof(T));
+ 85 new ((
void *)obj_dstr->p_obj) T(std::forward<T>(obj));
+
+ 87 if (std::is_class_v<T>) {
+ 88 auto destructor = [](
const void *x) {
+ 89 static_cast<const T *
>(x)->~T();
+
+ 91 obj_dstr->destroy = destructor;
+
+ 93 obj_dstr->destroy =
nullptr;
+
+
+ 96 data_objects_.push(obj_dstr);
+
+
+ 105 template <
typename T>
+
+ 107 SPDLOG_TRACE(
"called: {}",
static_cast<void *
>(
this));
+ 108 auto *obj_dstr = this->get_heap_ptr(
sizeof(T));
+ 109 auto *ptr_heap =
new ((
void *)obj_dstr->p_obj) T(std::move(*obj));
+ 110 if (std::is_class_v<T>) {
+ 111 SPDLOG_TRACE(
"is class");
+ 112 auto destructor = [](
const void *x) {
+ 113 static_cast<const T *
>(x)->~T();
+
+ 115 obj_dstr->destroy = destructor;
+
+ 117 obj_dstr->destroy =
nullptr;
+
+ 119 data_objects_.push(std::move(obj_dstr));
+
+
+ 128 template <
typename T>
+
+ 130 SPDLOG_TRACE(
"pop object: {}",
static_cast<void *
>(
this));
+ 131 if (data_objects_.empty())
throw std::runtime_error(
"No object to pop");
+ 132 auto *obj_dstr = data_objects_.top();
+ 133 auto *heap_ptr = (T *)obj_dstr->p_obj;
+ 134 auto obj = std::move(*(T *)(heap_ptr));
+ 135 this->free_heap_ptr(obj_dstr);
+
+
+
+
+
+
+
+ 147 std::stack<Destructor *> data_objects_;
+
+ 155 Destructor *get_heap_ptr(
size_t bytes_size);
+
+ 162 void free_heap_ptr(Destructor *);
+
+
+ 169 Task(std::string name = DEFAULT_TASK_NAME);
+
+ 176 explicit Task(TaskRunnable runnable, std::string name = DEFAULT_TASK_NAME,
+ 177 DataObjectPtr data_object =
nullptr,
bool sequency =
true);
+
+
+ 185 TaskRunnable runnable, std::string name, DataObjectPtr data,
+ 186 TaskCallback callback = [](
int,
const std::shared_ptr<DataObject> &) {},
+ 187 bool sequency =
true);
+
+ 193 virtual ~Task()
override;
+
+
+
+ 206 std::string GetUUID()
const;
+
+ 213 std::string GetFullID()
const;
+
+ 220 bool GetSequency()
const;
+
+
+
+
+
+
+
+
+
+
+
+ 249 void SetFinishAfterRun(
bool finish_after_run);
+
+ 256 void SetRTN(
int rtn);
+
+
+ 259 const std::string uuid_;
+ 260 const std::string name_;
+ 261 const bool sequency_ =
true;
+ 262 TaskCallback callback_;
+ 263 TaskRunnable runnable_;
+ 264 bool run_callback_after_runnable_finished_ =
true;
+
+ 266 QThread *callback_thread_ =
nullptr;
+ 267 DataObjectPtr data_object_ =
nullptr;
-
+
+
+ 279 virtual void run()
override;
+
+ 286 static std::string generate_uuid();
+
+
+ 293 void slot_task_run_callback(
int rtn);
+
+
+
+
Definition: TaskRunner.h:40
-DataObject to be passed to the callback function.
Definition: Task.h:59
-void AppendObject(T &&obj)
Definition: Task.h:80
-void AppendObject(T *obj)
Definition: Task.h:104
-T PopObject()
Definition: Task.h:127
+DataObject to be passed to the callback function.
Definition: Task.h:61
+void AppendObject(T &&obj)
Definition: Task.h:82
+void AppendObject(T *obj)
Definition: Task.h:106
+T PopObject()
Definition: Task.h:129
+void SignalTaskRunnableEnd(int rtn)
announce runnable finished
+static const std::string DEFAULT_TASK_NAME
Definition: Task.h:53
+void SignalTaskEnd()
runnable and callabck all finished
Definition: CtxCheckTask.h:33
-
+
diff --git a/docs/html/VersionCheckTask_8h_source.html b/docs/html/VersionCheckTask_8h_source.html
index 5a4c4f89..f9adad99 100644
--- a/docs/html/VersionCheckTask_8h_source.html
+++ b/docs/html/VersionCheckTask_8h_source.html
@@ -134,7 +134,7 @@ $(document).ready(function(){initNavTree('VersionCheckTask_8h_source.html','');
Definition: VersionCheckTask.h:45
void SignalUpgradeVersion(SoftwareVersion version)
-void Run() override
Run - run the task.
Definition: VersionCheckTask.cpp:47
+void Run() override
Run - run the task.
Definition: VersionCheckTask.cpp:48
QNetworkReply * current_reply_
current version info reply
Definition: VersionCheckTask.h:90
VersionCheckTask()
Construct a new Version Check Thread object.
Definition: VersionCheckTask.cpp:38
QNetworkReply * latest_reply_
latest version info reply
Definition: VersionCheckTask.h:89
diff --git a/docs/html/classGpgFrontend_1_1ChannelObject.html b/docs/html/classGpgFrontend_1_1ChannelObject.html
index bfb91315..9234b7ea 100644
--- a/docs/html/classGpgFrontend_1_1ChannelObject.html
+++ b/docs/html/classGpgFrontend_1_1ChannelObject.html
@@ -122,7 +122,7 @@ Inheritance diagram for GpgFrontend::ChannelObject:
-
+
@@ -131,7 +131,7 @@ Inheritance diagram for GpgFrontend::ChannelObject:
-
+