GDCM 2.0.17
|
00001 /*========================================================================= 00002 00003 Program: GDCM (Grassroots DICOM). A DICOM library 00004 Module: $URL$ 00005 00006 Copyright (c) 2006-2010 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 GDCMEXPLICITIMPLICITDATAELEMENT_H 00016 #define GDCMEXPLICITIMPLICITDATAELEMENT_H 00017 00018 #include "gdcmDataElement.h" 00019 00020 namespace gdcm 00021 { 00022 // Data Element (ExplicitImplicit) 00030 class GDCM_EXPORT ExplicitImplicitDataElement : public DataElement 00031 { 00032 public: 00033 VL GetLength() const; 00034 00035 template <typename TSwap> 00036 std::istream &Read(std::istream &is); 00037 00038 template <typename TSwap> 00039 std::istream &ReadPreValue(std::istream &is); 00040 00041 template <typename TSwap> 00042 std::istream &ReadValue(std::istream &is); 00043 00044 template <typename TSwap> 00045 std::istream &ReadWithLength(std::istream &is, VL & length) 00046 { 00047 return Read<TSwap>(is); (void)length; 00048 } 00049 00050 // PURPOSELY do not provide an implementation for writing ! 00051 //template <typename TSwap> 00052 //const std::ostream &Write(std::ostream &os) const; 00053 }; 00054 00055 } // end namespace gdcm 00056 00057 #include "gdcmExplicitImplicitDataElement.txx" 00058 00059 #endif //GDCMEXPLICITIMPLICITDATAELEMENT_H