OFFIS DCMTK
Version 3.6.0
|
this class implements an RLE decompressor conforming to the DICOM standard. More...
Public Member Functions | |
DcmRLEDecoder (size_t outputBufferSize) | |
constructor | |
~DcmRLEDecoder () | |
destructor | |
void | clear () |
resets the decoder object to newly constructed state. | |
OFCondition | decompress (void *compressedData, size_t compressedSize) |
size_t | size () const |
returns the number of bytes written to the output buffer | |
void * | getOutputBuffer () const |
returns pointer to the output buffer | |
OFBool | fail () const |
returns true if the RLE compressor has failed (out of memory or output buffer too small). | |
Private Member Functions | |
DcmRLEDecoder (const DcmRLEDecoder &) | |
private undefined copy constructor | |
DcmRLEDecoder & | operator= (const DcmRLEDecoder &) |
private undefined copy assignment operator | |
void | replicate (unsigned char ch, unsigned char nbytes) |
this method expands a replicate run | |
void | literal (unsigned char *cp, unsigned char nbytes) |
this method expands a literal run | |
Private Attributes | |
int | fail_ |
this flag indicates a failure of the RLE codec. | |
size_t | outputBufferSize_ |
size of output buffer, in bytes | |
unsigned char * | outputBuffer_ |
this member points to a block of size outputBufferSize_ (unless fail_ is true). | |
size_t | offset_ |
contains the number of bytes already written to outputBuffer_. | |
unsigned char | suspendInfo_ |
contains suspension information. | |
this class implements an RLE decompressor conforming to the DICOM standard.
The class is loosely based on an implementation by Phil Norman forre y@eh .org
Definition at line 38 of file dcrledec.h.
|
inline |
constructor
outputBufferSize | size of the output buffer (in bytes) to which the RLE codec will write decompressed output. |
Definition at line 46 of file dcrledec.h.
References fail_, outputBuffer_, and outputBufferSize_.
|
inline |
resets the decoder object to newly constructed state.
The size and location of the output buffer is not changed.
Definition at line 70 of file dcrledec.h.
References fail_, offset_, outputBuffer_, and suspendInfo_.
|
inlineprivate |
this method expands a literal run
cp | pointer to buffer |
nbytes | number of bytes in buffer |
Definition at line 228 of file dcrledec.h.
References fail_, offset_, outputBuffer_, and outputBufferSize_.
|
inlineprivate |
this method expands a replicate run
ch | value to replicate |
nbytes | number of repetitions |
Definition at line 211 of file dcrledec.h.
References fail_, offset_, outputBuffer_, and outputBufferSize_.
|
inline |
returns the number of bytes written to the output buffer
Definition at line 179 of file dcrledec.h.
References offset_.
|
private |
this flag indicates a failure of the RLE codec.
Once a failure is flagged, the codec will consume all input and not produce any more output.
Definition at line 246 of file dcrledec.h.
Referenced by clear(), DcmRLEDecoder(), fail(), literal(), and replicate().
|
private |
contains the number of bytes already written to outputBuffer_.
Value is always less or equal to outputBufferSize_.
Definition at line 261 of file dcrledec.h.
Referenced by clear(), literal(), replicate(), and size().
|
private |
this member points to a block of size outputBufferSize_ (unless fail_ is true).
This is the block of data to which the decompressed stream is written
Definition at line 256 of file dcrledec.h.
Referenced by clear(), DcmRLEDecoder(), getOutputBuffer(), literal(), replicate(), and ~DcmRLEDecoder().
|
private |
contains suspension information.
If not suspended, contains 128. If suspended during a replicate run, contains control byte of repeat run (> 128). If suspended during a literal run, contains number of remaining bytes in literal run minus 1 (< 128).
Definition at line 268 of file dcrledec.h.
Referenced by clear().