gdcmIODs.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef __gdcmIODs_h
00016 #define __gdcmIODs_h
00017
00018 #include "gdcmTypes.h"
00019 #include "gdcmIOD.h"
00020
00021 #include <map>
00022
00023 namespace gdcm
00024 {
00030 class GDCM_EXPORT IODs
00031 {
00032 public:
00033 typedef std::map<std::string, IOD> IODMapType;
00034
00035 IODs() {}
00036 friend std::ostream& operator<<(std::ostream& _os, const IODs &_val);
00037
00038 void Clear() { IODsInternal.clear(); }
00039
00040 void AddIOD(const char *name , const IOD & module )
00041 {
00042 IODsInternal.insert(
00043 IODMapType::value_type(name, module));
00044 }
00045 const IOD &GetIOD(const char *name) const
00046 {
00047
00048 IODMapType::const_iterator it = IODsInternal.find( name );
00049 assert( it != IODsInternal.end() );
00050 assert( it->first == name );
00051 return it->second;
00052 }
00053
00054 private:
00055 IODMapType IODsInternal;
00056 };
00057
00058 inline std::ostream& operator<<(std::ostream& _os, const IODs &_val)
00059 {
00060 IODs::IODMapType::const_iterator it = _val.IODsInternal.begin();
00061 for(;it != _val.IODsInternal.end(); ++it)
00062 {
00063 const std::string &name = it->first;
00064 const IOD &m = it->second;
00065 _os << name << " " << m << '\n';
00066 }
00067
00068 return _os;
00069 }
00070
00071
00072 }
00073
00074 #endif //__gdcmIODs_h
00075