DCMTK  Version 3.6.1 20120515
OFFIS DICOM Toolkit
Public Member Functions | Private Member Functions | Private Attributes
DcmRLEDecoder Class Reference

this class implements an RLE decompressor conforming to the DICOM standard. More...

List of all members.

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 <forrey@eh.org>


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.

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.

void DcmRLEDecoder::literal ( unsigned char *  cp,
unsigned char  nbytes 
) [inline, private]

this method expands a literal run

Parameters:
cppointer to buffer
nbytesnumber of bytes in buffer
void DcmRLEDecoder::replicate ( unsigned char  ch,
unsigned char  nbytes 
) [inline, private]

this method expands a replicate run

Parameters:
chvalue to replicate
nbytesnumber of repetitions
size_t DcmRLEDecoder::size ( ) const [inline]

returns the number of bytes written to the output buffer

Returns:
size of decompressed stream, in bytes

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.

size_t DcmRLEDecoder::offset_ [private]

contains the number of bytes already written to outputBuffer_.

Value is always less or equal to outputBufferSize_.

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

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


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


Generated on Tue May 15 2012 for DCMTK Version 3.6.1 20120515 by Doxygen 1.7.5.1-20111027