#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; }; private: static vector m_vecDataBase; CHardware* m_pCHardware; CSecurity* m_pCSecurity; CStatisticCounters* m_pCStatisticCounters; CProduct* m_pCProduct; CMachineSetup* m_pCMachineSetup; CModuleConfig* m_pCModuleConfig; CMachineCalibration* m_pCMachineCalibration; CCalibrationConfig* m_pCCalibrationConfig; string m_strCurrentProgramPath; static CManageDB* m_pInstance; static std::mutex m_Mutex; }; }