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