INET Framework for OMNeT++/OMNEST
inet::ieee80211::SequenceNumberCyclic Struct Reference

#include <Ieee80211Defs.h>

Public Member Functions

 SequenceNumberCyclic ()
 
 SequenceNumberCyclic (SequenceNumber value)
 
 SequenceNumberCyclic (const SequenceNumberCyclic &other)
 
SequenceNumber get () const
 
SequenceNumberCyclicoperator= (const SequenceNumberCyclic &other)
 
bool operator== (const SequenceNumberCyclic &other) const
 
bool operator!= (const SequenceNumberCyclic &other) const
 
SequenceNumberCyclic operator- (int other) const
 
SequenceNumberCyclic operator+ (int other) const
 
bool operator< (const SequenceNumberCyclic &other) const
 
bool operator<= (const SequenceNumberCyclic &other) const
 
bool operator> (const SequenceNumberCyclic &other) const
 
bool operator>= (const SequenceNumberCyclic &other) const
 

Private Member Functions

SequenceNumber modulo4096 (SequenceNumber value) const
 
SequenceNumber distance4096 (SequenceNumber other) const
 

Private Attributes

SequenceNumber value
 

Constructor & Destructor Documentation

◆ SequenceNumberCyclic() [1/3]

inet::ieee80211::SequenceNumberCyclic::SequenceNumberCyclic ( )
inline
30 : value(-1) {}

◆ SequenceNumberCyclic() [2/3]

inet::ieee80211::SequenceNumberCyclic::SequenceNumberCyclic ( SequenceNumber  value)
inlineexplicit
31 : value(value) { ASSERT(0 <= value && value < 4096); }

◆ SequenceNumberCyclic() [3/3]

inet::ieee80211::SequenceNumberCyclic::SequenceNumberCyclic ( const SequenceNumberCyclic other)
inline
32 : value(other.value) { ASSERT(other.value != -1); }

Member Function Documentation

◆ distance4096()

SequenceNumber inet::ieee80211::SequenceNumberCyclic::distance4096 ( SequenceNumber  other) const
inlineprivate
27 { ASSERT(0 <= other && other < 4096); return (value - other + 4096) % 4096; }

◆ get()

◆ modulo4096()

SequenceNumber inet::ieee80211::SequenceNumberCyclic::modulo4096 ( SequenceNumber  value) const
inlineprivate
26 { ASSERT(value != -1); return (value % 4096 + 4096) % 4096; } // always returns positive result

Referenced by operator+(), and operator-().

◆ operator!=()

bool inet::ieee80211::SequenceNumberCyclic::operator!= ( const SequenceNumberCyclic other) const
inline
38 { ASSERT(value != -1 && other.value != -1); return value != other.value; }

◆ operator+()

SequenceNumberCyclic inet::ieee80211::SequenceNumberCyclic::operator+ ( int  other) const
inline
41 { ASSERT(value != -1); SequenceNumberCyclic result; result.value = modulo4096(value + other); return result; }

◆ operator-()

SequenceNumberCyclic inet::ieee80211::SequenceNumberCyclic::operator- ( int  other) const
inline
40 { ASSERT(value != -1); SequenceNumberCyclic result; result.value = modulo4096(value - other); return result; }

◆ operator<()

bool inet::ieee80211::SequenceNumberCyclic::operator< ( const SequenceNumberCyclic other) const
inline
43  {
44  ASSERT(value != -1 && other.value != -1);
45  SequenceNumber d = (other.value - value + 4096) % 4096;
46  return 0 < d && d < 2048;
47  }

◆ operator<=()

bool inet::ieee80211::SequenceNumberCyclic::operator<= ( const SequenceNumberCyclic other) const
inline
49 { return *this == other || *this < other; }

◆ operator=()

SequenceNumberCyclic& inet::ieee80211::SequenceNumberCyclic::operator= ( const SequenceNumberCyclic other)
inline
36 { ASSERT(other.value != -1 || value == other.value); value = other.value; return *this; }

◆ operator==()

bool inet::ieee80211::SequenceNumberCyclic::operator== ( const SequenceNumberCyclic other) const
inline
37 { ASSERT(value != -1 && other.value != -1); return value == other.value; }

◆ operator>()

bool inet::ieee80211::SequenceNumberCyclic::operator> ( const SequenceNumberCyclic other) const
inline
50 { return other < *this; }

◆ operator>=()

bool inet::ieee80211::SequenceNumberCyclic::operator>= ( const SequenceNumberCyclic other) const
inline
51 { return *this == other || *this > other; }

Member Data Documentation

◆ value

SequenceNumber inet::ieee80211::SequenceNumberCyclic::value
private

The documentation for this struct was generated from the following file:
inet::ieee80211::SequenceNumber
int16_t SequenceNumber
Definition: Ieee80211Defs.h:18
inet::ieee80211::SequenceNumberCyclic::modulo4096
SequenceNumber modulo4096(SequenceNumber value) const
Definition: Ieee80211Defs.h:26
inet::ieee80211::SequenceNumberCyclic::value
SequenceNumber value
Definition: Ieee80211Defs.h:23
inet::ieee80211::SequenceNumberCyclic::SequenceNumberCyclic
SequenceNumberCyclic()
Definition: Ieee80211Defs.h:30