#include <PassiveQueueBase.h>
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 |
void PassiveQueueBase::initialize | ( | ) | [protected, virtual] |
Reimplemented in DropTailQoSQueue, DropTailQueue, and REDQueue.
Referenced by REDQueue::initialize(), Ieee80211MgmtSTASimplified::initialize(), Ieee80211MgmtSTA::initialize(), Ieee80211MgmtBase::initialize(), Ieee80211MgmtAPSimplified::initialize(), Ieee80211MgmtAPBase::initialize(), Ieee80211MgmtAP::initialize(), Ieee80211MgmtAdhoc::initialize(), DropTailQueue::initialize(), and DropTailQoSQueue::initialize().
00024 { 00025 // state 00026 packetRequested = 0; 00027 WATCH(packetRequested); 00028 00029 // statistics 00030 numQueueReceived = 0; 00031 numQueueDropped = 0; 00032 WATCH(numQueueReceived); 00033 WATCH(numQueueDropped); 00034 }
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 }
int PassiveQueueBase::packetRequested [protected] |
Referenced by handleMessage(), initialize(), and requestPacket().
int PassiveQueueBase::numQueueReceived [protected] |
Referenced by finish(), handleMessage(), and initialize().
int PassiveQueueBase::numQueueDropped [protected] |
Referenced by finish(), handleMessage(), and initialize().