INET Framework for OMNeT++/OMNEST
inet::ieee80211::OptionalFs Class Reference

#include <GenericFrameSequences.h>

Inheritance diagram for inet::ieee80211::OptionalFs:
inet::ieee80211::IFrameSequence

Public Member Functions

virtual ~OptionalFs ()
 
 OptionalFs (IFrameSequence *element, std::function< bool(OptionalFs *, FrameSequenceContext *)> predicate=nullptr)
 
virtual int getStep ()
 
virtual bool isSequenceApply (FrameSequenceContext *context)
 
virtual void startSequence (FrameSequenceContext *context, int firstStep) override
 
virtual IFrameSequenceStepprepareStep (FrameSequenceContext *context) override
 
virtual bool completeStep (FrameSequenceContext *context) override
 
virtual std::string getHistory () const override
 
- Public Member Functions inherited from inet::ieee80211::IFrameSequence
virtual ~IFrameSequence ()
 

Protected Attributes

int firstStep = -1
 
int step = -1
 
bool apply = false
 
IFrameSequenceelement
 
std::function< bool(OptionalFs *, FrameSequenceContext *)> predicate
 

Constructor & Destructor Documentation

◆ ~OptionalFs()

virtual inet::ieee80211::OptionalFs::~OptionalFs ( )
inlinevirtual
54 { delete element; }

◆ OptionalFs()

inet::ieee80211::OptionalFs::OptionalFs ( IFrameSequence element,
std::function< bool(OptionalFs *, FrameSequenceContext *)>  predicate = nullptr 
)
70  :
73 {
74 }

Member Function Documentation

◆ completeStep()

bool inet::ieee80211::OptionalFs::completeStep ( FrameSequenceContext context)
overridevirtual

Implements inet::ieee80211::IFrameSequence.

91 {
92  ASSERT(apply);
93  step++;
94  return element->completeStep(context);
95 }

◆ getHistory()

std::string inet::ieee80211::OptionalFs::getHistory ( ) const
overridevirtual

Implements inet::ieee80211::IFrameSequence.

98 {
99  ASSERT(step != -1);
100  return apply ? "[" + element->getHistory() + "]" : "";
101 }

◆ getStep()

virtual int inet::ieee80211::OptionalFs::getStep ( )
inlinevirtual
57 { return firstStep + step; }

◆ isSequenceApply()

virtual bool inet::ieee80211::OptionalFs::isSequenceApply ( FrameSequenceContext context)
inlinevirtual
58 { return predicate(this, context); }

Referenced by startSequence().

◆ prepareStep()

IFrameSequenceStep * inet::ieee80211::OptionalFs::prepareStep ( FrameSequenceContext context)
overridevirtual

Implements inet::ieee80211::IFrameSequence.

86 {
87  return apply ? element->prepareStep(context) : nullptr;
88 }

◆ startSequence()

void inet::ieee80211::OptionalFs::startSequence ( FrameSequenceContext context,
int  firstStep 
)
overridevirtual

Implements inet::ieee80211::IFrameSequence.

77 {
78  this->firstStep = firstStep;
79  step = 0;
80  apply = isSequenceApply(context);
81  if (apply)
82  element->startSequence(context, firstStep);
83 }

Member Data Documentation

◆ apply

bool inet::ieee80211::OptionalFs::apply = false
protected

◆ element

IFrameSequence* inet::ieee80211::OptionalFs::element
protected

◆ firstStep

int inet::ieee80211::OptionalFs::firstStep = -1
protected

Referenced by startSequence().

◆ predicate

std::function<bool(OptionalFs *, FrameSequenceContext *)> inet::ieee80211::OptionalFs::predicate
protected

◆ step

int inet::ieee80211::OptionalFs::step = -1
protected

The documentation for this class was generated from the following files:
inet::ieee80211::OptionalFs::apply
bool apply
Definition: GenericFrameSequences.h:49
inet::ieee80211::OptionalFs::firstStep
int firstStep
Definition: GenericFrameSequences.h:47
inet::ieee80211::OptionalFs::isSequenceApply
virtual bool isSequenceApply(FrameSequenceContext *context)
Definition: GenericFrameSequences.h:58
inet::ieee80211::IFrameSequence::startSequence
virtual void startSequence(FrameSequenceContext *context, int step)=0
inet::ieee80211::OptionalFs::step
int step
Definition: GenericFrameSequences.h:48
inet::ieee80211::OptionalFs::element
IFrameSequence * element
Definition: GenericFrameSequences.h:50
inet::ieee80211::OptionalFs::predicate
std::function< bool(OptionalFs *, FrameSequenceContext *)> predicate
Definition: GenericFrameSequences.h:51
inet::ieee80211::IFrameSequence::completeStep
virtual bool completeStep(FrameSequenceContext *context)=0
inet::ieee80211::IFrameSequence::prepareStep
virtual IFrameSequenceStep * prepareStep(FrameSequenceContext *context)=0
inet::ieee80211::IFrameSequence::getHistory
virtual std::string getHistory() const =0