Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

DeferTimer Class Reference

#include <mac-timers.h>

Inheritance diagram for DeferTimer:

Inheritance graph
[legend]
Collaboration diagram for DeferTimer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 DeferTimer (Mac802_11 *m, double s)
void start (double)
void handle (Event *e)
virtual void stop (void)
virtual void pause (void)
virtual void resume (void)
int busy (void)
int paused (void)
double expire (void)

Protected Attributes

Mac802_11mac
int busy_
int paused_
Event intr
double stime
double rtime
double slottime

Constructor & Destructor Documentation

DeferTimer::DeferTimer Mac802_11 m,
double  s
[inline]
 

Definition at line 88 of file mac-timers.h.

00088 : MacTimer(m,s) {}


Member Function Documentation

int MacTimer::busy void   )  [inline, inherited]
 

Definition at line 57 of file mac-timers.h.

References MacTimer::busy_.

Referenced by Mac802_11::backoffHandler(), Mac802_11::check_pktRTS(), Mac802_11::check_pktTx(), Mac802_11::collision(), Mac802_11::deferHandler(), Mac802_11::dump(), Mac802_11::recvACK(), Mac802_11::recvDATA(), Mac802_11::recvRTS(), Mac802_11::RetransmitDATA(), Mac802_11::RetransmitRTS(), Mac802_11::rx_resume(), Mac802_11::send(), Mac802_11::set_nav(), and Mac802_11::tx_resume().

00057 { return busy_; }

double MacTimer::expire void   )  [inline, inherited]
 

Definition at line 59 of file mac-timers.h.

References Scheduler::clock(), Scheduler::instance(), MacTimer::rtime, and MacTimer::stime.

Referenced by Mac802_11::collision(), and Mac802_11::dump().

00059                                    {
00060                 return ((stime + rtime) - Scheduler::instance().clock());
00061         }

Here is the call graph for this function:

void DeferTimer::handle Event e  )  [virtual]
 

Implements MacTimer.

Definition at line 126 of file mac-timers.cc.

References MacTimer::busy_, Mac802_11::deferHandler(), MacTimer::mac, MacTimer::paused_, MacTimer::rtime, and MacTimer::stime.

00127 {       
00128         busy_ = 0;
00129         paused_ = 0;
00130         stime = 0.0;
00131         rtime = 0.0;
00132 
00133 
00134 
00135         mac->deferHandler();
00136 }

Here is the call graph for this function:

virtual void MacTimer::pause void   )  [inline, virtual, inherited]
 

Reimplemented in BackoffTimer.

Definition at line 54 of file mac-timers.h.

00054 { assert(0); }

int MacTimer::paused void   )  [inline, inherited]
 

Definition at line 58 of file mac-timers.h.

References MacTimer::paused_.

Referenced by Mac802_11::dump(), and Mac802_11::navHandler().

00058 { return paused_; }

virtual void MacTimer::resume void   )  [inline, virtual, inherited]
 

Definition at line 55 of file mac-timers.h.

00055 { assert(0); }

void DeferTimer::start double   )  [virtual]
 

Reimplemented from MacTimer.

Definition at line 106 of file mac-timers.cc.

References MacTimer::busy_, Scheduler::clock(), Scheduler::instance(), MacTimer::intr, MacTimer::paused_, ROUND_TIME, MacTimer::rtime, Scheduler::schedule(), and MacTimer::stime.

Referenced by Mac802_11::send(), and Mac802_11::tx_resume().

00107 {
00108         Scheduler &s = Scheduler::instance();
00109 
00110         assert(busy_ == 0);
00111 
00112         busy_ = 1;
00113         paused_ = 0;
00114         stime = s.clock();
00115         rtime = time;
00116 #ifdef USE_SLOT_TIME
00117         ROUND_TIME();
00118 #endif
00119         assert(rtime >= 0.0);
00120 
00121         s.schedule(this, &intr, rtime);
00122 }

Here is the call graph for this function:

void MacTimer::stop void   )  [virtual, inherited]
 

Definition at line 87 of file mac-timers.cc.

References MacTimer::busy_, Scheduler::cancel(), Scheduler::instance(), MacTimer::intr, MacTimer::paused_, MacTimer::rtime, and MacTimer::stime.

Referenced by Mac802_11::collision(), Mac802_11::recvACK(), Mac802_11::recvCTS(), Mac802_11::recvDATA(), Mac802_11::recvRTS(), and Mac802_11::set_nav().

00088 {
00089         Scheduler &s = Scheduler::instance();
00090 
00091         assert(busy_);
00092 
00093         if(paused_ == 0)
00094                 s.cancel(&intr);
00095 
00096         busy_ = 0;
00097         paused_ = 0;
00098         stime = 0.0;
00099         rtime = 0.0;
00100 }

Here is the call graph for this function:


Member Data Documentation

int MacTimer::busy_ [protected, inherited]
 

Definition at line 65 of file mac-timers.h.

Referenced by MacTimer::busy(), BackoffTimer::handle(), IFTimer::handle(), TxTimer::handle(), RxTimer::handle(), NavTimer::handle(), handle(), MacTimer::MacTimer(), BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), start(), MacTimer::start(), and MacTimer::stop().

Event MacTimer::intr [protected, inherited]
 

Definition at line 67 of file mac-timers.h.

Referenced by BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), start(), MacTimer::start(), and MacTimer::stop().

Mac802_11* MacTimer::mac [protected, inherited]
 

Definition at line 64 of file mac-timers.h.

Referenced by BackoffTimer::handle(), IFTimer::handle(), TxTimer::handle(), RxTimer::handle(), NavTimer::handle(), handle(), MacTimer::MacTimer(), BackoffTimer::pause(), and BackoffTimer::start().

int MacTimer::paused_ [protected, inherited]
 

Definition at line 66 of file mac-timers.h.

Referenced by BackoffTimer::handle(), IFTimer::handle(), TxTimer::handle(), RxTimer::handle(), NavTimer::handle(), handle(), MacTimer::MacTimer(), BackoffTimer::pause(), MacTimer::paused(), BackoffTimer::resume(), BackoffTimer::start(), start(), MacTimer::start(), and MacTimer::stop().

double MacTimer::rtime [protected, inherited]
 

Definition at line 69 of file mac-timers.h.

Referenced by MacTimer::expire(), BackoffTimer::handle(), IFTimer::handle(), TxTimer::handle(), RxTimer::handle(), NavTimer::handle(), handle(), MacTimer::MacTimer(), BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), start(), MacTimer::start(), and MacTimer::stop().

double MacTimer::slottime [protected, inherited]
 

Definition at line 70 of file mac-timers.h.

Referenced by MacTimer::MacTimer().

double MacTimer::stime [protected, inherited]
 

Definition at line 68 of file mac-timers.h.

Referenced by MacTimer::expire(), BackoffTimer::handle(), IFTimer::handle(), TxTimer::handle(), RxTimer::handle(), NavTimer::handle(), handle(), MacTimer::MacTimer(), BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), start(), MacTimer::start(), and MacTimer::stop().


The documentation for this class was generated from the following files:
Generated on Tue Apr 20 12:37:23 2004 for NS2.26SourcesOriginal by doxygen 1.3.3