+//-----------------------------------------------------------------------------
+// Constructor / Destructor
+/**
+ * \ingroup gdcmDictSet
+ * \brief The Dictionnary Set obtained with this constructor simply
+ * contains the Default Public dictionnary.
+ */
+gdcmDictSet::gdcmDictSet(void)
+{
+ DictPath = BuildDictPath();
+ std::string PubDictFile = DictPath + PUB_DICT_FILENAME;
+ Dicts[PUB_DICT_NAME] = new gdcmDict(PubDictFile);
+}
+
+/**
+ * \ingroup gdcmDictSet
+ * \brief Destructor
+ */
+gdcmDictSet::~gdcmDictSet()
+{
+ // Remove dictionnaries
+ for (DictSetHT::iterator tag = Dicts.begin(); tag != Dicts.end(); ++tag)
+ {
+ gdcmDict *EntryToDelete = tag->second;
+ if ( EntryToDelete )
+ delete EntryToDelete;
+ tag->second=NULL;
+ }
+ Dicts.clear();
+
+ // Remove virtual dictionnary entries
+ std::map<std::string,gdcmDictEntry *>::iterator it;
+ for(it=virtualEntry.begin(); it!=virtualEntry.end(); ++it)
+ {
+ gdcmDictEntry *Entry = it->second;
+ if ( Entry )
+ delete Entry;
+ it->second=NULL;
+ }
+}
+
+//-----------------------------------------------------------------------------
+// Print
+/**
+ * \ingroup gdcmDictSet
+ * \brief Print, in an informal fashion, the list of all the dictionaries
+ * contained is this gdcmDictSet, along with their respective content.
+ * @param os Output stream used for printing.
+ */
+void gdcmDictSet::Print(std::ostream& os)
+{
+ for (DictSetHT::iterator dict = Dicts.begin(); dict != Dicts.end(); ++dict)
+ {
+ os << "Printing dictionary " << dict->first << std::endl;
+ dict->second->Print(os);
+ }
+}