+#include <stdlib.h> // For getenv
+#include <stdio.h> // For sprintf
+
+namespace GDCM_NAME_SPACE
+{
+
+//-----------------------------------------------------------------------------
+// Constructor / Destructor
+/**
+ * \brief The Dictionary Set obtained with this constructor simply
+ * contains the Default Public dictionary.
+ */
+DictSet::DictSet()
+{
+ DictPath = BuildDictPath();
+ std::string pubDictFile(DictPath);
+ pubDictFile += PUB_DICT_FILENAME;
+ Dicts[PUB_DICT_NAME] = Dict::New(pubDictFile);
+ // Stored redundantly to avoid at access HTable DictSet every time.
+ Global::DefaultPubDict = Dicts[PUB_DICT_NAME];
+}
+
+/**
+ * \brief Destructor
+ */
+DictSet::~DictSet()
+{
+ Global::DefaultPubDict = 0; // just a pointer!
+ // Remove dictionaries
+ for (DictSetHT::iterator tag = Dicts.begin(); tag != Dicts.end(); ++tag)
+ {
+ if ( tag->second )
+ tag->second->Delete();
+ }
+ Dicts.clear();
+}