|
INET Framework for OMNeT++/OMNEST
|
#include <FrameSequenceHandler.h>
◆ ~FrameSequenceHandler()
| inet::ieee80211::FrameSequenceHandler::~FrameSequenceHandler |
( |
| ) |
|
|
virtual |
◆ abortFrameSequence()
| void inet::ieee80211::FrameSequenceHandler::abortFrameSequence |
( |
| ) |
|
|
protectedvirtual |
151 EV_INFO <<
"Frame sequence aborted.\n";
155 auto frameToTransmit = failedTxStep->getFrameToTransmit();
156 auto header = frameToTransmit->peekAtFront<Ieee80211MacHeader>();
157 if (
auto dataOrMgmtHeader = dynamicPtrCast<const Ieee80211DataOrMgmtHeader>(header))
159 else if (
auto rtsTxStep =
dynamic_cast<RtsTransmitStep *
>(failedTxStep))
161 else if (
auto blockAckReq = dynamicPtrCast<const Ieee80211BlockAckReq>(header))
169 inProgressFrames->clearDroppedFrames();
Referenced by finishFrameSequenceStep(), and handleStartRxTimeout().
◆ finishFrameSequence()
| void inet::ieee80211::FrameSequenceHandler::finishFrameSequence |
( |
| ) |
|
|
protectedvirtual |
138 EV_INFO <<
"Frame sequence finished.\n";
146 inProgressFrames->clearDroppedFrames();
Referenced by startFrameSequenceStep().
◆ finishFrameSequenceStep()
| void inet::ieee80211::FrameSequenceHandler::finishFrameSequenceStep |
( |
| ) |
|
|
protectedvirtual |
118 switch (lastStep->getType()) {
120 auto transmitStep =
static_cast<ITransmitStep *
>(lastStep);
125 auto receiveStep =
static_cast<IReceiveStep *
>(lastStep);
131 throw cRuntimeError(
"Unknown frame sequence step type");
Referenced by processResponse(), and transmissionComplete().
◆ getContext()
◆ getFrameSequence()
| virtual const IFrameSequence* inet::ieee80211::FrameSequenceHandler::getFrameSequence |
( |
| ) |
const |
|
inlineoverridevirtual |
◆ handleStartRxTimeout()
| void inet::ieee80211::FrameSequenceHandler::handleStartRxTimeout |
( |
| ) |
|
|
overridevirtual |
Implements inet::ieee80211::IFrameSequenceHandler.
20 switch (lastStep->getType()) {
25 throw cRuntimeError(
"Received timeout while in transmit step");
27 throw cRuntimeError(
"Unknown step type");
◆ isSequenceRunning()
| virtual bool inet::ieee80211::FrameSequenceHandler::isSequenceRunning |
( |
| ) |
|
|
inlineoverridevirtual |
◆ processResponse()
| void inet::ieee80211::FrameSequenceHandler::processResponse |
( |
Packet * |
frame | ) |
|
|
overridevirtual |
Implements inet::ieee80211::IFrameSequenceHandler.
35 switch (lastStep->getType()) {
39 receiveStep->setFrameToReceive(frame);
46 throw cRuntimeError(
"Received frame while current step is transmit");
48 throw cRuntimeError(
"Unknown step type");
◆ startFrameSequence()
◆ startFrameSequenceStep()
| void inet::ieee80211::FrameSequenceHandler::startFrameSequenceStep |
( |
| ) |
|
|
protectedvirtual |
80 if (nextStep ==
nullptr)
84 switch (nextStep->getType()) {
86 auto transmitStep =
static_cast<TransmitStep *
>(nextStep);
87 EV_INFO <<
"Transmitting, frame = " << transmitStep->getFrameToTransmit() <<
".\n";
96 auto receiveStep =
static_cast<IReceiveStep *
>(nextStep);
101 throw cRuntimeError(
"Unknown frame sequence step type");
Referenced by processResponse(), startFrameSequence(), and transmissionComplete().
◆ transmissionComplete()
| void inet::ieee80211::FrameSequenceHandler::transmissionComplete |
( |
| ) |
|
|
overridevirtual |
◆ callback
◆ context
◆ frameSequence
| IFrameSequence* inet::ieee80211::FrameSequenceHandler::frameSequence = nullptr |
|
protected |
The documentation for this class was generated from the following files:
virtual void startFrameSequenceStep()
Definition: FrameSequenceHandler.cc:75
virtual void scheduleStartRxTimer(simtime_t timeout)=0
virtual void originatorProcessTransmittedFrame(Packet *packet)=0
virtual void startSequence(FrameSequenceContext *context, int step)=0
virtual void finishFrameSequence()
Definition: FrameSequenceHandler.cc:136
virtual void originatorProcessReceivedFrame(Packet *packet, Packet *lastTransmittedFrame)=0
virtual void originatorProcessFailedFrame(Packet *packet)=0
virtual InProgressFrames * getInProgressFrames() const
Definition: FrameSequenceContext.h:80
virtual void frameSequenceFinished()=0
virtual IFrameSequenceStep * getStepBeforeLast() const
Definition: FrameSequenceContext.h:78
virtual bool isSequenceRunning() override
Definition: FrameSequenceHandler.h:38
virtual void finishFrameSequenceStep()
Definition: FrameSequenceHandler.cc:106
double step(double a, double b)
Definition: INETMath.h:131
virtual void addStep(IFrameSequenceStep *step)
Definition: FrameSequenceContext.h:74
virtual void originatorProcessRtsProtectionFailed(Packet *packet)=0
virtual bool completeStep(FrameSequenceContext *context)=0
FrameSequenceContext * context
Definition: FrameSequenceHandler.h:23
IFrameSequenceHandler::ICallback * callback
Definition: FrameSequenceHandler.h:21
virtual IFrameSequenceStep * prepareStep(FrameSequenceContext *context)=0
virtual IFrameSequenceStep * getLastStep() const
Definition: FrameSequenceContext.h:77
virtual void transmitFrame(Packet *packet, simtime_t ifs)=0
virtual void abortFrameSequence()
Definition: FrameSequenceHandler.cc:149
IFrameSequence * frameSequence
Definition: FrameSequenceHandler.h:22
virtual std::string getHistory() const =0