#include <PassiveQueueBase.h>
Inheritance diagram for PassiveQueueBase:

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 | requestPacket () |
Protected Attributes | |
| int | packetRequested |
| int | numReceived |
| int | numDropped |
|
|
Returns a packet from the queue, or NULL if the queue is empty. Implemented in DropTailQoSQueue, DropTailQueue, and REDQueue. |
|
|
Inserts packet into the queue or the priority queue, or drops it (or another packet). Returns true if a packet was dropped. Implemented in DropTailQoSQueue, DropTailQueue, and REDQueue. |
|
|
Reimplemented in REDQueue. 00075 {
00076 recordScalar("packets received", numReceived);
00077 recordScalar("packets dropped", numDropped);
00078 }
|
|
|
00037 {
00038 numReceived++;
00039 if (packetRequested>0)
00040 {
00041 packetRequested--;
00042 send(msg, "out");
00043 }
00044 else
00045 {
00046 bool dropped = enqueue(msg);
00047 if (dropped)
00048 numDropped++;
00049 }
00050
00051 if (ev.isGUI())
00052 {
00053 char buf[40];
00054 sprintf(buf, "rcvd: %d pks\ndropped: %d pks", numReceived, numDropped);
00055 displayString().setTagArg("t",0,buf);
00056 }
00057 }
|
|
|
Reimplemented in DropTailQoSQueue, DropTailQueue, and REDQueue. 00025 {
00026 // state
00027 packetRequested = 0;
00028
00029 // statistics
00030 numReceived = 0;
00031 numDropped = 0;
00032 WATCH(numReceived);
00033 WATCH(numDropped);
00034 }
|
|
|
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 send(msg, "out");
00071 }
00072 }
|
|
|
|
|
|
|
|
|
|
1.4.1