4 #include <stdlib.h> // For getenv
8 #define PUB_DICT_NAME "DicomV3Dict"
10 # define PUB_DICT_PATH "../Dicts/"
12 #define PUB_DICT_FILENAME "dicomV3.dic"
14 gdcmDictSet::gdcmDictSet(void) {
16 if (! LoadDicomV3Dict())
20 void gdcmDictSet::SetDictPath(void) {
21 const char* EnvPath = (char*)0;
22 EnvPath = getenv("GDCM_DICT_PATH");
23 if (EnvPath && (strlen(EnvPath) != 0)) {
25 if (DictPath[DictPath.length() -1] != '/' )
27 dbg.Verbose(1, "gdcmDictSet::SetDictPath:",
28 "Dictionary path set from environnement");
30 DictPath = PUB_DICT_PATH;
33 int gdcmDictSet::LoadDicomV3Dict(void) {
34 if (dicts.count(PUB_DICT_NAME))
36 return LoadDictFromFile(DictPath + PUB_DICT_FILENAME, PUB_DICT_NAME);
39 int gdcmDictSet::LoadDictFromFile(string FileName, DictKey Name) {
40 gdcmDict *NewDict = new gdcmDict(FileName.c_str());
41 dicts[Name] = NewDict;
42 return 0; //FIXME if this is a dummy return make the method void
45 void gdcmDictSet::Print(ostream& os) {
46 for (DictSetHT::iterator dict = dicts.begin(); dict != dicts.end(); ++dict){
47 os << "Printing dictionary " << dict->first << " \n";
48 dict->second->Print(os);
52 gdcmDict * gdcmDictSet::GetDict(DictKey DictName) {
53 DictSetHT::iterator dict = dicts.find(DictName);
57 gdcmDict * gdcmDictSet::GetDefaultPublicDict() {
58 return GetDict(PUB_DICT_NAME);