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

#include <DcfTransmitLifetimeHandler.h>

Inheritance diagram for inet::ieee80211::DcfTransmitLifetimeHandler:
inet::ieee80211::ITransmitLifetimeHandler

Public Member Functions

 DcfTransmitLifetimeHandler (simtime_t maxTransmitLifetime)
 
virtual void frameGotInProgess (const Ptr< const Ieee80211DataHeader > &header)
 
virtual void frameTransmitted (const Ptr< const Ieee80211DataHeader > &header)
 
virtual bool isLifetimeExpired (const Ptr< const Ieee80211DataHeader > &header)
 
- Public Member Functions inherited from inet::ieee80211::ITransmitLifetimeHandler
virtual ~ITransmitLifetimeHandler ()
 

Protected Attributes

simtime_t maxTransmitLifetime
 
std::map< SequenceNumber, simtime_t > lifetimes
 

Constructor & Destructor Documentation

◆ DcfTransmitLifetimeHandler()

inet::ieee80211::DcfTransmitLifetimeHandler::DcfTransmitLifetimeHandler ( simtime_t  maxTransmitLifetime)
inline

Member Function Documentation

◆ frameGotInProgess()

void inet::ieee80211::DcfTransmitLifetimeHandler::frameGotInProgess ( const Ptr< const Ieee80211DataHeader > &  header)
virtual

Implements inet::ieee80211::ITransmitLifetimeHandler.

14 {
15  // don't care
16 }

◆ frameTransmitted()

void inet::ieee80211::DcfTransmitLifetimeHandler::frameTransmitted ( const Ptr< const Ieee80211DataHeader > &  header)
virtual

Implements inet::ieee80211::ITransmitLifetimeHandler.

24 {
25  if (header->getFragmentNumber() == 0)
26  lifetimes[header->getSequenceNumber().get()] = simTime();
27 }

◆ isLifetimeExpired()

bool inet::ieee80211::DcfTransmitLifetimeHandler::isLifetimeExpired ( const Ptr< const Ieee80211DataHeader > &  header)
virtual

Implements inet::ieee80211::ITransmitLifetimeHandler.

34 {
35  auto it = lifetimes.find(header->getSequenceNumber().get());
36  if (it == lifetimes.end())
37  throw cRuntimeError("There is no lifetime entry for frame = %s", header->getName());
38  return (simTime() - it->second) >= maxTransmitLifetime;
39 }

Member Data Documentation

◆ lifetimes

std::map<SequenceNumber, simtime_t> inet::ieee80211::DcfTransmitLifetimeHandler::lifetimes
protected

◆ maxTransmitLifetime

simtime_t inet::ieee80211::DcfTransmitLifetimeHandler::maxTransmitLifetime
protected

Referenced by isLifetimeExpired().


The documentation for this class was generated from the following files:
inet::ieee80211::DcfTransmitLifetimeHandler::maxTransmitLifetime
simtime_t maxTransmitLifetime
Definition: DcfTransmitLifetimeHandler.h:21
inet::ieee80211::DcfTransmitLifetimeHandler::lifetimes
std::map< SequenceNumber, simtime_t > lifetimes
Definition: DcfTransmitLifetimeHandler.h:22