STDFileMgr.h 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #pragma once
  2. #include "afx.h"
  3. #include "OTSFileSys.h"
  4. #include "STDDataDB.h"
  5. #include "DBStoreFile.h"
  6. #include "InclutionSTDData.h"
  7. #include "ElementRange.h"
  8. using namespace OTSDATA;
  9. using namespace OTSSQLITE;
  10. namespace OTSClassifyEngine {
  11. class __declspec(dllexport) CSTDFileMgr : public CDBStoreFile
  12. {
  13. public:
  14. CSTDFileMgr();
  15. virtual ~CSTDFileMgr();
  16. virtual void Close() override
  17. {
  18. m_datastorePtr.reset();
  19. }
  20. //Create
  21. BOOL CreateSTDFile();
  22. // Load/Save
  23. BOOL Load(BOOL a_bClear = TRUE);
  24. // file pathname
  25. CString GetPathName() { return m_strPathName; }
  26. void SetPathName(CString a_strPathName) { m_strPathName = a_strPathName; }
  27. //x-ray
  28. CSTDItemsList GetSTDItemList() { return m_listSTDItem; }
  29. void SetSTDItemList(CSTDItemsList& m_listSTDItem, BOOL a_bClear);
  30. // generate a STDlib
  31. CInclutionSTDDataPtr GenerateSTDLib(IDENTIFY_KIND a_nIdentifyKind);
  32. //get system stdlib by stdtype for example general, special
  33. CInclutionSTDDataPtr GetSysSTDLibByType(SYS_STD_TYPE a_nIdentifyType);
  34. protected:
  35. BOOL GetListSTDItem();
  36. BOOL GetListSTDItem(CSTDItemsList& a_listSTDItem);
  37. //BOOL GetElementRange(const long a_nSTDId, const long nElementSize, CElementRangeList& a_listElementRange);
  38. BOOL GetSTDData(const long a_nSTDId, CSTDItemPtr a_pSTDItem);
  39. //Get DB
  40. CSTDDataDBPtr GetSTDDataDB();
  41. //CElementRangeDBPtr GetElementRangeDB();
  42. // cleanup
  43. void Cleanup();
  44. // initialization
  45. void Init();
  46. // duplication
  47. void Duplicate(const CSTDFileMgr& a_oSource);
  48. // file pathname
  49. CString m_strPathName;
  50. // X-ray list
  51. CSTDItemsList m_listSTDItem;
  52. //database
  53. CSTDDataDBPtr m_pSTDDataDB;
  54. //CElementRangeDBPtr m_pElementRangeDB;
  55. // project file extension
  56. const CString STD_FILE_EXT = _T("db");
  57. // project file filter
  58. const CString STD_FILE_FILTER = _T("STD Files (*.db)|*.db|All Files (*.*)|*.*||");
  59. // STD file system all
  60. const CString STD_FILE_SYS_ALL = _T("System All STD");
  61. // STD file system simple oxide
  62. const CString STD_FILE_SYS_SIMPLE_OXIDE = _T("System simple oxide");
  63. // STD file system complex oxide
  64. const CString STD_FILE_SYS_COMPLEX_OXIDE = _T("System complex oxide");
  65. // STD file system sulfide
  66. const CString STD_FILE_SYS_SULFIDE = _T("System sulfide");
  67. // STD file system nitrides
  68. const CString STD_FILE_SYS_NITRIDES = _T("System nitrides");
  69. // STD ID start
  70. const int STD_START_ID = 10000;
  71. };
  72. typedef std::shared_ptr<CSTDFileMgr> __declspec(dllexport) CSTDFileMgrPtr;
  73. }