GDCM
2.0.18
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 00005 Copyright (c) 2006-2011 Mathieu Malaterre 00006 All rights reserved. 00007 See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details. 00008 00009 This software is distributed WITHOUT ANY WARRANTY; without even 00010 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00011 PURPOSE. See the above copyright notice for more information. 00012 00013 =========================================================================*/ 00014 #ifndef GDCMDEFS_H 00015 #define GDCMDEFS_H 00016 00017 #include "gdcmModules.h" 00018 #include "gdcmMacros.h" 00019 #include "gdcmIODs.h" 00020 00021 #include <string> 00022 00023 namespace gdcm 00024 { 00025 class DataSet; 00026 class File; 00027 class MediaStorage; 00032 class GDCM_EXPORT Defs 00033 { 00034 public: 00035 Defs(); 00036 ~Defs(); 00037 00038 const Modules &GetModules() const { return Part3Modules; } 00039 Modules &GetModules() { return Part3Modules; } 00040 00043 const Macros &GetMacros() const { return Part3Macros; } 00044 Macros &GetMacros() { return Part3Macros; } 00045 00046 const IODs & GetIODs() const { return Part3IODs; } 00047 IODs & GetIODs() { return Part3IODs; } 00048 00049 bool IsEmpty() const { return GetModules().IsEmpty(); } 00050 00051 bool Verify(const File& file) const; 00052 00053 // \deprecated DO NOT USE 00054 bool Verify(const DataSet& ds) const; 00055 00056 Type GetTypeFromTag(const File& file, const Tag& tag) const; 00057 00058 static const char *GetIODNameFromMediaStorage(MediaStorage const &ms); 00059 00060 const IOD& GetIODFromFile(const File& file) const; 00061 00062 protected: 00063 friend class Global; 00064 void LoadDefaults(); 00065 void LoadFromFile(const char *filename); 00066 00067 private: 00068 // Part 3 stuff: 00069 Macros Part3Macros; 00070 Modules Part3Modules; 00071 IODs Part3IODs; 00072 00073 Defs &operator=(const Defs &val); // purposely not implemented 00074 Defs(const Defs &val); // purposely not implemented 00075 }; 00076 00077 00078 } // end namespace gdcm 00079 00080 #endif //GDCMDEFS_H