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;
00060 virtual const std::type_info & GetMetaDataObjectTypeInfo(void) const;
00065 virtual void Print(std::ostream& os) const;
00066 protected:
00068
00069 static Pointer New(void);
00073 virtual ~MetaDataObjectBase();
00074 MetaDataObjectBase();
00075 private:
00076
00077 MetaDataObjectBase(const Self &);
00078 void operator=(const Self&);
00079 };
00080 }
00081
00082 #endif //__itkMetaDataObjectBase_h
00083