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 GDCMCODER_H 00015 #define GDCMCODER_H 00016 00017 #include "gdcmTypes.h" 00018 #include "gdcmDataElement.h" // FIXME 00019 00020 namespace gdcm 00021 { 00022 00023 class TransferSyntax; 00024 class DataElement; 00028 class GDCM_EXPORT Coder 00029 { 00030 public: 00031 virtual ~Coder() {} 00032 00034 virtual bool CanCode(TransferSyntax const &) const = 0; 00035 00036 // Note: in / out are reserved keyword in C#. Change to in_ / out_ 00037 00039 virtual bool Code(DataElement const &in_, DataElement &out_) { (void)in_; (void)out_; return false; } 00040 protected: 00041 virtual bool InternalCode(const char *bv, unsigned long len, std::ostream &os) { (void)bv;(void)os;(void)len;return false; } 00042 }; 00043 00044 } // end namespace gdcm 00045 00046 #endif //GDCMCODER_H