00001 /*========================================================================= 00002 00003 Program: F.R.E.E. - flexible registration evaluation engine 00004 Version: v.1.0.0 00005 Date: $Date: 2006/09/01 12:00:00 $ 00006 Module: $RCSfile: freControllerProfileBase.h,v $ 00007 Language: C++ 00008 00009 00010 00011 Copyright (c) 2007 Ralf o Floca (Department of Medical Informatics, 00012 Institute for Medical Biometry and Informatics, University of Heidelberg, 00013 Germany). All rights reserved. 00014 See FREECopyright.txt or http://www.mi.med.uni-hd.de/free/copyright.htm 00015 for details. 00016 00017 This software is distributed WITHOUT ANY WARRANTY; without even 00018 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00019 PURPOSE. See the above copyright notices for more information. 00020 00021 =========================================================================*/ 00022 #ifndef __freControllerProfileBase_h 00023 #define __freControllerProfileBase_h 00024 00025 #include "freElementals.h" 00026 #include "freProfileInheritance.h" 00027 #include "freProfileSubComponents.h" 00028 #include "freProfileParameters.h" 00029 #include "freProfileMediaMap.h" 00030 00031 #include "itkLightObject.h" 00032 00033 namespace FREE 00034 { 00035 namespace CtrlProfile 00036 { 00037 00047 class ControllerProfileBase : public XMLStreamObject, public itk::LightObject 00048 { 00049 public: 00050 typedef ControllerProfileBase Self; 00051 typedef XMLStreamObject Superclass; 00052 typedef itk::SmartPointer<Self> Pointer; 00053 typedef itk::SmartPointer<const Self> ConstPointer; 00054 00055 itkTypeMacro(ControllerProfileBase, XMLStreamObject); 00056 itkNewMacro(ControllerProfileBase); 00057 00058 const std::string& ControllerID() const { return m_sControllerID; }; 00059 std::string& ControllerID() { return m_sControllerID; }; 00060 00061 const ProfileInheritance& Inheritance() const { return m_Inheritance; }; 00062 ProfileInheritance& Inheritance() { return m_Inheritance; }; 00063 00064 const std::string& Description() const { return m_sDescription; }; 00065 std::string& Description() { return m_sDescription; }; 00066 00067 const ProfileParameters& Parameters() const { return m_Parameters; }; 00068 ProfileParameters& Parameters() { return m_Parameters; }; 00069 00070 const ProfileSubComponents& SubComponents() const { return m_SubComponents; }; 00071 ProfileSubComponents& SubComponents() { return m_SubComponents; }; 00072 00073 const ProfileMediaMap& MediaMap() const { return m_MediaMap; }; 00074 ProfileMediaMap& MediaMap() { return m_MediaMap; }; 00075 00078 bool IsRelatedTo(const std::string& sControllerID) const; 00079 00081 ControllerProfileBase& operator = (const ControllerProfileBase& rProfile); 00082 00083 virtual void Reset(); 00084 00085 protected: 00086 ControllerProfileBase(); 00087 00088 virtual ~ControllerProfileBase(); 00089 00091 virtual void SubElementLoadProcessing(const std::string& rsXMLSubTag, const std::string& rsXMLSubElement, const std::string& rsXMLSubData); 00092 00094 virtual std::string SaveData(const unsigned int& iDepth, bool& bHasSubElements) const; 00095 00097 std::string m_sControllerID; 00098 00100 ProfileInheritance m_Inheritance; 00101 00104 std::string m_sDescription; 00105 00107 ProfileParameters m_Parameters; 00108 00110 ProfileSubComponents m_SubComponents; 00111 00113 ProfileMediaMap m_MediaMap; 00114 00115 private: 00117 ControllerProfileBase( const ControllerProfileBase& rProfile ); 00118 }; 00119 00120 }//end of namespace CtrlProfile 00121 }//end of namespace FREE 00122 00123 #endif
1.5.3 written by Dimitri van Heesch,
© 1997-2000