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 00016 #ifndef GDCMDECODER_H 00017 #define GDCMDECODER_H 00018 00019 #include "gdcmTypes.h" 00020 #include "gdcmDataElement.h" // FIXME 00021 00022 namespace gdcm 00023 { 00024 00025 class TransferSyntax; 00026 class DataElement; 00030 class GDCM_EXPORT Decoder 00031 { 00032 public: 00033 virtual ~Decoder() {} 00034 00036 virtual bool CanDecode(TransferSyntax const &) const = 0; 00037 00039 virtual bool Decode(DataElement const &is_, DataElement &os) { (void)is_;(void)os;return false; } 00040 protected: 00041 virtual bool Decode(std::istream &is_, std::ostream &os) { (void)is_; (void)os;return false; } 00042 }; 00043 00044 } // end namespace gdcm 00045 00046 #endif //GDCMDECODER_H