/*========================================================================= Program: gdcm Module: $RCSfile: gdcmDictSet.h,v $ Language: C++ Date: $Date: 2004/08/03 17:28:59 $ Version: $Revision: 1.24 $ Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de l'Image). All rights reserved. See Doc/License.txt or http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details. This software is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef GDCMDICTSET_H #define GDCMDICTSET_H #include "gdcmDict.h" #include #include typedef std::string DictKey; typedef std::map DictSetHT; //----------------------------------------------------------------------------- /* * \defgroup gdcmDictSet * \brief Container for managing a set of loaded dictionaries. * \note Hopefully, sharing dictionaries should avoid * \par reloading an already loaded dictionary (saving time) * \par having many in memory representations of the same dictionary * (saving memory). */ class GDCM_EXPORT gdcmDictSet { public: gdcmDictSet(); ~gdcmDictSet(); void Print(std::ostream& os); std::list* GetPubDictEntryNames(); std::map > * GetPubDictEntryNamesByCategory(); gdcmDict* LoadDictFromFile( std::string const & fileName, DictKey const & name ); gdcmDict* GetDict( DictKey const & DictName ); gdcmDict* GetDefaultPubDict(); gdcmDictEntry* NewVirtualDictEntry(uint16_t group, uint16_t element, std::string vr = "Unknown", std::string fourth = "Unknown", std::string name = "Unknown"); static std::string BuildDictPath(); protected: bool AppendDict(gdcmDict *NewDict, DictKey const & name); private: /// Hash table of all dictionaries contained in this gdcmDictSet DictSetHT Dicts; /// Directory path to dictionaries std::string DictPath; /// H table for the on the fly created gdcmDictEntries std::map VirtualEntry; }; //----------------------------------------------------------------------------- #endif