/*========================================================================= Program: GDCM (Grassroots DICOM). A DICOM library Copyright (c) 2006-2011 Mathieu Malaterre All rights reserved. See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html 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 notice for more information. =========================================================================*/ #ifndef GDCMDICTS_H #define GDCMDICTS_H #include "gdcmDict.h" #include "gdcmCSAHeaderDict.h" #include namespace gdcm { /** * \brief Class to manipulate the sum of knowledge (all the dict user load) * \note bla */ class GDCM_EXPORT Dicts { friend std::ostream& operator<<(std::ostream &_os, const Dicts &d); public: Dicts(); ~Dicts(); Dicts &operator=(const Dicts &_val) = delete; Dicts(const Dicts &_val) = delete; /// works for both public and private dicts: /// owner is null for public dict /// \warning owner need to be set to appropriate owner for call to work. see // DataSet::GetPrivateCreator /// THREAD SAFE const DictEntry &GetDictEntry(const Tag& tag, const char *owner = nullptr) const; const DictEntry &GetDictEntry(const PrivateTag& tag) const; //enum PublicTypes { // DICOMV3_DICT, // ACRNEMA_DICT, // NIH_DICT //}; const Dict &GetPublicDict() const; const PrivateDict &GetPrivateDict() const; PrivateDict &GetPrivateDict(); const CSAHeaderDict &GetCSAHeaderDict() const; bool IsEmpty() const { return GetPublicDict().IsEmpty(); } protected: typedef enum { PHILIPS, GEMS, SIEMENS // ... } ConstructorType; static const char *GetConstructorString(ConstructorType type); friend class Global; void LoadDefaults(); private: // Public dict: Dict PublicDict; // Private Dicts: PrivateDict ShadowDict; CSAHeaderDict CSADict; }; //----------------------------------------------------------------------------- inline std::ostream& operator<<(std::ostream &os, const Dicts &d) { (void)d; return os; } } // end namespace gdcm #endif //GDCMDICTS_H