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