Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members

simthlib::StreamDecoder Class Reference

#include <decoder.h>

Inheritance diagram for simthlib::StreamDecoder:

Inheritance graph
[legend]
List of all members.

Public Member Functions

 StreamDecoder (int deviceID, simth::DeviceSystemIntf *system, const simth::PropertyList &pl, simth::SequenceType inType)
virtual int dataBitsPerStep () const =0
virtual int codedBitsPerStep () const =0
virtual void process ()
virtual void updateInputLengths ()
virtual void updateOutputLengths ()

Protected Attributes

size_t llrInputLength

Detailed Description

This abstract class is a base class of all decoders that divide an input stream into several steps with a a certain number of bits. The output stream is divided in the same number of steps with a different number of steps. The number of input and output bits per step will be returned by the functions codedBitsPerStep() and dataBitsPerStep(). Note, that the name of these functions are chosen from the point of view of an encoder! So codedBitsPerStep() are the number of coded # input bits of a decoder and dataBitsPerStep() are the number of uncoded output bits of the decoder!


Constructor & Destructor Documentation

simthlib::StreamDecoder::StreamDecoder int  deviceID,
simth::DeviceSystemIntf system,
const simth::PropertyList pl,
simth::SequenceType  inType
 


Member Function Documentation

virtual int simthlib::StreamDecoder::codedBitsPerStep  )  const [pure virtual]
 

Returns the coded output bits per step of the associated encoder, i.e. the number of input bits per step of this decoder.

Implemented in simthlib::TrellisDecoder.

virtual int simthlib::StreamDecoder::dataBitsPerStep  )  const [pure virtual]
 

Returns the number of uncoded data input bits per step of the associated encoder, i.e. the number of data output bits per step of this decoder.

Implemented in simthlib::TrellisDecoder.

virtual void simthlib::StreamDecoder::process  )  [virtual]
 

The implementation of process in StreamDecoder differs from the implementation in Decoder if the input type is simth::LlvSeq and the number of bits per LLV value does not equal the codedBitsPerStep(). In this case, the input length is recalculated (since in update output length the considered bits per LLV sequence had been codedBitsPerStep()). If the received data exceeds the new calculated input the length, the LLV sequence is converted to an LLV sequence that number of bits per state equals the number of codedBitsPerStep() of the StreamDecoder.

Reimplemented from simthlib::Decoder.

virtual void simthlib::StreamDecoder::updateInputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in simthlib::PunctConvDecoder.

virtual void simthlib::StreamDecoder::updateOutputLengths  )  [virtual]
 

Implements simth::Device.

Reimplemented in simthlib::PunctConvDecoder.


Member Data Documentation

size_t simthlib::StreamDecoder::llrInputLength [protected]
 


Generated on Tue Aug 9 14:37:27 2005 for simtheticlib by  doxygen 1.4.1