DCMTK: DcmRLEDecoder Class Reference

DCMTK Version 3.6.9 OFFIS DICOM Toolkit

Loading...
Searching...
No Matches
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.
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.

## 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

## Constructor & Destructor Documentation

## ◆ DcmRLEDecoder()

DcmRLEDecoder::DcmRLEDecoder | ( | size_t | outputBufferSize | ) |
| inline

constructor

Parameters

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

## Member Function Documentation

## ◆ clear()

void DcmRLEDecoder::clear | ( |  | ) |
| 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_.

## ◆ literal()

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

this method expands a literal run

Parameters

  cp | pointer to buffer
  nbytes | number of bytes in buffer

References fail_, offset_, outputBuffer_, and outputBufferSize_.

## ◆ replicate()

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

this method expands a replicate run

Parameters

  ch | value to replicate
  nbytes | number of repetitions

References fail_, offset_, outputBuffer_, and outputBufferSize_.

## ◆ size()

size_t DcmRLEDecoder::size | ( |  | ) | const
| inline

returns the number of bytes written to the output buffer

Returns
  size of decompressed stream, in bytes

References offset_.

## Member Data Documentation

## ◆ fail_

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.

Referenced by DcmRLEDecoder(), clear(), fail(), literal(), and replicate().

## ◆ offset_

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

## ◆ outputBuffer_

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

Referenced by DcmRLEDecoder(), ~DcmRLEDecoder(), clear(), getOutputBuffer(), literal(), and replicate().

## ◆ suspendInfo_

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

Referenced by DcmRLEDecoder(), and clear().

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

- dcmdata/include/dcmtk/dcmdata/dcrledec.h

Generated on Wed Apr 30 2025 for DCMTK Version 3.6.9 by Doxygen 1.13.2