#include "stdafx.h" #include "SmplMsrResultFileClr.h" #include namespace OTSCLRINTERFACE { CSmplMsrResultFileClr::CSmplMsrResultFileClr() { mResultFile =new CSmplMsrResultFilePtr( new CSmplMsrResultFile()); } CSmplMsrResultFileClr::CSmplMsrResultFileClr(CSmplMsrResultFilePtr pSmpMsrResultFile) { mResultFile = new CSmplMsrResultFilePtr(pSmpMsrResultFile); } CSmplMsrResultFileClr::~CSmplMsrResultFileClr() { if(mResultFile!=nullptr) { delete mResultFile; mResultFile = NULL; } } CSmplMsrResultFileClr::!CSmplMsrResultFileClr() { if (mResultFile != nullptr) { delete mResultFile; mResultFile = NULL; } } CSmplMsrResultFilePtr CSmplMsrResultFileClr::GetCSmplMsrResultFilePtr() { return *mResultFile; } bool CSmplMsrResultFileClr::SetSEMStageData(CSEMStageDataClr^ a_pSEMStageData) { if (a_pSEMStageData == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("(SetSEMStageData) a_pSEMStageData = null")); return false; } CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr(); pSmplMsrRetFile->SetSEMStageData(a_pSEMStageData->GetCSEMStageData()); return true; } bool CSmplMsrResultFileClr::SetStage(CStageClr^ a_pStage) { if (a_pStage == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("(SetStage) a_pStage = null")); return false; } CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr(); CStagePtr pStage = a_pStage->GetStagePtr(); pSmplMsrRetFile->SetStage(pStage); return true; } bool CSmplMsrResultFileClr::SetSEMStage(CSEMDataGnrClr^ a_pSEMData) { if (a_pSEMData == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("(SetSEMStage) a_pSEMData = null")); return false; } CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr(); CSEMDataGnrPtr pSEMDataGnr = a_pSEMData->GetCSEMDataGnrPtr(); pSmplMsrRetFile->SetSEMStage(pSEMDataGnr); return true; } bool CSmplMsrResultFileClr::SetSample(COTSSampleClr^ a_pSample) { if (a_pSample == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("(SetSample) a_pSample = null")); return false; } CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr(); COTSSamplePtr pSample = a_pSample->GetSamplePtr(); pSmplMsrRetFile->SetSample(pSample); return true; } bool CSmplMsrResultFileClr::SetSwitch(bool a_bSwitch) { CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr(); ASSERT(pSmplMsrRetFile); if (!pSmplMsrRetFile) { LogErrorTrace(__FILE__, __LINE__, _T("SetSwitch: can't get sample measure result file pointer.")); return false; } pSmplMsrRetFile->SetSwitch(a_bSwitch); return true; } List^ CSmplMsrResultFileClr::GetFieldData() { List^ fds = gcnew List(); auto fields = mResultFile->get()->GetFieldData(); for each (auto f in fields) { fds->Add(gcnew COTSFieldDataClr(f)); } return fds; } bool CSmplMsrResultFileClr::SetFieldData(List^ a_listFieldData) { if (a_listFieldData == nullptr) { LogErrorTrace(__FILE__, __LINE__, _T("(SetFieldData) a_listFieldData = null")); return false; } CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr(); std::vector SMRFieldVec; SMRFieldVec.clear(); for (int i = 0; i < a_listFieldData->Count; i++) { COTSFieldDataPtr pFieldData = a_listFieldData[i]->GetOTSFieldDataPtr(); SMRFieldVec.push_back(pFieldData); } pSmplMsrRetFile->SetFieldData(SMRFieldVec); return true; } }