|
DCMTK Version 3.6.9
OFFIS DICOM Toolkit
|
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. | |
| 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.nosp@m.y@eh.nosp@m..org
|
inline |
constructor
| outputBufferSize | size of the output buffer (in bytes) to which the RLE codec will write decompressed output. |
References fail_, offset_, outputBuffer_, outputBufferSize_, and suspendInfo_.
Referenced by DcmRLEDecoder(), and operator=().
|
inline |
resets the decoder object to newly constructed state.
The size and location of the output buffer is not changed.
References fail_, offset_, outputBuffer_, and suspendInfo_.
|
inlineprivate |
this method expands a literal run
| cp | pointer to buffer |
| nbytes | number of bytes in buffer |
References fail_, offset_, outputBuffer_, and outputBufferSize_.
|
inlineprivate |
this method expands a replicate run
| ch | value to replicate |
| nbytes | number of repetitions |
References fail_, offset_, outputBuffer_, and outputBufferSize_.
|
inline |
returns the number of bytes written to the output buffer
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.
Referenced by DcmRLEDecoder(), clear(), fail(), literal(), and replicate().
|
private |
contains the number of bytes already written to outputBuffer_.
Value is always less or equal to outputBufferSize_.
Referenced by DcmRLEDecoder(), 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
Referenced by DcmRLEDecoder(), ~DcmRLEDecoder(), clear(), getOutputBuffer(), literal(), and replicate().
|
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).
Referenced by DcmRLEDecoder(), and clear().