INET Framework for OMNeT++/OMNEST
inet::physicallayer::Ieee80211OFDMDecoderModule Class Reference

#include <Ieee80211OFDMDecoderModule.h>

Inheritance diagram for inet::physicallayer::Ieee80211OFDMDecoderModule:
inet::physicallayer::IDecoder inet::physicallayer::IPrintableObject

Public Member Functions

virtual ~Ieee80211OFDMDecoderModule ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level) const override
 Prints this object to the provided output stream. More...
 
const Ieee80211OFDMCodegetCode () const
 
const IReceptionPacketModeldecode (const IReceptionBitModel *bitModel) const override
 
- Public Member Functions inherited from inet::physicallayer::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string getInfoStringRepresentation () const
 
virtual std::string getDetailStringRepresentation () const
 
virtual std::string getDebugStringRepresentation () const
 
virtual std::string getTraceStringRepresentation () const
 
virtual std::string getCompleteStringRepresentation () const
 

Protected Member Functions

virtual int numInitStages () const override
 
virtual void initialize (int stage) override
 
virtual void handleMessage (cMessage *msg) override
 

Protected Attributes

const Ieee80211OFDMDecoderofdmDecoder = nullptr
 
const IScramblerdescrambler = nullptr
 
const IFECCoderconvolutionalDecoder = nullptr
 
const IInterleaverdeinterleaver = nullptr
 
const Ieee80211OFDMCodecode = nullptr
 

Additional Inherited Members

- Public Types inherited from inet::physicallayer::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 

Constructor & Destructor Documentation

inet::physicallayer::Ieee80211OFDMDecoderModule::~Ieee80211OFDMDecoderModule ( )
virtual
57 {
58  delete code;
59  delete ofdmDecoder;
60 }
const Ieee80211OFDMDecoder * ofdmDecoder
Definition: Ieee80211OFDMDecoderModule.h:36
const Ieee80211OFDMCode * code
Definition: Ieee80211OFDMDecoderModule.h:40

Member Function Documentation

const IReceptionPacketModel * inet::physicallayer::Ieee80211OFDMDecoderModule::decode ( const IReceptionBitModel bitModel) const
overridevirtual

Implements inet::physicallayer::IDecoder.

52 {
53  return ofdmDecoder->decode(bitModel);
54 }
const IReceptionPacketModel * decode(const IReceptionBitModel *bitModel) const override
Definition: Ieee80211OFDMDecoder.cc:57
const Ieee80211OFDMDecoder * ofdmDecoder
Definition: Ieee80211OFDMDecoderModule.h:36
const Ieee80211OFDMCode* inet::physicallayer::Ieee80211OFDMDecoderModule::getCode ( ) const
inline
virtual void inet::physicallayer::Ieee80211OFDMDecoderModule::handleMessage ( cMessage *  msg)
inlineoverrideprotectedvirtual
45 { throw cRuntimeError("This module doesn't handle self messages"); }
void inet::physicallayer::Ieee80211OFDMDecoderModule::initialize ( int  stage)
overrideprotectedvirtual
31 {
32  if (stage == INITSTAGE_LOCAL) {
33  descrambler = dynamic_cast<const IScrambler *>(getSubmodule("descrambler"));
34  convolutionalDecoder = dynamic_cast<const IFECCoder *>(getSubmodule("fecDecoder"));
35  deinterleaver = dynamic_cast<const IInterleaver *>(getSubmodule("deinterleaver"));
36  }
37  else if (stage == INITSTAGE_PHYSICAL_LAYER) {
38  const ConvolutionalCode *convolutionalCode = convolutionalDecoder ? dynamic_cast<const ConvolutionalCode *>(convolutionalDecoder->getForwardErrorCorrection()) : nullptr;
39  const Ieee80211OFDMInterleaving *interleaving = deinterleaver ? dynamic_cast<const Ieee80211OFDMInterleaving *>(deinterleaver->getInterleaving()) : nullptr;
40  const AdditiveScrambling *scrambling = descrambler ? dynamic_cast<const AdditiveScrambling *>(descrambler->getScrambling()) : nullptr;
41  code = new Ieee80211OFDMCode(convolutionalCode, interleaving, scrambling);
42  ofdmDecoder = new Ieee80211OFDMDecoder(code);
43  }
44 }
Initialization of the physical layer of protocol stacks.
Definition: InitStages.h:53
virtual const IInterleaving * getInterleaving() const =0
const IInterleaver * deinterleaver
Definition: Ieee80211OFDMDecoderModule.h:39
const Ieee80211OFDMDecoder * ofdmDecoder
Definition: Ieee80211OFDMDecoderModule.h:36
const IScrambler * descrambler
Definition: Ieee80211OFDMDecoderModule.h:37
const IFECCoder * convolutionalDecoder
Definition: Ieee80211OFDMDecoderModule.h:38
virtual const IScrambling * getScrambling() const =0
Local initializations.
Definition: InitStages.h:35
virtual const IForwardErrorCorrection * getForwardErrorCorrection() const =0
const Ieee80211OFDMCode * code
Definition: Ieee80211OFDMDecoderModule.h:40
virtual int inet::physicallayer::Ieee80211OFDMDecoderModule::numInitStages ( ) const
inlineoverrideprotectedvirtual
43 { return NUM_INIT_STAGES; }
The number of initialization stages.
Definition: InitStages.h:116
std::ostream & inet::physicallayer::Ieee80211OFDMDecoderModule::printToStream ( std::ostream &  stream,
int  level 
) const
overridevirtual

Prints this object to the provided output stream.

Function calls to operator<< with pointers or references either const or not are all forwarded to this function.

Reimplemented from inet::physicallayer::IPrintableObject.

47 {
48  return ofdmDecoder->printToStream(stream, level);
49 }
virtual std::ostream & printToStream(std::ostream &stream, int level) const override
Prints this object to the provided output stream.
Definition: Ieee80211OFDMDecoder.cc:46
const Ieee80211OFDMDecoder * ofdmDecoder
Definition: Ieee80211OFDMDecoderModule.h:36

Member Data Documentation

const Ieee80211OFDMCode* inet::physicallayer::Ieee80211OFDMDecoderModule::code = nullptr
protected
const IFECCoder* inet::physicallayer::Ieee80211OFDMDecoderModule::convolutionalDecoder = nullptr
protected

Referenced by initialize().

const IInterleaver* inet::physicallayer::Ieee80211OFDMDecoderModule::deinterleaver = nullptr
protected

Referenced by initialize().

const IScrambler* inet::physicallayer::Ieee80211OFDMDecoderModule::descrambler = nullptr
protected

Referenced by initialize().

const Ieee80211OFDMDecoder* inet::physicallayer::Ieee80211OFDMDecoderModule::ofdmDecoder = nullptr
protected

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