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;
00039
00044 virtual void Print(std::ostream& os) const;
00045
00046
00047
00048 class MetaDataDictionaryMapType
00049 : public std::map<std::string, MetaDataObjectBase::Pointer>
00050 {
00051 };
00052
00053 typedef MetaDataDictionaryMapType::iterator Iterator;
00054 typedef MetaDataDictionaryMapType::const_iterator ConstIterator;
00055
00056
00057 MetaDataDictionary();
00058
00059 MetaDataDictionary(const MetaDataDictionary&);
00060
00061 void operator=(const MetaDataDictionary&);
00062
00063
00064 virtual ~MetaDataDictionary();
00065
00069 std::vector<std::string> GetKeys() const;
00070
00071
00072
00073
00074
00075 MetaDataObjectBase::Pointer &operator [](const std::string &);
00076 const MetaDataObjectBase * operator [](const std::string &) const;
00077 bool HasKey (const std::string &);
00078
00079
00085 #if !defined(CABLE_CONFIGURATION)
00086 Iterator Begin();
00087 ConstIterator Begin() const;
00088 #endif
00089
00090
00092 #if !defined(CABLE_CONFIGURATION)
00093 Iterator End();
00094 ConstIterator End() const;
00095 #endif
00096
00097
00099 #if !defined(CABLE_CONFIGURATION)
00100 Iterator Find(const std::string & key);
00101 ConstIterator Find(const std::string & key) const;
00102 #endif
00103
00104
00105 private:
00106 MetaDataDictionaryMapType *m_Dictionary;
00107 };
00108
00109 }
00110 #endif // __itkMetaDataDictionary_h
00111
00112