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. |
The class is loosely based on an implementation by Phil Norman <forrey@eh.org>
Definition at line 38 of file dcrledec.h.
DcmRLEDecoder::DcmRLEDecoder | ( | size_t | outputBufferSize | ) | [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_.
void DcmRLEDecoder::clear | ( | ) | [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_.
size_t DcmRLEDecoder::size | ( | ) | const [inline] |
returns the number of bytes written to the output buffer
Definition at line 179 of file dcrledec.h.
References offset_.
void DcmRLEDecoder::replicate | ( | unsigned char | ch, | |
unsigned char | nbytes | |||
) | [inline, private] |
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_.
Referenced by decompress().
void DcmRLEDecoder::literal | ( | unsigned char * | cp, | |
unsigned char | nbytes | |||
) | [inline, private] |
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_.
Referenced by decompress().
int DcmRLEDecoder::fail_ [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(), decompress(), fail(), literal(), and replicate().
unsigned char* DcmRLEDecoder::outputBuffer_ [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().
size_t DcmRLEDecoder::offset_ [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().
unsigned char DcmRLEDecoder::suspendInfo_ [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(), and decompress().