00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GDCMDICTSET_H
00020 #define GDCMDICTSET_H
00021
00022 #include "gdcmBase.h"
00023 #include "gdcmDict.h"
00024
00025 #include <map>
00026 #include <list>
00027
00028 namespace gdcm
00029 {
00030 typedef std::map<DictKey, Dict*> DictSetHT;
00031
00032
00040 class GDCM_EXPORT DictSet : public Base
00041 {
00042 public:
00043 DictSet();
00044 ~DictSet();
00045
00046 void Print(std::ostream &os = std::cout, std::string const &indent = "" );
00047
00048
00049
00050
00051
00052 Dict *LoadDictFromFile( std::string const &fileName,
00053 DictKey const &name );
00054
00055 Dict *GetDict( DictKey const &DictName );
00056
00058 Dict* GetDefaultPubDict() { return GetDict(PUB_DICT_NAME); };
00059
00060
00061
00062
00063
00064 DictEntry *NewVirtualDictEntry(uint16_t group, uint16_t elem,
00065 TagName vr = GDCM_UNKNOWN,
00066 TagName vm = GDCM_UNKNOWN,
00067 TagName name = GDCM_UNKNOWN);
00068
00069 Dict *GetFirstEntry();
00070 Dict *GetNextEntry();
00071
00072 static std::string BuildDictPath();
00073
00074 protected:
00075 bool AppendDict(Dict *NewDict, DictKey const &name);
00076
00077 private:
00079 DictSetHT Dicts;
00080 DictSetHT::iterator ItDictHt;
00081
00083 std::string DictPath;
00084
00086 TagKeyHT VirtualEntry;
00087 };
00088 }
00089
00090
00091 #endif