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