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 {
00036 class ITKCommon_EXPORT MetaDataObjectBase : public LightObject
00037 {
00038 public:
00040 typedef MetaDataObjectBase Self;
00041 typedef LightObject Superclass;
00042 typedef SmartPointer<Self> Pointer;
00043 typedef SmartPointer<const Self> ConstPointer;
00044
00045
00047 itkTypeMacro(MetaDataObjectBase, LightObject);
00048
00053 virtual const char * GetMetaDataObjectTypeName(void) const;
00058 virtual const std::type_info & GetMetaDataObjectTypeInfo(void) const;
00063 virtual void Print(std::ostream& os) const;
00064 protected:
00066
00067 static Pointer New(void);
00071 virtual ~MetaDataObjectBase();
00072 MetaDataObjectBase();
00073 private:
00074
00075 MetaDataObjectBase(const Self &);
00076 void operator=(const Self&);
00077 };
00078 }
00079
00080 #endif //__itkMetaDataObjectBase_h
00081