OFFIS DCMTK  Version 3.6.0
Public Member Functions | Private Member Functions | Private Attributes | List of all members
DcmRLEDecoder Class Reference

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
 
DcmRLEDecoderoperator= (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.
 

Detailed Description

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

Definition at line 38 of file dcrledec.h.

Constructor & Destructor Documentation

DcmRLEDecoder::DcmRLEDecoder ( size_t  outputBufferSize)
inline

constructor

Parameters
outputBufferSizesize 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_.

Member Function Documentation

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_.

void DcmRLEDecoder::literal ( unsigned char *  cp,
unsigned char  nbytes 
)
inlineprivate

this method expands a literal run

Parameters
cppointer to buffer
nbytesnumber of bytes in buffer

Definition at line 228 of file dcrledec.h.

References fail_, offset_, outputBuffer_, and outputBufferSize_.

void DcmRLEDecoder::replicate ( unsigned char  ch,
unsigned char  nbytes 
)
inlineprivate

this method expands a replicate run

Parameters
chvalue to replicate
nbytesnumber of repetitions

Definition at line 211 of file dcrledec.h.

References fail_, offset_, outputBuffer_, and outputBufferSize_.

size_t DcmRLEDecoder::size ( ) const
inline

returns the number of bytes written to the output buffer

Returns
size of decompressed stream, in bytes

Definition at line 179 of file dcrledec.h.

References offset_.

Member Data Documentation

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(), fail(), literal(), and replicate().

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::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().

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().


The documentation for this class was generated from the following file:


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2