GpgFrontend Project
A Free, Powerful, Easy-to-Use, Compact, Cross-Platform, and Installation-Free OpenPGP(pgp) Crypto Tool.
DataObjectOperator.h
1
29#ifndef GPGFRONTEND_DATAOBJECTOPERATOR_H
30#define GPGFRONTEND_DATAOBJECTOPERATOR_H
31
32#include <json/single_include/nlohmann/json.hpp>
33
34#include "core/GpgFrontendCore.h"
35#include "core/GpgFunctionObject.h"
36#include "core/function/GlobalSettingStation.h"
37
38namespace GpgFrontend {
39
40class GPGFRONTEND_CORE_EXPORT DataObjectOperator
41 : public SingletonFunctionObject<DataObjectOperator> {
42 public:
48 explicit DataObjectOperator(
50
51 std::string SaveDataObj(const std::string &_key, const nlohmann::json &value);
52
53 std::optional<nlohmann::json> GetDataObject(const std::string &_key);
54
55 std::optional<nlohmann::json> GetDataObjectByRef(const std::string &_ref);
56
57 private:
62 void init_app_secure_key();
63
64 GlobalSettingStation &global_setting_station_ =
66 std::filesystem::path app_secure_path_ =
67 global_setting_station_.GetAppConfigPath() /
68 "secure";
69 std::filesystem::path app_secure_key_path_ =
70 app_secure_path_ / "app.key";
71 std::filesystem::path app_data_objs_path_ =
72 global_setting_station_.GetAppDataPath() / "data_objs";
75
76 std::random_device rd_;
77 std::mt19937 mt_ = std::mt19937(rd_());
78 QByteArray hash_key_;
79};
80
81} // namespace GpgFrontend
82
83#endif // GPGFRONTEND_DATAOBJECTOPERATOR_H
Definition: DataObjectOperator.h:41
std::random_device rd_
Random device.
Definition: DataObjectOperator.h:76
QByteArray hash_key_
Hash key.
Definition: DataObjectOperator.h:78
Definition: GlobalSettingStation.h:48
Definition: GpgFunctionObject.h:49
static int GetDefaultChannel()
Get the Default Channel object.
Definition: GpgFunctionObject.h:127
static GlobalSettingStation & GetInstance(int channel=GpgFrontend::GPGFRONTEND_DEFAULT_CHANNEL)
Get the Instance object.
Definition: GpgFunctionObject.h:57
Definition: CoreCommonUtil.cpp:29