RptParamFile.cpp 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. #include "stdafx.h"
  2. #include "RptParamFile.h"
  3. namespace OTSMODEL {
  4. CRptParamFile::CRptParamFile() // constructor
  5. {
  6. Init();
  7. }
  8. CRptParamFile::CRptParamFile(const CRptParamFile& a_oSource) // copy constructor
  9. {
  10. // can't copy itself
  11. if (&a_oSource == this)
  12. {
  13. return;
  14. }
  15. // copy data over
  16. Duplicate(a_oSource);
  17. }
  18. CRptParamFile::CRptParamFile(CRptParamFile* a_poSource) // copy constructor
  19. {
  20. // can't copy itself
  21. if (a_poSource == this)
  22. {
  23. return;
  24. }
  25. // copy data over
  26. Duplicate(*a_poSource);
  27. }
  28. CRptParamFile& CRptParamFile::operator=(const CRptParamFile& a_oSource) // =operator
  29. {
  30. // cleanup
  31. Cleanup();
  32. // copy the class data over
  33. Duplicate(a_oSource);
  34. // return class
  35. return *this;
  36. }
  37. BOOL CRptParamFile::operator==(const CRptParamFile&) // ==operator
  38. {
  39. return FALSE;
  40. }
  41. CRptParamFile::~CRptParamFile() // destructor
  42. {
  43. Cleanup();
  44. }
  45. void CRptParamFile::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode)
  46. {
  47. xmls::xInt xfileMark;
  48. xmls::xString xfileVersion;
  49. xmls::xString xstrSizeFileFolder;
  50. xmls::xString xstrTrigTempFileFolder;
  51. xmls::xString xstrRptTempFileFolder;
  52. xmls::xString xstrRptTempFilePath;
  53. xmls::xString xstrSTDFileFolder;
  54. xmls::xDouble xdScale;
  55. xmls::xString EleColName;
  56. xmls::Slo slo;
  57. xmls::Slo MemberEleColName;
  58. MemberEleColName.Register("strValue", &EleColName);
  59. xmls::xString xstrDefaultComputedColname;
  60. xmls::Slo Sol_DefaultComputedColName;
  61. Sol_DefaultComputedColName.Register("strValue", &xstrDefaultComputedColname);
  62. //xmls::
  63. slo.Register("Version", &xfileVersion);
  64. slo.Register("FileFolderSize", &xstrSizeFileFolder);
  65. slo.Register("FileFolderTrigTemp", &xstrTrigTempFileFolder);
  66. slo.Register("FileFolderRptTemp", &xstrRptTempFileFolder);
  67. slo.Register("FilePathRptTemp", &xstrRptTempFilePath);
  68. slo.Register("FileFolderSTD", &xstrSTDFileFolder);
  69. slo.Register("Scale", &xdScale);
  70. slo.Register("PartSizeFile", m_pPartSizeFile.get());
  71. slo.Register("STDData", m_pSTDData.get());
  72. slo.Register("TriTempFile", m_pTriTempFile.get());
  73. slo.Register("ElementsColName", &MemberEleColName);
  74. slo.Register("DefaultComputedColName", &Sol_DefaultComputedColName);
  75. if (isStoring)
  76. {
  77. xfileMark = RPT_PARAM_FILE_MARK;
  78. xfileVersion = RPT_PARAM_FILE_VERSION;
  79. xstrSizeFileFolder = m_strSizeFileFolder;
  80. xstrTrigTempFileFolder = m_strTrigTempFileFolder;
  81. xstrRptTempFileFolder = m_strRptTempFileFolder;
  82. xstrRptTempFilePath = m_strRptTempFilePath;
  83. xstrSTDFileFolder = m_strSTDFileFolder;
  84. xdScale = m_dScale;
  85. EleColName = m_strElementsColName;
  86. xstrDefaultComputedColname = m_strDefaultComputedColName;
  87. slo.Serialize(true, classDoc, rootNode);
  88. }
  89. else
  90. {
  91. slo.Serialize(false, classDoc, rootNode);
  92. m_strVersion = xfileVersion.value().c_str();
  93. m_strSizeFileFolder = xstrSizeFileFolder.value().c_str();
  94. m_strTrigTempFileFolder = xstrTrigTempFileFolder.value().c_str();
  95. m_strRptTempFileFolder = xstrRptTempFileFolder.value().c_str();
  96. m_strRptTempFilePath = xstrRptTempFilePath.value().c_str();
  97. m_strSTDFileFolder = xstrSTDFileFolder.value().c_str();
  98. m_dScale = xdScale.value();
  99. m_strElementsColName = EleColName.value().c_str();
  100. m_strDefaultComputedColName = xstrDefaultComputedColname.value().c_str();
  101. }
  102. }
  103. void CRptParamFile::SetPartSizeFile(CPartSizeFilePtr a_pPartSizeFile)
  104. {
  105. ASSERT(a_pPartSizeFile);
  106. if (!a_pPartSizeFile)
  107. {
  108. return;
  109. }
  110. m_pPartSizeFile = CPartSizeFilePtr(new CPartSizeFile(*a_pPartSizeFile.get()));
  111. }
  112. void CRptParamFile::SetTriTempFile(CTriTempFilePtr a_pTriTempFile)
  113. {
  114. ASSERT(a_pTriTempFile);
  115. if (!a_pTriTempFile)
  116. {
  117. return;
  118. }
  119. m_pTriTempFile = CTriTempFilePtr(new CTriTempFile(*a_pTriTempFile.get()));
  120. }
  121. void CRptParamFile::SetPartSTDData(CPartSTDDataPtr a_pSTDData)
  122. {
  123. ASSERT(a_pSTDData);
  124. if (!a_pSTDData)
  125. {
  126. return;
  127. }
  128. m_pSTDData = CPartSTDDataPtr(new CPartSTDData(*a_pSTDData.get()));
  129. }
  130. //protected:
  131. // cleanup
  132. void CRptParamFile::Cleanup()
  133. {
  134. }
  135. // initialization
  136. void CRptParamFile::Init()
  137. {
  138. // file version string
  139. m_strVersion = RPT_PARAM_FILE_VERSION;
  140. m_strSizeFileFolder = _T("");
  141. m_strTrigTempFileFolder = _T("");
  142. m_strRptTempFileFolder = _T("");
  143. m_strRptTempFilePath = _T("");
  144. m_strSTDFileFolder = _T("");
  145. m_pSTDData = CPartSTDDataPtr(new CPartSTDData());
  146. m_pPartSizeFile = CPartSizeFilePtr(new CPartSizeFile());
  147. m_pTriTempFile = CTriTempFilePtr(new CTriTempFile());
  148. m_dScale = 1.0;
  149. }
  150. // duplication
  151. void CRptParamFile::Duplicate(const CRptParamFile& a_oSource)
  152. {
  153. // initialization
  154. Init();
  155. // copy data over
  156. m_strVersion = a_oSource.m_strVersion;
  157. m_strSizeFileFolder = a_oSource.m_strSizeFileFolder;
  158. m_strTrigTempFileFolder = a_oSource.m_strTrigTempFileFolder;
  159. m_strRptTempFileFolder = a_oSource.m_strRptTempFileFolder;
  160. m_strRptTempFilePath = a_oSource.m_strRptTempFilePath;
  161. m_strSTDFileFolder = a_oSource.m_strSTDFileFolder;
  162. m_pSTDData = CPartSTDDataPtr(new CPartSTDData(a_oSource.m_pSTDData.get()));
  163. m_pPartSizeFile = CPartSizeFilePtr(new CPartSizeFile(a_oSource.m_pPartSizeFile.get()));
  164. m_pTriTempFile = CTriTempFilePtr(new CTriTempFile(a_oSource.m_pTriTempFile.get()));
  165. m_dScale = a_oSource.m_dScale;
  166. }
  167. }