Files
RCiRoot e3f7733316 V20260829-2.6.1
完成框架目录和模块重构;新增核心、单例、工具、加密及框架 SDK;统一任务、相机和 RPC 接口,并增加离线检测、相机标定、备份恢复、版本管理、崩溃守护和心跳监控功能。
2026-09-20 16:01:09 +08:00

73 lines
2.0 KiB
C++

#pragma once
#include <atomic>
#include <map>
#include <string>
#include <vector>
#include <euiSingletonGlobal.h>
#include <QObject>
#include <QMutex>
#include <QString>
#include <QVariant>
#include <configCacheStore.h>
#include <global.h>
#include <eui_tools/json/deferredJsonWriter.h>
#include <eui_tools/json/generalJsonParsing.h>
#include <eui_tools/sql/qSqlBase.h>
#include <systemConfig.h>
#include <type.h>
#include <translation.h>
class EUI_SERVICE_API appConfig : public QObject {
Q_OBJECT
public:
appConfig();
appConfig(const appConfig&) = delete;
appConfig& operator=(const appConfig&) = delete;
~appConfig();
void init();
void releaseRuntimeResources();
void saveSettingJson();
DeferredJsonWriter& configSave();
const DeferredJsonWriter& configSave() const;
void updateBackendConfig(const nlohmann::ordered_json& backendConfig);
nlohmann::ordered_json& getBackendConfig();
const nlohmann::ordered_json& getBackendConfig() const;
MissionConfig& getMissionConfig();
const MissionConfig& getMissionConfig() const;
void removeAvoidMapItems(nlohmann::json& json) const;
void removeAvoidMapItems(nlohmann::ordered_json& json) const;
std::atomic<bool> exitWithRestart = false;
std::string missionJsonPath;
std::string imgSavePath;
HWND consoleHandle = nullptr;
std::vector<viewerStruct> viewDatas;
std::string softwareTile;
const std::map<std::string, bool> avoidMap = {};
sqliteDB* database = nullptr;
MissionConfig missionConfig;
runtimeDataCacheStore* cacheStore = nullptr;
private:
void initDataBase();
void loadSetting();
void parsingSettingJson();
void syncCompatDataFromMissionConfig();
nlohmann::json settingJson;
std::string jsonVersion;
std::string objectSelect;
QMutex configIoMutex;
DeferredJsonWriter configSave_;
std::atomic<bool> isConfigLoaded{ false }, isdataBaseInited{ false };
};
EUI_SERVICE_API appConfig& appConfigService();