SmplMsrResultFileClr.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. #include "stdafx.h"
  2. #include "SmplMsrResultFileClr.h"
  3. #include <COTSUtilityDllFunExport.h>
  4. namespace OTSCLRINTERFACE {
  5. CSmplMsrResultFileClr::CSmplMsrResultFileClr()
  6. {
  7. mResultFile =new CSmplMsrResultFilePtr( new CSmplMsrResultFile());
  8. }
  9. CSmplMsrResultFileClr::CSmplMsrResultFileClr(CSmplMsrResultFilePtr pSmpMsrResultFile)
  10. {
  11. mResultFile = new CSmplMsrResultFilePtr(pSmpMsrResultFile);
  12. }
  13. CSmplMsrResultFileClr::~CSmplMsrResultFileClr()
  14. {
  15. if(mResultFile!=nullptr)
  16. {
  17. delete mResultFile;
  18. mResultFile = NULL;
  19. }
  20. }
  21. CSmplMsrResultFileClr::!CSmplMsrResultFileClr()
  22. {
  23. if (mResultFile != nullptr)
  24. {
  25. delete mResultFile;
  26. mResultFile = NULL;
  27. }
  28. }
  29. CSmplMsrResultFilePtr CSmplMsrResultFileClr::GetCSmplMsrResultFilePtr()
  30. {
  31. return *mResultFile;
  32. }
  33. bool CSmplMsrResultFileClr::SetSEMStageData(CSEMStageDataClr^ a_pSEMStageData)
  34. {
  35. if (a_pSEMStageData == nullptr)
  36. {
  37. LogErrorTrace(__FILE__, __LINE__, _T("(SetSEMStageData) a_pSEMStageData = null"));
  38. return false;
  39. }
  40. CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr();
  41. pSmplMsrRetFile->SetSEMStageData(a_pSEMStageData->GetCSEMStageData());
  42. return true;
  43. }
  44. bool CSmplMsrResultFileClr::SetStage(CStageClr^ a_pStage)
  45. {
  46. if (a_pStage == nullptr)
  47. {
  48. LogErrorTrace(__FILE__, __LINE__, _T("(SetStage) a_pStage = null"));
  49. return false;
  50. }
  51. CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr();
  52. CStagePtr pStage = a_pStage->GetStagePtr();
  53. pSmplMsrRetFile->SetStage(pStage);
  54. return true;
  55. }
  56. bool CSmplMsrResultFileClr::SetSEMStage(CSEMDataGnrClr^ a_pSEMData)
  57. {
  58. if (a_pSEMData == nullptr)
  59. {
  60. LogErrorTrace(__FILE__, __LINE__, _T("(SetSEMStage) a_pSEMData = null"));
  61. return false;
  62. }
  63. CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr();
  64. CSEMDataGnrPtr pSEMDataGnr = a_pSEMData->GetCSEMDataGnrPtr();
  65. pSmplMsrRetFile->SetSEMStage(pSEMDataGnr);
  66. return true;
  67. }
  68. bool CSmplMsrResultFileClr::SetSample(COTSSampleClr^ a_pSample)
  69. {
  70. if (a_pSample == nullptr)
  71. {
  72. LogErrorTrace(__FILE__, __LINE__, _T("(SetSample) a_pSample = null"));
  73. return false;
  74. }
  75. CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr();
  76. COTSSamplePtr pSample = a_pSample->GetSamplePtr();
  77. pSmplMsrRetFile->SetSample(pSample);
  78. return true;
  79. }
  80. bool CSmplMsrResultFileClr::SetSwitch(bool a_bSwitch)
  81. {
  82. CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr();
  83. ASSERT(pSmplMsrRetFile);
  84. if (!pSmplMsrRetFile)
  85. {
  86. LogErrorTrace(__FILE__, __LINE__, _T("SetSwitch: can't get sample measure result file pointer."));
  87. return false;
  88. }
  89. pSmplMsrRetFile->SetSwitch(a_bSwitch);
  90. return true;
  91. }
  92. List<COTSFieldDataClr^>^ CSmplMsrResultFileClr::GetFieldData()
  93. {
  94. List<COTSFieldDataClr^>^ fds = gcnew List<COTSFieldDataClr^>();
  95. auto fields = mResultFile->get()->GetFieldData();
  96. for each (auto f in fields)
  97. {
  98. fds->Add(gcnew COTSFieldDataClr(f));
  99. }
  100. return fds;
  101. }
  102. bool CSmplMsrResultFileClr::SetFieldData(List<COTSFieldDataClr^>^ a_listFieldData)
  103. {
  104. if (a_listFieldData == nullptr)
  105. {
  106. LogErrorTrace(__FILE__, __LINE__, _T("(SetFieldData) a_listFieldData = null"));
  107. return false;
  108. }
  109. CSmplMsrResultFilePtr pSmplMsrRetFile = this->GetCSmplMsrResultFilePtr();
  110. std::vector<COTSFieldDataPtr> SMRFieldVec;
  111. SMRFieldVec.clear();
  112. for (int i = 0; i < a_listFieldData->Count; i++)
  113. {
  114. COTSFieldDataPtr pFieldData = a_listFieldData[i]->GetOTSFieldDataPtr();
  115. SMRFieldVec.push_back(pFieldData);
  116. }
  117. pSmplMsrRetFile->SetFieldData(SMRFieldVec);
  118. return true;
  119. }
  120. }