00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef __itkMetaDataObjectBase_h
00021 #define __itkMetaDataObjectBase_h
00022
00023 #include "itkLightObject.h"
00024 #include <typeinfo>
00025 #include <iostream>
00026
00027 namespace itk {
00038 class ITKCommon_EXPORT MetaDataObjectBase : public LightObject
00039 {
00040 public:
00042 typedef MetaDataObjectBase Self;
00043 typedef LightObject Superclass;
00044 typedef SmartPointer<Self> Pointer;
00045 typedef SmartPointer<const Self> ConstPointer;
00046
00047
00049 itkTypeMacro(MetaDataObjectBase, LightObject);
00050
00055 virtual const char * GetMetaDataObjectTypeName(void) const;
00056
00061 virtual const std::type_info & GetMetaDataObjectTypeInfo(void) const;
00062
00067 virtual void Print(std::ostream& os) const;
00068 protected:
00069
00071
00072 static Pointer New(void);
00073
00077 virtual ~MetaDataObjectBase();
00078 MetaDataObjectBase();
00079 private:
00080
00081 MetaDataObjectBase(const Self &);
00082 void operator=(const Self&);
00083 };
00084 }
00086
00087 #endif //__itkMetaDataObjectBase_h
00088
00089