#pragma once #include "CppSQLite3.h" #include "dt.h" #include "CProduct.h" #include "CMachineSetup.h" #include "CHardware.h" #include "CModuleConfig.h" #include "CMachineCalibration.h" #include "CSecurity.h" #include "CStatisticCounters.h" #include "CCalibrationConfig.h" #include #include #include using namespace std; namespace ns_db { class __declspec(dllexport) CManageDB { public: static CManageDB* GetInstance(); vector GetAllDataBase(); LONG LoadAllDataBase(); LONG SaveAllDataBase(); string GetCurrentProductPath() { return m_strCurrentProgramPath; }; CHardware* GetCHardware() { return m_pCHardware; }; CModuleConfig* GetCModuleConfig() { return m_pCModuleConfig; }; CStatisticCounters* GetCStatisticCounters() { return m_pCStatisticCounters; }; CProduct* GetCProduct() { return m_pCProduct; }; CMachineSetup* GetCMachineSetup() { return m_pCMachineSetup; }; CMachineCalibration* GetCMachineCalibration() { return m_pCMachineCalibration; }; CSecurity* GetCSecurity() { return m_pCSecurity; }; CCalibrationConfig* GetCCalibrationConfig() { return m_pCCalibrationConfig; }; std::string GetDbNameByTableName(std::string strTableName); private: static vector m_vecDataBase; CHardware* m_pCHardware = nullptr; CSecurity* m_pCSecurity = nullptr; CStatisticCounters* m_pCStatisticCounters = nullptr; CProduct* m_pCProduct = nullptr; CMachineSetup* m_pCMachineSetup = nullptr; CModuleConfig* m_pCModuleConfig = nullptr; CMachineCalibration* m_pCMachineCalibration = nullptr; CCalibrationConfig* m_pCCalibrationConfig = nullptr; string m_strCurrentProgramPath; static CManageDB* m_pInstance; static std::mutex m_Mutex; }; }