#pragma once #include "SEMStageData.h" #include "Stage.h" #include "SEMStageData.h" #include "OTSSample.h" #include "OTSFieldData.h" #include "SEMDataGnr.h" namespace OTSMODEL { using namespace OTSDATA; // sample measure result file mark const int SMPL_MSR_RESULT_FILE_MARK = 'S' + 'M' + 'P' + 'L' + 'M' + 'S' + 'R' + 'R' + 'E' + 'S' + 'U' + 'L' + 'T'; // sample measure result file version const CString SMPL_MSR_RESULT_FILE_VERSION = _T("1.1.1"); // sample measure result file extension const CString SMPL_MSR_RESULT_FILE_EXT = _T(".rst"); const CString SMPL_MSR_RESULT_FILE_FILTER = _T("Sample Measure Result Files (*.rst)|*.rst||"); // fields file sub-directory string const CString SMPL_MSR_RESULT_FIELDS_FILE_SUBFOLDER = _T("FIELD_FILES"); // BSE file name const CString SMPL_MSR_RESULT_FIELDS_BSE = _T("Field"); // search x-ray file name const CString SMPL_MSR_RESULT_SEARCH_X_RAY_FILE = _T("SearchXray.db"); // analysis x-ray file name const CString SMPL_MSR_RESULT_ANALYSIS_X_RAY_FILE = _T("Inclusion.db"); // Inclusion file name const CString SMPL_MSR_RESULT_INCLUSION_FILE = _T("Inclusion.db"); class __declspec(dllexport) CSmplMsrResultFile :public xmls::ISlo { public: // constructor CSmplMsrResultFile(); // constructor CSmplMsrResultFile(const CSmplMsrResultFile&); // copy constructor CSmplMsrResultFile(CSmplMsrResultFile*); // copy constructor CSmplMsrResultFile& operator=(const CSmplMsrResultFile&); // =operator BOOL operator==(const CSmplMsrResultFile&); // ==operator virtual ~CSmplMsrResultFile(); // destructor // serialization void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode); // file version string CString GetFileVersion() { return m_strFileVersion; } void SetFileVersion(CString a_strFileVersion) { m_strFileVersion = a_strFileVersion; } // SEM sample stage CSEMStageDataPtr GetSEMStageData() { return m_pSEMStageData; } void SetSEMStageData(CSEMStageDataPtr a_pSEMStageData); // sample stage CStagePtr GetStage() { return m_pStage; } void SetStage(CStagePtr a_pStage); // SEM condition CSEMDataGnrPtr GetSEMStage() { return m_pSEMData; } void SetSEMStage(CSEMDataGnrPtr a_pSEMData); // sample setting COTSSamplePtr GetSample() { return m_pSample; } void SetSample(COTSSamplePtr a_pSample); // switch bool GetSwitch() { return m_bSwitch; } void SetSwitch(bool a_bSwitch) { m_bSwitch = a_bSwitch; } // fields COTSFieldDataList& GetFieldData() { return m_listFieldData; } void SetFieldData(COTSFieldDataList& a_listFieldData); COTSParticleList GetAllParticles(); bool GetSTDMapedParticleList(std::map* mapSameSTDPartList); protected: // cleanup void Cleanup(); // initialization void Init(); // duplication void Duplicate(const CSmplMsrResultFile& a_oSource); // file version string CString m_strFileVersion; // SEM sample stage CSEMStageDataPtr m_pSEMStageData; // sample stage CStagePtr m_pStage; CSEMDataGnrPtr m_pSEMData; // sample setting COTSSamplePtr m_pSample; // switch BOOL m_bSwitch; // fields COTSFieldDataList m_listFieldData; }; typedef std::shared_ptr __declspec(dllexport) CSmplMsrResultFilePtr; typedef std::vector __declspec(dllexport) CSmplMsrResultFileList; }