gdcmDicts.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program: GDCM (Grassroots DICOM). A DICOM library
00004   Module:  $URL$
00005 
00006   Copyright (c) 2006-2009 Mathieu Malaterre
00007   All rights reserved.
00008   See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00015 #ifndef __gdcmDicts_h
00016 #define __gdcmDicts_h
00017 
00018 #include "gdcmDict.h"
00019 #include "gdcmCSAHeaderDict.h"
00020 
00021 #include <string>
00022 
00023 namespace gdcm
00024 {
00029 class GDCM_EXPORT Dicts
00030 {
00031   friend std::ostream& operator<<(std::ostream &_os, const Dicts &d);
00032 public:
00033   Dicts();
00034   ~Dicts();
00035 
00039   // DataSet::GetPrivateCreator
00040   const DictEntry &GetDictEntry(const Tag& tag, const char *owner = NULL) const;
00041 
00042   //enum PublicTypes {
00043   //  DICOMV3_DICT,
00044   //  ACRNEMA_DICT,
00045   //  NIH_DICT
00046   //};
00047   const Dict &GetPublicDict() const;
00048 
00049   const PrivateDict &GetPrivateDict() const;
00050 
00051   const CSAHeaderDict &GetCSAHeaderDict() const;
00052 
00053   bool IsEmpty() const { return GetPublicDict().IsEmpty(); }
00054 
00055 protected:
00056   typedef enum {
00057     PHILIPS,
00058     GEMS,
00059     SIEMENS
00060   //  ...
00061   } ConstructorType;
00062   static const char *GetConstructorString(ConstructorType type);
00063 
00064   friend class Global;
00065   void LoadDefaults();
00066 
00067 private:
00068   // Public dict:
00069   Dict PublicDict;
00070 
00071   // Private Dicts:
00072   PrivateDict ShadowDict;
00073 
00074   CSAHeaderDict CSADict;
00075   Dicts &operator=(const Dicts &_val); // purposely not implemented
00076   Dicts(const Dicts &_val); // purposely not implemented
00077 };
00078 //-----------------------------------------------------------------------------
00079 inline std::ostream& operator<<(std::ostream &os, const Dicts &d)
00080 {
00081   (void)d;
00082   return os;
00083 }
00084 
00085 
00086 } // end namespace gdcm
00087 
00088 #endif //__gdcmDicts_h

Generated on Tue Mar 9 22:40:41 2010 for GDCM by doxygen 1.6.3
SourceForge.net Logo