#include "stdafx.h" #include "OTSGeneralParameters.h" namespace OTSMODEL { // constructor COTSGeneralParameters::COTSGeneralParameters() { Init(); } // copy constructor COTSGeneralParameters::COTSGeneralParameters(const COTSGeneralParameters& a_oSource) { // can't copy itself if (&a_oSource == this) { return; } // copy data over Duplicate(a_oSource); } // copy constructor COTSGeneralParameters::COTSGeneralParameters(COTSGeneralParameters* a_poSource) { // input check ASSERT(a_poSource); if (!a_poSource) { return; } // can't copy itself if (a_poSource == this) { return; } // copy data over Duplicate(*a_poSource); } // =operator COTSGeneralParameters& COTSGeneralParameters::operator=(const COTSGeneralParameters& a_oSource) { // cleanup Cleanup(); // copy the class data over Duplicate(a_oSource); // return class return *this; } // ==operator BOOL COTSGeneralParameters::operator==(const COTSGeneralParameters& a_oSource) { // return test result return((*m_poPartSTDData.get()) == (*(a_oSource.m_poPartSTDData.get())) && (m_strDefaultSampleName.CompareNoCase(a_oSource.m_strDefaultSampleName) == 0) && (m_bMeasSwitch == a_oSource.m_bMeasSwitch) && (m_strMeasParamFileFolderName.CompareNoCase(a_oSource.m_strMeasParamFileFolderName) == 0) && (m_strPartSTDLibFolderName.CompareNoCase(a_oSource.m_strPartSTDLibFolderName) == 0)) && (m_StdLibTypeIndex = a_oSource.m_StdLibTypeIndex)&& (m_SteelTechnology = a_oSource.m_SteelTechnology) && (m_nDefaultShape == a_oSource.m_nDefaultShape) && (m_dDefaultArea == a_oSource.m_dDefaultArea); } // detractor COTSGeneralParameters::~COTSGeneralParameters() { Cleanup(); } // COTSStageData member functions // serialization // particle analysis lib void COTSGeneralParameters::SetPartSTDLib(CPartSTDDataPtr a_poPartSTDData) { ASSERT(a_poPartSTDData); if (!a_poPartSTDData) { return; } //m_poPartSTDData = CPartSTDDataPtr(new CPartSTDData(*(a_poPartSTDData.get()))); m_poPartSTDData = a_poPartSTDData; } void COTSGeneralParameters::Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode) { xmls::xString xstrDefaultSampleName; xmls::xBool xbMeasSwitch; xmls::xString xstrMeasParamFileFolderName; xmls::xString xstrPartSTDLibFolderName; xmls::xString xstrPartSTDLibFileName; xmls::xInt xnStdLibTypeIndex; xmls::xInt xnSteelTechnology; xmls::xInt xnShape; xmls::xDouble xdArea; xmls::Slo slo; slo.Register("DefaultSampleName", &xstrDefaultSampleName); slo.Register("MeasSwitch", &xbMeasSwitch); slo.Register("MeasParamFileFolderName", &xstrMeasParamFileFolderName); slo.Register("PartSTDLibFolderName", &xstrPartSTDLibFolderName); slo.Register("StdLibFileName", &xstrPartSTDLibFileName); slo.Register("StdLibTypeIndex", &xnStdLibTypeIndex); slo.Register("SteelTechnology", &xnSteelTechnology); //slo.Register("PartSTDData", m_poPartSTDData.get()); slo.Register("DefaultShape", &xnShape); slo.Register("DefaultArea", &xdArea); if (isStoring) { xstrDefaultSampleName = m_strDefaultSampleName; xbMeasSwitch = m_bMeasSwitch; xstrMeasParamFileFolderName = m_strMeasParamFileFolderName; xstrPartSTDLibFolderName = m_strPartSTDLibFolderName; xstrPartSTDLibFileName = m_STDLibFileName; xnStdLibTypeIndex = m_StdLibTypeIndex; xnSteelTechnology = m_SteelTechnology; xnShape = (int)m_nDefaultShape; xdArea = m_dDefaultArea; slo.Serialize(true, classDoc, rootNode); } else { slo.Serialize(false, classDoc, rootNode); m_strDefaultSampleName = xstrDefaultSampleName.value().c_str(); m_bMeasSwitch = xbMeasSwitch.value(); m_strMeasParamFileFolderName = xstrMeasParamFileFolderName.value().c_str(); m_strPartSTDLibFolderName = xstrPartSTDLibFolderName.value().c_str(); m_STDLibFileName = xstrPartSTDLibFileName.value().c_str(); m_StdLibTypeIndex = xnStdLibTypeIndex.value(); m_SteelTechnology = xnSteelTechnology.value(); m_nDefaultShape = (OTSDATA::DOMAIN_SHAPE)xnShape.value(); m_dDefaultArea = xdArea.value(); } } // cleanup void COTSGeneralParameters::Cleanup() { // nothing needs to be done at the moment } // initialization void COTSGeneralParameters::Init() { m_poPartSTDData = CPartSTDDataPtr(new CPartSTDData()); m_strDefaultSampleName = _T(""); m_bMeasSwitch = TRUE; m_strMeasParamFileFolderName = _T(""); m_strPartSTDLibFolderName = _T(""); m_StdLibTypeIndex = 0; m_SteelTechnology = 0; m_nDefaultShape = DOMAIN_SHAPE::INVALID; m_dDefaultArea = 0; } // duplication void COTSGeneralParameters::Duplicate(const COTSGeneralParameters& a_oSource) { // initialization Init(); // copy data over m_poPartSTDData = CPartSTDDataPtr(new CPartSTDData(*(a_oSource.m_poPartSTDData.get()))); m_strDefaultSampleName = a_oSource.m_strDefaultSampleName; m_bMeasSwitch = a_oSource.m_bMeasSwitch; m_strMeasParamFileFolderName = a_oSource.m_strMeasParamFileFolderName; m_strPartSTDLibFolderName = a_oSource.m_strPartSTDLibFolderName; m_StdLibTypeIndex = a_oSource.m_StdLibTypeIndex; m_SteelTechnology = a_oSource.m_SteelTechnology; m_nDefaultShape = a_oSource.m_nDefaultShape; m_dDefaultArea = a_oSource.m_dDefaultArea; } }