OTSGeneralParameters.cpp 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193
  1. #include "stdafx.h"
  2. #include "OTSGeneralParameters.h"
  3. namespace OTSMODEL
  4. {
  5. // constructor
  6. COTSGeneralParameters::COTSGeneralParameters()
  7. {
  8. Init();
  9. }
  10. // copy constructor
  11. COTSGeneralParameters::COTSGeneralParameters(const COTSGeneralParameters& a_oSource)
  12. {
  13. // can't copy itself
  14. if (&a_oSource == this)
  15. {
  16. return;
  17. }
  18. // copy data over
  19. Duplicate(a_oSource);
  20. }
  21. // copy constructor
  22. COTSGeneralParameters::COTSGeneralParameters(COTSGeneralParameters* a_poSource)
  23. {
  24. // input check
  25. ASSERT(a_poSource);
  26. if (!a_poSource)
  27. {
  28. return;
  29. }
  30. // can't copy itself
  31. if (a_poSource == this)
  32. {
  33. return;
  34. }
  35. // copy data over
  36. Duplicate(*a_poSource);
  37. }
  38. // =operator
  39. COTSGeneralParameters& COTSGeneralParameters::operator=(const COTSGeneralParameters& a_oSource)
  40. {
  41. // cleanup
  42. Cleanup();
  43. // copy the class data over
  44. Duplicate(a_oSource);
  45. // return class
  46. return *this;
  47. }
  48. // ==operator
  49. BOOL COTSGeneralParameters::operator==(const COTSGeneralParameters& a_oSource)
  50. {
  51. // return test result
  52. return((*m_poPartSTDData.get()) == (*(a_oSource.m_poPartSTDData.get())) &&
  53. (m_strDefaultSampleName.CompareNoCase(a_oSource.m_strDefaultSampleName) == 0) &&
  54. (m_bMeasSwitch == a_oSource.m_bMeasSwitch) &&
  55. (m_strMeasParamFileFolderName.CompareNoCase(a_oSource.m_strMeasParamFileFolderName) == 0) &&
  56. (m_strPartSTDLibFolderName.CompareNoCase(a_oSource.m_strPartSTDLibFolderName) == 0)) &&
  57. (m_StdLibTypeIndex = a_oSource.m_StdLibTypeIndex)&& (m_SteelTechnology = a_oSource.m_SteelTechnology) &&
  58. (m_nDefaultShape == a_oSource.m_nDefaultShape) &&
  59. (m_dDefaultArea == a_oSource.m_dDefaultArea);
  60. }
  61. // detractor
  62. COTSGeneralParameters::~COTSGeneralParameters()
  63. {
  64. Cleanup();
  65. }
  66. // COTSStageData member functions
  67. // serialization
  68. // particle analysis lib
  69. void COTSGeneralParameters::SetPartSTDLib(CPartSTDDataPtr a_poPartSTDData)
  70. {
  71. ASSERT(a_poPartSTDData);
  72. if (!a_poPartSTDData)
  73. {
  74. return;
  75. }
  76. //m_poPartSTDData = CPartSTDDataPtr(new CPartSTDData(*(a_poPartSTDData.get())));
  77. m_poPartSTDData = a_poPartSTDData;
  78. }
  79. void COTSGeneralParameters::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
  80. {
  81. xmls::xString xstrDefaultSampleName;
  82. xmls::xBool xbMeasSwitch;
  83. xmls::xString xstrMeasParamFileFolderName;
  84. xmls::xString xstrPartSTDLibFolderName;
  85. xmls::xString xstrPartSTDLibFileName;
  86. xmls::xInt xnStdLibTypeIndex;
  87. xmls::xInt xnSteelTechnology;
  88. xmls::xInt xnShape;
  89. xmls::xDouble xdArea;
  90. xmls::Slo slo;
  91. slo.Register("DefaultSampleName", &xstrDefaultSampleName);
  92. slo.Register("MeasSwitch", &xbMeasSwitch);
  93. slo.Register("MeasParamFileFolderName", &xstrMeasParamFileFolderName);
  94. slo.Register("PartSTDLibFolderName", &xstrPartSTDLibFolderName);
  95. slo.Register("StdLibFileName", &xstrPartSTDLibFileName);
  96. slo.Register("StdLibTypeIndex", &xnStdLibTypeIndex);
  97. slo.Register("SteelTechnology", &xnSteelTechnology);
  98. //slo.Register("PartSTDData", m_poPartSTDData.get());
  99. slo.Register("DefaultShape", &xnShape);
  100. slo.Register("DefaultArea", &xdArea);
  101. if (isStoring)
  102. {
  103. xstrDefaultSampleName = m_strDefaultSampleName;
  104. xbMeasSwitch = m_bMeasSwitch;
  105. xstrMeasParamFileFolderName = m_strMeasParamFileFolderName;
  106. xstrPartSTDLibFolderName = m_strPartSTDLibFolderName;
  107. xstrPartSTDLibFileName = m_STDLibFileName;
  108. xnStdLibTypeIndex = m_StdLibTypeIndex;
  109. xnSteelTechnology = m_SteelTechnology;
  110. xnShape = (int)m_nDefaultShape;
  111. xdArea = m_dDefaultArea;
  112. slo.Serialize(true, classDoc, rootNode);
  113. }
  114. else
  115. {
  116. slo.Serialize(false, classDoc, rootNode);
  117. m_strDefaultSampleName = xstrDefaultSampleName.value().c_str();
  118. m_bMeasSwitch = xbMeasSwitch.value();
  119. m_strMeasParamFileFolderName = xstrMeasParamFileFolderName.value().c_str();
  120. m_strPartSTDLibFolderName = xstrPartSTDLibFolderName.value().c_str();
  121. m_STDLibFileName = xstrPartSTDLibFileName.value().c_str();
  122. m_StdLibTypeIndex = xnStdLibTypeIndex.value();
  123. m_SteelTechnology = xnSteelTechnology.value();
  124. m_nDefaultShape = (OTSDATA::DOMAIN_SHAPE)xnShape.value();
  125. m_dDefaultArea = xdArea.value();
  126. }
  127. }
  128. // cleanup
  129. void COTSGeneralParameters::Cleanup()
  130. {
  131. // nothing needs to be done at the moment
  132. }
  133. // initialization
  134. void COTSGeneralParameters::Init()
  135. {
  136. m_poPartSTDData = CPartSTDDataPtr(new CPartSTDData());
  137. m_strDefaultSampleName = _T("");
  138. m_bMeasSwitch = TRUE;
  139. m_strMeasParamFileFolderName = _T("");
  140. m_strPartSTDLibFolderName = _T("");
  141. m_StdLibTypeIndex = 0;
  142. m_SteelTechnology = 0;
  143. m_nDefaultShape = DOMAIN_SHAPE::INVALID;
  144. m_dDefaultArea = 0;
  145. }
  146. // duplication
  147. void COTSGeneralParameters::Duplicate(const COTSGeneralParameters& a_oSource)
  148. {
  149. // initialization
  150. Init();
  151. // copy data over
  152. m_poPartSTDData = CPartSTDDataPtr(new CPartSTDData(*(a_oSource.m_poPartSTDData.get())));
  153. m_strDefaultSampleName = a_oSource.m_strDefaultSampleName;
  154. m_bMeasSwitch = a_oSource.m_bMeasSwitch;
  155. m_strMeasParamFileFolderName = a_oSource.m_strMeasParamFileFolderName;
  156. m_strPartSTDLibFolderName = a_oSource.m_strPartSTDLibFolderName;
  157. m_StdLibTypeIndex = a_oSource.m_StdLibTypeIndex;
  158. m_SteelTechnology = a_oSource.m_SteelTechnology;
  159. m_nDefaultShape = a_oSource.m_nDefaultShape;
  160. m_dDefaultArea = a_oSource.m_dDefaultArea;
  161. }
  162. }