PassiveQueueBase Class Reference

#include <PassiveQueueBase.h>

Inheritance diagram for PassiveQueueBase:

IPassiveQueue DropTailQoSQueue DropTailQueue Ieee80211MgmtBase REDQueue Ieee80211MgmtAdhoc Ieee80211MgmtAPBase Ieee80211MgmtSTA Ieee80211MgmtSTASimplified Ieee80211MgmtAP Ieee80211MgmtAPSimplified

List of all members.


Detailed Description

Abstract base class for passive queues. Implements IPassiveQueue. Enqueue/dequeue have to be implemented in virtual functions in subclasses; the actual queue or piority queue data structure also goes into subclasses.

Public Member Functions

virtual void requestPacket ()

Protected Member Functions

virtual void initialize ()
virtual void handleMessage (cMessage *msg)
virtual void finish ()
virtual bool enqueue (cMessage *msg)=0
virtual cMessage * dequeue ()=0
virtual void sendOut (cMessage *msg)=0

Protected Attributes

int packetRequested
int numQueueReceived
int numQueueDropped

Member Function Documentation

void PassiveQueueBase::initialize (  )  [protected, virtual]

void PassiveQueueBase::handleMessage ( cMessage *  msg  )  [protected, virtual]

Reimplemented in Ieee80211MgmtBase.

Referenced by Ieee80211MgmtBase::sendOrEnqueue().

00037 {
00038     numQueueReceived++;
00039     if (packetRequested>0)
00040     {
00041         packetRequested--;
00042         sendOut(msg);
00043     }
00044     else
00045     {
00046         bool dropped = enqueue(msg);
00047         if (dropped)
00048             numQueueDropped++;
00049     }
00050 
00051     if (ev.isGUI())
00052     {
00053         char buf[40];
00054         sprintf(buf, "q rcvd: %d\nq dropped: %d", numQueueReceived, numQueueDropped);
00055         getDisplayString().setTagArg("t",0,buf);
00056     }
00057 }

void PassiveQueueBase::finish (  )  [protected, virtual]

Reimplemented in REDQueue.

Referenced by REDQueue::finish().

00075 {
00076     recordScalar("packets received by queue", numQueueReceived);
00077     recordScalar("packets dropped by queue", numQueueDropped);
00078 }

virtual bool PassiveQueueBase::enqueue ( cMessage *  msg  )  [protected, pure virtual]

Inserts packet into the queue or the priority queue, or drops it (or another packet). Returns true if a packet was dropped.

Implemented in Ieee80211MgmtBase, DropTailQoSQueue, DropTailQueue, and REDQueue.

Referenced by handleMessage().

virtual cMessage* PassiveQueueBase::dequeue (  )  [protected, pure virtual]

Returns a packet from the queue, or NULL if the queue is empty.

Implemented in Ieee80211MgmtBase, DropTailQoSQueue, DropTailQueue, and REDQueue.

Referenced by requestPacket().

virtual void PassiveQueueBase::sendOut ( cMessage *  msg  )  [protected, pure virtual]

Should be redefined to send out the packet; e.g. send(msg,"out").

Implemented in Ieee80211MgmtBase, DropTailQoSQueue, DropTailQueue, and REDQueue.

Referenced by handleMessage(), and requestPacket().

void PassiveQueueBase::requestPacket (  )  [virtual]

The queue should send a packet whenever this method is invoked. If the queue is currently empty, it should send a packet when when one becomes available.

Implements IPassiveQueue.

00060 {
00061     Enter_Method("requestPacket()");
00062 
00063     cMessage *msg = dequeue();
00064     if (msg==NULL)
00065     {
00066         packetRequested++;
00067     }
00068     else
00069     {
00070         sendOut(msg);
00071     }
00072 }


Member Data Documentation

Referenced by finish(), handleMessage(), and initialize().

Referenced by finish(), handleMessage(), and initialize().


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

Generated on Fri Mar 20 18:51:20 2009 for INET Framework for OMNeT++/OMNEST by  doxygen 1.5.5