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

MacTdmaTimer Class Reference

#include <mac-tdma.h>

Inheritance diagram for MacTdmaTimer:

Inheritance graph
[legend]
Collaboration diagram for MacTdmaTimer:

Collaboration graph
[legend]
List of all members.

Public Member Functions

 MacTdmaTimer (MacTdma *m, double s=0)
virtual void handle (Event *e)=0
virtual void start (Packet *p, double time)
virtual void stop (Packet *p)
virtual void pause (void)
virtual void resume (void)
int busy (void)
int paused (void)
double slottime (void)
double expire (void)

Protected Attributes

MacTdmamac
int busy_
int paused_
Event intr
double stime
double rtime
double slottime_

Constructor & Destructor Documentation

MacTdmaTimer::MacTdmaTimer MacTdma m,
double  s = 0
[inline]
 

Definition at line 159 of file mac-tdma.h.

References busy_, mac, paused_, rtime, slottime_, and stime.

00159                                                : mac(m) {
00160                 busy_ = paused_ = 0; stime = rtime = 0.0; slottime_ = s;
00161         }


Member Function Documentation

int MacTdmaTimer::busy void   )  [inline]
 

Definition at line 170 of file mac-tdma.h.

References busy_.

00170 { return busy_; }

double MacTdmaTimer::expire void   )  [inline]
 

Definition at line 173 of file mac-tdma.h.

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

00173                                    {
00174                 return ((stime + rtime) - Scheduler::instance().clock());
00175         }

Here is the call graph for this function:

virtual void MacTdmaTimer::handle Event e  )  [pure virtual]
 

Implements Handler.

Implemented in SlotTdmaTimer, RxPktTdmaTimer, and TxPktTdmaTimer.

virtual void MacTdmaTimer::pause void   )  [inline, virtual]
 

Definition at line 167 of file mac-tdma.h.

00167 { assert(0); }

int MacTdmaTimer::paused void   )  [inline]
 

Definition at line 171 of file mac-tdma.h.

References paused_.

00171 { return paused_; }

virtual void MacTdmaTimer::resume void   )  [inline, virtual]
 

Definition at line 168 of file mac-tdma.h.

00168 { assert(0); }

double MacTdmaTimer::slottime void   )  [inline]
 

Definition at line 172 of file mac-tdma.h.

References slottime_.

00172 { return slottime_; }

void MacTdmaTimer::start Packet p,
double  time
[virtual]
 

Definition at line 68 of file mac-tdma.cc.

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

Referenced by MacTdma::MacTdma(), MacTdma::send(), MacTdma::sendUp(), and MacTdma::slotHandler().

00069 {
00070         Scheduler &s = Scheduler::instance();
00071         assert(busy_ == 0);
00072   
00073         busy_ = 1;
00074         paused_ = 0;
00075         stime = s.clock();
00076         rtime = time;
00077         assert(rtime >= 0.0);
00078   
00079         s.schedule(this, p, rtime);
00080 }

Here is the call graph for this function:

void MacTdmaTimer::stop Packet p  )  [virtual]
 

Definition at line 82 of file mac-tdma.cc.

References busy_, Scheduler::cancel(), Packet::free(), Scheduler::instance(), paused_, rtime, and stime.

00083 {
00084         Scheduler &s = Scheduler::instance();
00085         assert(busy_);
00086   
00087         if(paused_ == 0)
00088                 s.cancel((Event *)p);
00089 
00090         // Should free the packet p.
00091         Packet::free(p);
00092   
00093         busy_ = 0;
00094         paused_ = 0;
00095         stime = 0.0;
00096         rtime = 0.0;
00097 }

Here is the call graph for this function:


Member Data Documentation

int MacTdmaTimer::busy_ [protected]
 

Definition at line 180 of file mac-tdma.h.

Referenced by busy(), TxPktTdmaTimer::handle(), RxPktTdmaTimer::handle(), SlotTdmaTimer::handle(), MacTdmaTimer(), start(), and stop().

Event MacTdmaTimer::intr [protected]
 

Definition at line 182 of file mac-tdma.h.

MacTdma* MacTdmaTimer::mac [protected]
 

Definition at line 179 of file mac-tdma.h.

Referenced by TxPktTdmaTimer::handle(), RxPktTdmaTimer::handle(), SlotTdmaTimer::handle(), and MacTdmaTimer().

int MacTdmaTimer::paused_ [protected]
 

Definition at line 181 of file mac-tdma.h.

Referenced by TxPktTdmaTimer::handle(), RxPktTdmaTimer::handle(), SlotTdmaTimer::handle(), MacTdmaTimer(), paused(), start(), and stop().

double MacTdmaTimer::rtime [protected]
 

Definition at line 184 of file mac-tdma.h.

Referenced by expire(), TxPktTdmaTimer::handle(), RxPktTdmaTimer::handle(), SlotTdmaTimer::handle(), MacTdmaTimer(), start(), and stop().

double MacTdmaTimer::slottime_ [protected]
 

Definition at line 185 of file mac-tdma.h.

Referenced by MacTdmaTimer(), and slottime().

double MacTdmaTimer::stime [protected]
 

Definition at line 183 of file mac-tdma.h.

Referenced by expire(), TxPktTdmaTimer::handle(), RxPktTdmaTimer::handle(), SlotTdmaTimer::handle(), MacTdmaTimer(), start(), and stop().


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