SmplMsrResultFile.h 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. #pragma once
  2. #include "SEMStageData.h"
  3. #include "Stage.h"
  4. #include "SEMStageData.h"
  5. #include "OTSSample.h"
  6. #include "OTSFieldData.h"
  7. #include "SEMDataGnr.h"
  8. namespace OTSMODEL {
  9. using namespace OTSDATA;
  10. // sample measure result file mark
  11. const int SMPL_MSR_RESULT_FILE_MARK = 'S' + 'M' + 'P' + 'L' + 'M' + 'S' + 'R' + 'R' + 'E' + 'S' + 'U' + 'L' + 'T';
  12. // sample measure result file version
  13. const CString SMPL_MSR_RESULT_FILE_VERSION = _T("1.1.1");
  14. // sample measure result file extension
  15. const CString SMPL_MSR_RESULT_FILE_EXT = _T(".rst");
  16. const CString SMPL_MSR_RESULT_FILE_FILTER = _T("Sample Measure Result Files (*.rst)|*.rst||");
  17. // fields file sub-directory string
  18. const CString SMPL_MSR_RESULT_FIELDS_FILE_SUBFOLDER = _T("FIELD_FILES");
  19. // BSE file name
  20. const CString SMPL_MSR_RESULT_FIELDS_BSE = _T("Field");
  21. // search x-ray file name
  22. const CString SMPL_MSR_RESULT_SEARCH_X_RAY_FILE = _T("SearchXray.db");
  23. // analysis x-ray file name
  24. const CString SMPL_MSR_RESULT_ANALYSIS_X_RAY_FILE = _T("Inclusion.db");
  25. // Inclusion file name
  26. const CString SMPL_MSR_RESULT_INCLUSION_FILE = _T("Inclusion.db");
  27. class __declspec(dllexport) CSmplMsrResultFile :public xmls::ISlo
  28. {
  29. public:
  30. // constructor
  31. CSmplMsrResultFile(); // constructor
  32. CSmplMsrResultFile(const CSmplMsrResultFile&); // copy constructor
  33. CSmplMsrResultFile(CSmplMsrResultFile*); // copy constructor
  34. CSmplMsrResultFile& operator=(const CSmplMsrResultFile&); // =operator
  35. BOOL operator==(const CSmplMsrResultFile&); // ==operator
  36. virtual ~CSmplMsrResultFile(); // destructor
  37. // serialization
  38. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  39. // file version string
  40. CString GetFileVersion() { return m_strFileVersion; }
  41. void SetFileVersion(CString a_strFileVersion) { m_strFileVersion = a_strFileVersion; }
  42. // SEM sample stage
  43. CSEMStageDataPtr GetSEMStageData() { return m_pSEMStageData; }
  44. void SetSEMStageData(CSEMStageDataPtr a_pSEMStageData);
  45. // sample stage
  46. CStagePtr GetStage() { return m_pStage; }
  47. void SetStage(CStagePtr a_pStage);
  48. // SEM condition
  49. CSEMDataGnrPtr GetSEMStage() { return m_pSEMData; }
  50. void SetSEMStage(CSEMDataGnrPtr a_pSEMData);
  51. // sample setting
  52. COTSSamplePtr GetSample() { return m_pSample; }
  53. void SetSample(COTSSamplePtr a_pSample);
  54. // switch
  55. bool GetSwitch() { return m_bSwitch; }
  56. void SetSwitch(bool a_bSwitch) { m_bSwitch = a_bSwitch; }
  57. // fields
  58. COTSFieldDataList& GetFieldData() { return m_listFieldData; }
  59. void SetFieldData(COTSFieldDataList& a_listFieldData);
  60. COTSParticleList GetAllParticles();
  61. bool GetSTDMapedParticleList(std::map<std::string, COTSParticleList>* mapSameSTDPartList);
  62. protected:
  63. // cleanup
  64. void Cleanup();
  65. // initialization
  66. void Init();
  67. // duplication
  68. void Duplicate(const CSmplMsrResultFile& a_oSource);
  69. // file version string
  70. CString m_strFileVersion;
  71. // SEM sample stage
  72. CSEMStageDataPtr m_pSEMStageData;
  73. // sample stage
  74. CStagePtr m_pStage;
  75. CSEMDataGnrPtr m_pSEMData;
  76. // sample setting
  77. COTSSamplePtr m_pSample;
  78. // switch
  79. BOOL m_bSwitch;
  80. // fields
  81. COTSFieldDataList m_listFieldData;
  82. };
  83. typedef std::shared_ptr<CSmplMsrResultFile> __declspec(dllexport) CSmplMsrResultFilePtr;
  84. typedef std::vector<CSmplMsrResultFilePtr> __declspec(dllexport) CSmplMsrResultFileList;
  85. }