00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MetaDataObjectBase_h_h
00021 #define MetaDataObjectBase_h_h
00022
00023 #if defined(_MSC_VER)
00024 #pragma warning ( disable : 4786 )
00025 #endif
00026
00027 #include <typeinfo>
00028 #include <iostream>
00029 #include "itkLightObject.h"
00030 #include "itkWin32Header.h"
00031
00032 namespace itk {
00041 class ITKCommon_EXPORT MetaDataObjectBase : public LightObject
00042 {
00043 public:
00045 typedef MetaDataObjectBase Self;
00046 typedef LightObject Superclass;
00047 typedef SmartPointer<Self> Pointer;
00048 typedef SmartPointer<const Self> ConstPointer;
00049
00050
00052 itkTypeMacro(MetaDataObjectBase, LightObject);
00053
00058 virtual const char * GetMetaDataObjectTypeName(void) const;
00063 virtual const std::type_info & GetMetaDataObjectTypeInfo(void) const;
00068 virtual void Print(std::ostream& os) const;
00069 protected:
00071
00072 static Pointer New(void);
00076 virtual ~MetaDataObjectBase();
00077 MetaDataObjectBase();
00078 private:
00079
00080 MetaDataObjectBase(const Self &);
00081 void operator=(const Self&);
00082 };
00083 }
00084
00085 #endif //MetaDataObjectBase_h_h
00086