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

RxTimer Class Reference

#include <mac-timers.h>

Inheritance diagram for RxTimer:

Inheritance graph
[legend]
Collaboration diagram for RxTimer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 RxTimer (Mac802_11 *m)
void handle (Event *e)
virtual void start (double time)
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

RxTimer::RxTimer Mac802_11 m  )  [inline]
 

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

00110 : MacTimer(m) {}


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 RxTimer::handle Event e  )  [virtual]
 

Implements MacTimer.

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

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

00158 {       
00159         busy_ = 0;
00160         paused_ = 0;
00161         stime = 0.0;
00162         rtime = 0.0;
00163 
00164         mac->recvHandler();
00165 }

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 MacTimer::start double  time  )  [virtual, inherited]
 

Reimplemented in DeferTimer.

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

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

Referenced by Mac802_11::collision(), Mac802_11::recv(), and Mac802_11::set_nav().

00072 {
00073         Scheduler &s = Scheduler::instance();
00074         assert(busy_ == 0);
00075 
00076         busy_ = 1;
00077         paused_ = 0;
00078         stime = s.clock();
00079         rtime = time;
00080         assert(rtime >= 0.0);
00081 
00082 
00083         s.schedule(this, &intr, rtime);
00084 }

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(), handle(), NavTimer::handle(), DeferTimer::handle(), MacTimer::MacTimer(), BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), DeferTimer::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(), DeferTimer::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(), handle(), NavTimer::handle(), DeferTimer::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(), handle(), NavTimer::handle(), DeferTimer::handle(), MacTimer::MacTimer(), BackoffTimer::pause(), MacTimer::paused(), BackoffTimer::resume(), BackoffTimer::start(), DeferTimer::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(), handle(), NavTimer::handle(), DeferTimer::handle(), MacTimer::MacTimer(), BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), DeferTimer::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(), handle(), NavTimer::handle(), DeferTimer::handle(), MacTimer::MacTimer(), BackoffTimer::pause(), BackoffTimer::resume(), BackoffTimer::start(), DeferTimer::start(), MacTimer::start(), and MacTimer::stop().


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