]> Creatis software - creaImageIO.git/blob - src/creaImageIODicomNodeTypeDescription.h
Initial revision
[creaImageIO.git] / src / creaImageIODicomNodeTypeDescription.h
1 #ifndef __creaImageIODicomNodeTypeDescription_h_INCLUDED__
2 #define __creaImageIODicomNodeTypeDescription_h_INCLUDED__
3
4
5 #include <creaImageIOField.h>
6
7 #include <map>
8
9 namespace creaImageIO
10 {
11
12
13   //=====================================================================
14   class DicomNodeTypeDescription
15   {
16   public:
17     DicomNodeTypeDescription();
18     ~DicomNodeTypeDescription();
19
20     void BuildDefault(int typecode);
21     void Add(const Field::Description&);
22     
23     typedef std::map<Field::Key,Field::Description> FieldDescriptionMapType;
24     FieldDescriptionMapType& GetFieldDescriptionMap()
25     { return mFieldDescriptionMap; }
26     const FieldDescriptionMapType& GetFieldDescriptionMap() const 
27     { return mFieldDescriptionMap; }
28
29     const Field::Description& GetFieldDescription(const Field::Key& k) const
30     {
31       return mFieldDescriptionMap.find(k)->second;
32     }
33
34
35   protected:
36
37
38   private:
39     FieldDescriptionMapType mFieldDescriptionMap;
40     
41
42   }; // class DicomNodeTypeDescription
43   //=====================================================================
44
45
46 } // namespace creaImageIO
47
48
49   //=====================================================================
50 inline std::ostream& operator<<(std::ostream& s, 
51                                 const creaImageIO::DicomNodeTypeDescription& d)
52 {
53   const creaImageIO::DicomNodeTypeDescription::FieldDescriptionMapType& m = d.GetFieldDescriptionMap();
54   s <<"[";
55   creaImageIO::DicomNodeTypeDescription::FieldDescriptionMapType::const_iterator i;
56   for (i=m.begin();i!=m.end();++i)
57     {
58       s <<i->second; 
59     }
60   s<<"]";
61   return s;
62 }
63 //=====================================================================
64
65
66
67 #endif // #ifndef __creaImageIODicomNodeTypeDescription_h_INCLUDED__