Claw  1.7.3
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
claw::rle_decoder< Pattern, InputBuffer, OutputBuffer > Class Template Reference

A class to help decoding run-length encoded (RLE) streams. More...

#include <rle_decoder.hpp>

Public Types

typedef Pattern pattern_type
 The type of the patterns we will read in the input buffer.
typedef InputBuffer input_buffer_type
 The type of the input buffer.
typedef OutputBuffer output_buffer_type
 The type of the output buffer.

Public Member Functions

 rle_decoder ()
 Constructor.
virtual ~rle_decoder ()
 Destructor.
void decode (input_buffer_type &input, output_buffer_type &output)
 Decode a RLE stream.

Protected Types

enum  mode { stop, raw, compressed }
 State of the decompression. More...

Protected Member Functions

virtual void read_mode (input_buffer_type &input, output_buffer_type &output)=0

Protected Attributes

mode m_mode
 Current mode of the decompression.
unsigned int m_count
 Case of m_mode :
pattern_type m_pattern
 The pattern to repeat.

Detailed Description

template<typename Pattern, typename InputBuffer, typename OutputBuffer>
class claw::rle_decoder< Pattern, InputBuffer, OutputBuffer >

A class to help decoding run-length encoded (RLE) streams.

Template parameters :

The Pattern and InputBuffer parameters don't have any type requirement.

The OutputBuffer type must have the following methods :

Author
Julien Jorge

Definition at line 54 of file rle_decoder.hpp.

Member Enumeration Documentation

template<typename Pattern, typename InputBuffer, typename OutputBuffer>
enum claw::rle_decoder::mode
protected

State of the decompression.

Enumerator:
stop 

Stop the decoding.

raw 

Next bytes represent raw data.

compressed 

Next bytes represent compressed data.

Definition at line 70 of file rle_decoder.hpp.

Member Function Documentation

template<typename Pattern , typename InputBuffer , typename OutputBuffer >
void claw::rle_decoder< Pattern, InputBuffer, OutputBuffer >::decode ( input_buffer_type input,
output_buffer_type output 
)

Decode a RLE stream.

Parameters
inputThe RLE stream.
outputThe raw stream.

Definition at line 60 of file rle_decoder.tpp.

Member Data Documentation

template<typename Pattern, typename InputBuffer, typename OutputBuffer>
unsigned int claw::rle_decoder< Pattern, InputBuffer, OutputBuffer >::m_count
protected

Case of m_mode :

  • m_mode == raw : The number of the next raw patterns,
  • m_mode == compressed : How many times the pattern is repeated.

Definition at line 101 of file rle_decoder.hpp.


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