GDCM  2.2.6
gdcmRLECodec.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Program: GDCM (Grassroots DICOM). A DICOM library
4 
5  Copyright (c) 2006-2011 Mathieu Malaterre
6  All rights reserved.
7  See Copyright.txt or http://gdcm.sourceforge.net/Copyright.html for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
14 #ifndef GDCMRLECODEC_H
15 #define GDCMRLECODEC_H
16 
17 #include "gdcmImageCodec.h"
18 
19 namespace gdcm
20 {
21 
22 class Fragment;
23 class RLEInternals;
37 {
38 friend class ImageRegionReader;
39 public:
40  RLECodec();
41  ~RLECodec();
42  bool CanCode(TransferSyntax const &ts) const;
43  bool CanDecode(TransferSyntax const &ts) const;
44  bool Decode(DataElement const &is, DataElement &os);
45  unsigned long GetBufferLength() const { return BufferLength; }
46  void SetBufferLength(unsigned long l) { BufferLength = l; }
47 
48  bool Code(DataElement const &in, DataElement &out);
49  bool GetHeaderInfo(std::istream &is, TransferSyntax &ts);
50  virtual ImageCodec * Clone() const;
51 
52 protected:
53  bool DecodeExtent(
54  char *buffer,
55  unsigned int XMin, unsigned int XMax,
56  unsigned int YMin, unsigned int YMax,
57  unsigned int ZMin, unsigned int ZMax,
58  std::istream & is
59  );
60 
61  bool DecodeByStreams(std::istream &is, std::ostream &os);
62 public:
63 
64  void SetLength(unsigned long l)
65  {
66  Length = l;
67  }
68 private:
69  bool DecodeByStreamsCommon(std::istream &is, std::ostream &os);
70  RLEInternals *Internals;
71  unsigned long Length;
72  unsigned long BufferLength;
73  size_t DecodeFragment(Fragment const & frag, char *buffer, unsigned long llen);
74 };
75 
76 } // end namespace gdcm
77 
78 #endif //GDCMRLECODEC_H
void SetLength(unsigned long l)
Definition: gdcmRLECodec.h:64
Class to do RLE.
Definition: gdcmRLECodec.h:36
unsigned long GetBufferLength() const
Definition: gdcmRLECodec.h:45
void SetBufferLength(unsigned long l)
Definition: gdcmRLECodec.h:46
#define GDCM_EXPORT
Definition: gdcmWin32.h:34
Class to represent a Fragment.
Definition: gdcmFragment.h:43
ImageCodec.
Definition: gdcmImageCodec.h:30
Class to represent a Data Element either Implicit or Explicit.
Definition: gdcmDataElement.h:58
Class to manipulate Transfer Syntax.
Definition: gdcmTransferSyntax.h:39
ImageRegionReader.
Definition: gdcmImageRegionReader.h:29

Generated on Sat Dec 21 2013 05:56:17 for GDCM by doxygen 1.8.5
SourceForge.net Logo