#pragma once #include "afx.h" #include "OTSFileSys.h" #include "STDDataDB.h" #include "DBStoreFile.h" #include "InclutionSTDData.h" #include "ElementRange.h" using namespace OTSDATA; using namespace OTSSQLITE; namespace OTSClassifyEngine { class __declspec(dllexport) CSTDFileMgr : public CDBStoreFile { public: CSTDFileMgr(); virtual ~CSTDFileMgr(); virtual void Close() override { m_datastorePtr.reset(); } //Create BOOL CreateSTDFile(); // Load/Save BOOL Load(BOOL a_bClear = TRUE); // file pathname CString GetPathName() { return m_strPathName; } void SetPathName(CString a_strPathName) { m_strPathName = a_strPathName; } //x-ray CSTDItemsList GetSTDItemList() { return m_listSTDItem; } void SetSTDItemList(CSTDItemsList& m_listSTDItem, BOOL a_bClear); // generate a STDlib CInclutionSTDDataPtr GenerateSTDLib(IDENTIFY_KIND a_nIdentifyKind); //get system stdlib by stdtype for example general, special CInclutionSTDDataPtr GetSysSTDLibByType(SYS_STD_TYPE a_nIdentifyType); protected: BOOL GetListSTDItem(); BOOL GetListSTDItem(CSTDItemsList& a_listSTDItem); //BOOL GetElementRange(const long a_nSTDId, const long nElementSize, CElementRangeList& a_listElementRange); BOOL GetSTDData(const long a_nSTDId, CSTDItemPtr a_pSTDItem); //Get DB CSTDDataDBPtr GetSTDDataDB(); //CElementRangeDBPtr GetElementRangeDB(); // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CSTDFileMgr& a_oSource); // file pathname CString m_strPathName; // X-ray list CSTDItemsList m_listSTDItem; //database CSTDDataDBPtr m_pSTDDataDB; //CElementRangeDBPtr m_pElementRangeDB; // project file extension const CString STD_FILE_EXT = _T("db"); // project file filter const CString STD_FILE_FILTER = _T("STD Files (*.db)|*.db|All Files (*.*)|*.*||"); // STD file system all const CString STD_FILE_SYS_ALL = _T("System All STD"); // STD file system simple oxide const CString STD_FILE_SYS_SIMPLE_OXIDE = _T("System simple oxide"); // STD file system complex oxide const CString STD_FILE_SYS_COMPLEX_OXIDE = _T("System complex oxide"); // STD file system sulfide const CString STD_FILE_SYS_SULFIDE = _T("System sulfide"); // STD file system nitrides const CString STD_FILE_SYS_NITRIDES = _T("System nitrides"); // STD ID start const int STD_START_ID = 10000; }; typedef std::shared_ptr __declspec(dllexport) CSTDFileMgrPtr; }