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

#include <Ieee80211OfdmDecoderModule.h>

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

Public Member Functions

virtual ~Ieee80211OfdmDecoderModule ()
 
virtual std::ostream & printToStream (std::ostream &stream, int level, int evFlags=0) 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::IPrintableObject
virtual ~IPrintableObject ()
 
virtual std::string printToString () const
 
virtual std::string printToString (int level, int evFlags=0) const
 
virtual std::string getInfoStringRepresentation (int evFlags=0) const
 
virtual std::string getDetailStringRepresentation (int evFlags=0) const
 
virtual std::string getDebugStringRepresentation (int evFlags=0) const
 
virtual std::string getTraceStringRepresentation (int evFlags=0) const
 
virtual std::string getCompleteStringRepresentation (int evFlags=0) 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::IPrintableObject
enum  PrintLevel {
  PRINT_LEVEL_TRACE, PRINT_LEVEL_DEBUG, PRINT_LEVEL_DETAIL, PRINT_LEVEL_INFO,
  PRINT_LEVEL_COMPLETE = INT_MIN
}
 
enum  PrintFlag { PRINT_FLAG_FORMATTED = (1 << 0), PRINT_FLAG_MULTILINE = (1 << 1) }
 

Constructor & Destructor Documentation

◆ ~Ieee80211OfdmDecoderModule()

inet::physicallayer::Ieee80211OfdmDecoderModule::~Ieee80211OfdmDecoderModule ( )
virtual
47 {
48  delete code;
49  delete ofdmDecoder;
50 }

Member Function Documentation

◆ decode()

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

Implements inet::physicallayer::IDecoder.

42 {
43  return ofdmDecoder->decode(bitModel);
44 }

◆ getCode()

◆ handleMessage()

virtual void inet::physicallayer::Ieee80211OfdmDecoderModule::handleMessage ( cMessage *  msg)
inlineoverrideprotectedvirtual
33 { throw cRuntimeError("This module doesn't handle self messages"); }

◆ initialize()

void inet::physicallayer::Ieee80211OfdmDecoderModule::initialize ( int  stage)
overrideprotectedvirtual
21 {
22  if (stage == INITSTAGE_LOCAL) {
23  descrambler = dynamic_cast<const IScrambler *>(getSubmodule("descrambler"));
24  convolutionalDecoder = dynamic_cast<const IFecCoder *>(getSubmodule("fecDecoder"));
25  deinterleaver = dynamic_cast<const IInterleaver *>(getSubmodule("deinterleaver"));
26  }
27  else if (stage == INITSTAGE_PHYSICAL_LAYER) {
28  const ConvolutionalCode *convolutionalCode = convolutionalDecoder ? dynamic_cast<const ConvolutionalCode *>(convolutionalDecoder->getForwardErrorCorrection()) : nullptr;
29  const Ieee80211OfdmInterleaving *interleaving = deinterleaver ? dynamic_cast<const Ieee80211OfdmInterleaving *>(deinterleaver->getInterleaving()) : nullptr;
30  const AdditiveScrambling *scrambling = descrambler ? dynamic_cast<const AdditiveScrambling *>(descrambler->getScrambling()) : nullptr;
31  code = new Ieee80211OfdmCode(convolutionalCode, interleaving, scrambling);
32  ofdmDecoder = new Ieee80211OfdmDecoder(code);
33  }
34 }

◆ numInitStages()

virtual int inet::physicallayer::Ieee80211OfdmDecoderModule::numInitStages ( ) const
inlineoverrideprotectedvirtual
31 { return NUM_INIT_STAGES; }

◆ printToStream()

std::ostream & inet::physicallayer::Ieee80211OfdmDecoderModule::printToStream ( std::ostream &  stream,
int  level,
int  evFlags = 0 
) const
overridevirtual

Prints this object to the provided output stream.

Reimplemented from inet::IPrintableObject.

37 {
38  return ofdmDecoder->printToStream(stream, level);
39 }

Member Data Documentation

◆ code

const Ieee80211OfdmCode* inet::physicallayer::Ieee80211OfdmDecoderModule::code = nullptr
protected

◆ convolutionalDecoder

const IFecCoder* inet::physicallayer::Ieee80211OfdmDecoderModule::convolutionalDecoder = nullptr
protected

Referenced by initialize().

◆ deinterleaver

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

Referenced by initialize().

◆ descrambler

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

Referenced by initialize().

◆ ofdmDecoder

const Ieee80211OfdmDecoder* inet::physicallayer::Ieee80211OfdmDecoderModule::ofdmDecoder = nullptr
protected

The documentation for this class was generated from the following files:
inet::physicallayer::Ieee80211OfdmDecoder::printToStream
virtual std::ostream & printToStream(std::ostream &stream, int level, int evFlags=0) const override
Prints this object to the provided output stream.
Definition: Ieee80211OfdmDecoder.cc:36
inet::physicallayer::Ieee80211OfdmDecoderModule::descrambler
const IScrambler * descrambler
Definition: Ieee80211OfdmDecoderModule.h:25
inet::physicallayer::Ieee80211OfdmDecoderModule::deinterleaver
const IInterleaver * deinterleaver
Definition: Ieee80211OfdmDecoderModule.h:27
inet::physicallayer::Ieee80211OfdmDecoderModule::code
const Ieee80211OfdmCode * code
Definition: Ieee80211OfdmDecoderModule.h:28
inet::physicallayer::Ieee80211OfdmDecoder::decode
const IReceptionPacketModel * decode(const IReceptionBitModel *bitModel) const override
Definition: Ieee80211OfdmDecoder.cc:47
inet::INITSTAGE_LOCAL
INET_API InitStage INITSTAGE_LOCAL
Initialization of local state that don't use or affect other modules includes:
inet::INITSTAGE_PHYSICAL_LAYER
INET_API InitStage INITSTAGE_PHYSICAL_LAYER
Initialization of physical layer protocols includes:
NUM_INIT_STAGES
#define NUM_INIT_STAGES
Definition: InitStageRegistry.h:73
inet::physicallayer::IInterleaver::getInterleaving
virtual const IInterleaving * getInterleaving() const =0
inet::physicallayer::Ieee80211OfdmDecoderModule::ofdmDecoder
const Ieee80211OfdmDecoder * ofdmDecoder
Definition: Ieee80211OfdmDecoderModule.h:24
inet::physicallayer::IFecCoder::getForwardErrorCorrection
virtual const IForwardErrorCorrection * getForwardErrorCorrection() const =0
inet::physicallayer::Ieee80211OfdmDecoderModule::convolutionalDecoder
const IFecCoder * convolutionalDecoder
Definition: Ieee80211OfdmDecoderModule.h:26
inet::physicallayer::IScrambler::getScrambling
virtual const IScrambling * getScrambling() const =0