GDCM
2.2.3
|
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 GDCMEXPLICITIMPLICITDATAELEMENT_H 00015 #define GDCMEXPLICITIMPLICITDATAELEMENT_H 00016 00017 #include "gdcmDataElement.h" 00018 00019 namespace gdcm 00020 { 00021 // Data Element (ExplicitImplicit) 00029 class GDCM_EXPORT ExplicitImplicitDataElement : public DataElement 00030 { 00031 public: 00032 VL GetLength() const; 00033 00034 template <typename TSwap> 00035 std::istream &Read(std::istream &is); 00036 00037 template <typename TSwap> 00038 std::istream &ReadPreValue(std::istream &is); 00039 00040 template <typename TSwap> 00041 std::istream &ReadValue(std::istream &is); 00042 00043 template <typename TSwap> 00044 std::istream &ReadWithLength(std::istream &is, VL & length) 00045 { 00046 return Read<TSwap>(is); (void)length; 00047 } 00048 00049 // PURPOSELY do not provide an implementation for writing ! 00050 //template <typename TSwap> 00051 //const std::ostream &Write(std::ostream &os) const; 00052 }; 00053 00054 } // end namespace gdcm 00055 00056 #include "gdcmExplicitImplicitDataElement.txx" 00057 00058 #endif //GDCMEXPLICITIMPLICITDATAELEMENT_H