PartSizeClass.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #pragma once
  2. #include "XMLSerialization.h"
  3. namespace OTSMODEL {
  4. class __declspec(dllexport) CPartSizeClass : public xmls::ISlo
  5. {
  6. public:
  7. CPartSizeClass(); // constructor
  8. CPartSizeClass(const CPartSizeClass&); // copy constructor
  9. CPartSizeClass(CPartSizeClass*); // copy constructor
  10. CPartSizeClass& operator=(const CPartSizeClass&); // =operator
  11. BOOL operator==(const CPartSizeClass&); // ==operator
  12. virtual ~CPartSizeClass(); // destruct
  13. // serialization
  14. void Serialize(bool isStoring, tinyxml2::XMLDocument * classDoc, tinyxml2::XMLElement * rootNode);
  15. // size class name
  16. CString GetName() { return m_strName; }
  17. void SetName(CString a_strName) { m_strName = a_strName; }
  18. // class data list
  19. std::vector<double>& GetSizeClassList() { return m_listSizeClass; }
  20. void SetSizeClassList(std::vector<double> a_listSizeClass) { m_listSizeClass = a_listSizeClass; }
  21. // validation
  22. BOOL IsValid();
  23. protected:
  24. // cleanup
  25. void Cleanup();
  26. // initialization
  27. void Init();
  28. // duplication
  29. void Duplicate(const CPartSizeClass& a_oSource);
  30. // name
  31. CString m_strName;
  32. // class data list
  33. std::vector<double> m_listSizeClass;
  34. };
  35. typedef std::shared_ptr<CPartSizeClass> __declspec(dllexport) CPartSizeClassPtr;
  36. typedef std::vector<CPartSizeClassPtr> __declspec(dllexport) CPartSizeClassList;
  37. }