00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef __itkMetaDataDictionary_h
00018 #define __itkMetaDataDictionary_h
00019
00020 #include "itkMetaDataObjectBase.h"
00021 #include <vector>
00022 #include <map>
00023 #include <string>
00024
00025 namespace itk
00026 {
00027
00035 class ITKCommon_EXPORT MetaDataDictionary
00036 {
00037 public:
00038 typedef MetaDataDictionary Self;
00043 virtual void Print(std::ostream& os) const;
00044
00045
00046
00047 class MetaDataDictionaryMapType
00048 : public std::map<std::string, MetaDataObjectBase::Pointer>
00049 {
00050 };
00051
00052 typedef MetaDataDictionaryMapType::iterator Iterator;
00053 typedef MetaDataDictionaryMapType::const_iterator ConstIterator;
00054
00055
00056 MetaDataDictionary();
00057
00058 MetaDataDictionary(const MetaDataDictionary&);
00059
00060 void operator=(const MetaDataDictionary&);
00061
00062
00063 virtual ~MetaDataDictionary();
00064
00068 std::vector<std::string> GetKeys() const;
00069
00070
00071
00072
00073
00074 MetaDataObjectBase::Pointer &operator [](const std::string &);
00075 const MetaDataObjectBase * operator [](const std::string &) const;
00076 bool HasKey (const std::string &) const;
00077
00078
00084 #if !defined(CABLE_CONFIGURATION)
00085 Iterator Begin();
00086 ConstIterator Begin() const;
00087 #endif
00088
00089
00091 #if !defined(CABLE_CONFIGURATION)
00092 Iterator End();
00093 ConstIterator End() const;
00094 #endif
00095
00096
00098 #if !defined(CABLE_CONFIGURATION)
00099 Iterator Find(const std::string & key);
00100 ConstIterator Find(const std::string & key) const;
00101 #endif
00102
00103
00104 private:
00105 MetaDataDictionaryMapType *m_Dictionary;
00106 };
00107
00108 }
00109 #endif // __itkMetaDataDictionary_h
00110