#ifndef COMMON_H #define COMMON_H #include #include "utils/Singleton.h" #include #include #include "utils/interface.h" #include "nlohmann/json.hpp" #include "EasySpdLog.h" class Common : public QObject, public Singleton { Q_OBJECT friend class Singleton; public: bool loadConfig(const QString& filePath); bool saveConfig(const QMap& productsCfg, const QMap& workmodeCfg); QString getHostAddress() const; int getSrcPort() const; int getDstPort() const; QMap getProductConfigs(); void setProductConfig(const QMap& productsCfg); QMap getWorkModeConfigs(); void setWorkModeConfigs(const QMap& workmodeCfg); const QMap& getSelectedProducts() const; int getCurrentWorkMode() const; void setCurrentWorkMode(const int workMode); signals: private: Common(); bool saveConfig(); void FilterSelectedProducts(); private: QString m_configFilePath{}; nlohmann::json m_configJson{}; QString m_currentWorkPath{}; // 当前工作路径 std::atomic m_currentMode{ -1 }; // 当前正在进行的工作模式 QString m_ipAddr{}; int m_dstPort{}; int m_srcPort{}; QMap m_modeConfigs{}; // 模式配置 QMap m_productConfigs{}; // 产品配置 QMap m_selectedProduct{}; // 选择的产品 }; #endif // COMMON_H