00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef MetaDataDictionary_h_h
00021 #define MetaDataDictionary_h_h
00022
00023 #if defined(_MSC_VER)
00024 #pragma warning ( disable : 4786 )
00025 #endif
00026
00027 #include <vector>
00028 #include <map>
00029 #include <string>
00030 #include "itkMetaDataObjectBase.h"
00031
00032 namespace itk
00033 {
00034
00042 class ITKCommon_EXPORT MetaDataDictionary
00043 {
00044 public:
00045 typedef MetaDataDictionary Self;
00050 virtual void Print(std::ostream& os) const;
00051
00052
00053
00054 class MetaDataDictionaryMapType
00055 : public std::map<std::string, MetaDataObjectBase::Pointer>
00056 {
00057 };
00058
00059 typedef MetaDataDictionaryMapType::iterator Iterator;
00060 typedef MetaDataDictionaryMapType::const_iterator ConstIterator;
00061
00062
00063 MetaDataDictionary();
00064
00065 MetaDataDictionary(const MetaDataDictionary&);
00066
00067 void operator=(const MetaDataDictionary&);
00068
00069
00070 virtual ~MetaDataDictionary();
00071
00075 std::vector<std::string> GetKeys() const;
00076
00077
00078
00079
00080
00081 MetaDataObjectBase::Pointer &operator [](const std::string &);
00082 const MetaDataObjectBase * operator [](const std::string &) const;
00083 bool HasKey (const std::string &);
00084
00085
00087 Iterator Begin();
00088 ConstIterator Begin() const;
00089
00091 Iterator End();
00092 ConstIterator End() const;
00093
00095 Iterator Find(const std::string & key);
00096 ConstIterator Find(const std::string & key) const;
00097
00098
00099 private:
00100 MetaDataDictionaryMapType *m_Dictionary;
00101 };
00102 }
00103 #endif// MetaDataDictionary_h_h
00104