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

Public Member Functions | |
| DropTailQoSQueue () | |
| virtual | ~DropTailQoSQueue () |
Protected Member Functions | |
| virtual void | initialize () |
| virtual bool | enqueue (cMessage *msg) |
| virtual cMessage * | dequeue () |
Protected Attributes | |
| int | frameCapacity |
| int | numQueues |
| cQueue ** | queues |
| IQoSClassifier * | classifier |
|
|
|
|
|
00033 {
00034 for (int i=0; i<numQueues; i++)
00035 delete queues[i];
00036 delete [] queues;
00037 }
|
|
|
Redefined from PassiveQueueBase. Implements PassiveQueueBase. 00078 {
00079 // queue 0 is highest priority
00080 for (int i=0; i<numQueues; i++)
00081 if (!queues[i]->empty())
00082 return (cMessage *)queues[i]->pop();
00083 return NULL;
00084 }
|
|
|
Redefined from PassiveQueueBase. Implements PassiveQueueBase. 00060 {
00061 int queueIndex = classifier->classifyPacket(msg);
00062 cQueue *queue = queues[queueIndex];
00063
00064 if (frameCapacity && queue->length() >= frameCapacity)
00065 {
00066 EV << "Queue " << queueIndex << " full, dropping packet.\n";
00067 delete msg;
00068 return true;
00069 }
00070 else
00071 {
00072 queue->insert(msg);
00073 return false;
00074 }
00075 }
|
|
|
Reimplemented from PassiveQueueBase. 00040 {
00041 PassiveQueueBase::initialize();
00042
00043 // configuration
00044 frameCapacity = par("frameCapacity");
00045
00046 const char *classifierClass = par("classifierClass");
00047 classifier = check_and_cast<IQoSClassifier *>(createOne(classifierClass));
00048
00049 numQueues = classifier->numQueues();
00050 queues = new cQueue *[numQueues];
00051 for (int i=0; i<numQueues; i++)
00052 {
00053 char buf[32];
00054 sprintf(buf, "queue-%d", i);
00055 queues[i] = new cQueue(buf);
00056 }
00057 }
|
|
|
|
|
|
|
|
|
|
|
|
|
1.4.1