#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 }
|
|
|
|
|
|
|