Program: gdcm
Module: $RCSfile: gdcmDictSet.h,v $
Language: C++
- Date: $Date: 2005/10/18 12:58:28 $
- Version: $Revision: 1.46 $
+ Date: $Date: 2005/11/28 16:31:23 $
+ Version: $Revision: 1.52 $
Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
l'Image). All rights reserved. See Doc/License.txt or
#ifndef GDCMDICTSET_H
#define GDCMDICTSET_H
-#include "gdcmBase.h"
+#include "gdcmRefCounter.h"
#include "gdcmDict.h"
#include <map>
namespace gdcm
{
+//-----------------------------------------------------------------------------
typedef std::map<DictKey, Dict*> DictSetHT;
-typedef std::string ExtendedTagKey;
-typedef std::map<ExtendedTagKey, DictEntry> ExtendedTagKeyHT;
//-----------------------------------------------------------------------------
/**
* \brief Container for managing a set of loaded dictionaries (Dict).
* \note Hopefully, sharing dictionaries should avoid
- * \par reloading an already loaded dictionary (saving time)
- * \par having many in memory representations of the same dictionary
+ * - reloading an already loaded dictionary (saving time)
+ * - having many in memory representations of the same dictionary
* (saving memory).
*/
-class GDCM_EXPORT DictSet : public Base
+class GDCM_EXPORT DictSet : public RefCounter
{
+ gdcmTypeMacro(DictSet);
+
public:
- DictSet();
- ~DictSet();
+/// \brief Contructs a DictSet with a RefCounter
+ static DictSet *New() {return new DictSet();}
void Print(std::ostream &os = std::cout, std::string const &indent = "" );
// \ warning : not end user intended
// Dict *GetVirtualDict() { return &VirtualEntries; }
- DictEntry *NewVirtualDictEntry(uint16_t group, uint16_t elem,
- const VRKey &vr = GDCM_VRUNKNOWN,
- const TagName &vm = GDCM_UNKNOWN,
- const TagName &name = GDCM_UNKNOWN);
-
- Dict *GetFirstEntry();
- Dict *GetNextEntry();
+ Dict *GetFirstDict();
+ Dict *GetNextDict();
static std::string BuildDictPath();
protected:
- bool AppendDict(Dict *NewDict, DictKey const &name);
+ DictSet();
+ ~DictSet();
private:
/// Hash table of all dictionaries contained in this DictSet
DictSetHT Dicts;
+ /// Iterator to visit the Dictionaries of a given DictSet
DictSetHT::iterator ItDictHt;
/// Directory path to dictionaries
std::string DictPath;
-
- /// H table for the on the fly created DictEntries
- ExtendedTagKeyHT VirtualEntries;
};
} // end namespace gdcm