#pragma once #include "afx.h" #include "DBStoreFile.h" #include "OTSSTDLibDB.h" #include "ParticleEngine/ParticleSTD.h" #include "ParticleEngine/ParticleSTDDB.h" #include "ParticleEngine/ConstantsDataDb.h" #include "ParticleEngine/ZeroElementRulesDataDB.h" #include "ParticleEngine/MaxEDSRulesDataDB.h" using namespace OTSSQLITE; namespace OTSClassifyEngine { class __declspec(dllexport) CSTDLibFileMgr : public CDBStoreFile { public: CSTDLibFileMgr(std::string fileName); virtual ~CSTDLibFileMgr(); virtual void Close() override { m_datastorePtr.reset(); } BOOL CreateSTDLibFile(); CSTDLibPtr GetSTDLib(BOOL bForce = FALSE); // Load/Save BOOL Load(CSTDLibPtr& lib, BOOL bClear = TRUE); BOOL LoadPartSTD(ParticleSTDPtr lib, BOOL bClear = TRUE); BOOL LoadZeroElementRulesData(ParticleSTDPtr lib, BOOL bClear = TRUE); BOOL LoadMaxEDSRulesData(ParticleSTDPtr lib, BOOL bClear = TRUE); std::string LoadConstantsData(BOOL bClear = TRUE); protected: void Init(); void Cleanup(); //Get DB CSTDLibDBPtr GetSTDLibDB(); CParticleSTDDBPtr GetParticleSTDDB(); CConstantsDataDbPtr GetConstantsDataDb(); CMaxEDSRulesDataDBPtr GetMaxEDSRulesDataDB(); CZeroElementRulesDataDBPtr GetZeroElementRulesDataDB(); protected: // file pathname CString m_strPathName; CSTDLibDBPtr m_pSTDLibDB; CParticleSTDDBPtr m_pParticleSTDDB; CZeroElementRulesDataDBPtr m_pZeroElementRulesDataDB; CMaxEDSRulesDataDBPtr m_pMaxEDSRulesDataDB; CConstantsDataDbPtr m_pConstantsDataDb; }; typedef std::shared_ptr CSTDLibFileMgrPtr; }