User Manual, Developers Guide and API Documentation

glue::mac::Backoff Class Reference

802.11 DCF style backoff

#include <mac/Backoff.hpp>

Inheritance diagram for glue::mac::Backoff:

Inheritance graph
[legend]
Collaboration diagram for glue::mac::Backoff:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 Backoff (BackoffObserver *backoffObserver, wns::simulator::Time sifsLength, wns::simulator::Time slotLength, wns::simulator::Time ackLength, const wns::logger::Logger &_logger)
virtual bool isCarrierIdle () const
virtual void onCarrierBusy ()
 called from PHY implementation if carrier is busy after it has been idle
virtual void onCarrierIdle ()
 called from PHY implementation if carrier is idle after it has been busy
virtual void onCollision ()
 called from PHY implementation if collision happened
virtual void timerExpired ()
virtual void transmissionRequest (bool isRetransmission=false)
virtual ~Backoff ()

Protected Attributes

int counter

Private Types

enum  CarrierSensingResult { carrierIdle, carrierBusy, carrierError }
typedef
wns::events::MemberFunction
< Backoff
LocalSignal
enum  State {
  idle, inSIFS, inSlotCountdown, finished,
  waitingForCarrierIdle
}
enum  tTransmissionState { none, pending, transmitting }

Private Member Functions

void startNewBackoffCountdown (wns::simulator::Time ifsLength)
void waitForTimer (wns::simulator::Time &waitLength)

Private Attributes

wns::simulator::Time ackLength
BackoffObserverbackoffObserver
CarrierSensingResult carrierSenseResult
wns::events::scheduler::IEventPtr currentSignal
int cw
int cwMax
int cwMin
wns::simulator::Time difsLength
wns::simulator::Time eifsLength
wns::logger::Logger logger
wns::simulator::Time sifsLength
wns::simulator::Time slotLength
State state
tTransmissionState transmissionState
wns::distribution::Uniform uniform


Detailed Description

Definition at line 46 of file Backoff.hpp.


Member Typedef Documentation

Definition at line 49 of file Backoff.hpp.


Member Enumeration Documentation

Enumerator:
carrierIdle 
carrierBusy 
carrierError 

Definition at line 87 of file Backoff.hpp.

enum glue::mac::Backoff::State [private]

Enumerator:
idle 
inSIFS 
inSlotCountdown 
finished 
waitingForCarrierIdle 

Definition at line 79 of file Backoff.hpp.

Enumerator:
none 
pending 
transmitting 

Definition at line 93 of file Backoff.hpp.


Constructor & Destructor Documentation

Backoff::Backoff ( BackoffObserver backoffObserver,
wns::simulator::Time  sifsLength,
wns::simulator::Time  slotLength,
wns::simulator::Time  ackLength,
const wns::logger::Logger _logger 
) [explicit]

Definition at line 22 of file Backoff.cpp.

Backoff::~Backoff (  )  [virtual]

Definition at line 56 of file Backoff.cpp.


Member Function Documentation

bool Backoff::isCarrierIdle (  )  const [virtual]

Definition at line 241 of file Backoff.cpp.

void Backoff::onCarrierBusy (  )  [virtual]

Implements wns::service::phy::copper::CarrierSensing.

Definition at line 204 of file Backoff.cpp.

void Backoff::onCarrierIdle (  )  [virtual]

Implements wns::service::phy::copper::CarrierSensing.

Definition at line 167 of file Backoff.cpp.

void Backoff::onCollision (  )  [virtual]

Implements wns::service::phy::copper::CarrierSensing.

Definition at line 223 of file Backoff.cpp.

void Backoff::startNewBackoffCountdown ( wns::simulator::Time  ifsLength  )  [private]

Definition at line 61 of file Backoff.cpp.

void Backoff::timerExpired (  )  [virtual]

Definition at line 86 of file Backoff.cpp.

void Backoff::transmissionRequest ( bool  isRetransmission = false  )  [virtual]

Definition at line 120 of file Backoff.cpp.

void Backoff::waitForTimer ( wns::simulator::Time waitLength  )  [private]

Definition at line 76 of file Backoff.cpp.


Member Data Documentation

Definition at line 103 of file Backoff.hpp.

Definition at line 99 of file Backoff.hpp.

Definition at line 116 of file Backoff.hpp.

Definition at line 121 of file Backoff.hpp.

Definition at line 114 of file Backoff.hpp.

Definition at line 112 of file Backoff.hpp.

Definition at line 111 of file Backoff.hpp.

Definition at line 110 of file Backoff.hpp.

Definition at line 104 of file Backoff.hpp.

Definition at line 105 of file Backoff.hpp.

Definition at line 115 of file Backoff.hpp.

Definition at line 101 of file Backoff.hpp.

Definition at line 102 of file Backoff.hpp.

Definition at line 107 of file Backoff.hpp.

Definition at line 108 of file Backoff.hpp.

Definition at line 113 of file Backoff.hpp.


The documentation for this class was generated from the following files:

Generated on Sat May 26 03:32:31 2012 for openWNS by  doxygen 1.5.5