RINASim
October 2016
Documentation of framework for OMNeT++
|
#include <RMTQueue.h>
Public Types | |
enum | queueType { INPUT = 'I', OUTPUT = 'O' } |
typedef std::deque< cPacket * >::iterator | iterator |
typedef std::deque< cPacket * >::const_iterator | const_iterator |
Public Member Functions | |
virtual | ~RMTQueue () |
queueType | getType () const |
int | getLength () const |
simtime_t | getQTime () const |
int | getMaxLength () const |
void | setMaxLength (int value) |
int | getThreshLength () const |
void | setThreshLength (int value) |
const cPacket * | getFirstPDU () const |
const cPacket * | getLastPDU () const |
iterator | begin () |
iterator | end () |
void | releasePDU () |
void | markCongestionOnLast () |
std::string | info () const |
void | setFlow (Flow *) |
const Flow * | getFlow () const |
Protected Member Functions | |
virtual void | initialize () |
virtual void | finish () |
virtual void | handleMessage (cMessage *msg) |
Private Member Functions | |
void | setType (queueType type) |
void | enqueuePDU (cPacket *pdu) |
cPacket * | dropLast () |
cGate * | getOutputGate () const |
cGate * | getInputGate () const |
cGate * | getRMTAccessGate () const |
void | setRMTAccessGate (cGate *gate) |
void | redrawGUI () |
Private Attributes | |
std::deque< cPacket * > | queue |
queueType | type |
int | maxQLength |
int | thresholdQLength |
simtime_t | qTime |
cGate * | rmtAccessGate |
cGate * | outputGate |
cGate * | inputGate |
Flow * | flow |
simsignal_t | sigRMTPDUPreRcvd |
simsignal_t | sigRMTPDUPostRcvd |
simsignal_t | sigRMTPDUPreSend |
simsignal_t | sigRMTPDUSent |
simsignal_t | sigStatRMTQueueLength |
Friends | |
class | RMT |
class | RMTPort |
class | RMTModuleAllocator |
Definition at line 34 of file RMTQueue.h.
typedef std::deque<cPacket*>::const_iterator RMTQueue::const_iterator |
Definition at line 118 of file RMTQueue.h.
typedef std::deque<cPacket*>::iterator RMTQueue::iterator |
Iterators.
Definition at line 117 of file RMTQueue.h.
enum RMTQueue::queueType |
|
virtual |
Definition at line 30 of file RMTQueue.cc.
|
inline |
Definition at line 119 of file RMTQueue.h.
Referenced by finish(), and IterativeScheduling::IterativeScheduling::processQueues().
|
private |
Definition at line 185 of file RMTQueue.cc.
Referenced by RMT::postQueueArrival().
|
inline |
Definition at line 120 of file RMTQueue.h.
Referenced by finish().
|
private |
Definition at line 153 of file RMTQueue.cc.
Referenced by handleMessage().
|
protectedvirtual |
Definition at line 39 of file RMTQueue.cc.
const cPacket * RMTQueue::getFirstPDU | ( | ) | const |
Returns a pointer to the first PDU in the queue.
Definition at line 271 of file RMTQueue.cc.
Referenced by MM_maxDelayLimited_Out::MM_maxDelayLimited_Out::getnextQueue(), MM_WFQ_Out::MM_WFQ_Out::getnextQueue(), ModularMonitor::ModularMonitor::prePDURelease(), PortsLoadMonitor::prePDURelease(), and RMT::preQueueDeparture().
const Flow * RMTQueue::getFlow | ( | ) | const |
Definition at line 84 of file RMTQueue.cc.
Referenced by IterativeScheduling::IterativeStopMonitor::postPDUInsertion(), IterativeScheduling::IterativeStopMonitor::postPDURelease(), and FWQ::WeightedFairQMonitor::postQueueCreation().
|
private |
Definition at line 266 of file RMTQueue.cc.
Referenced by RMTModuleAllocator::addQueue(), RMTPort::handleMessage(), and RMTModuleAllocator::removeQueue().
const cPacket * RMTQueue::getLastPDU | ( | ) | const |
Returns a pointer to the last PDU in the queue.
Definition at line 276 of file RMTQueue.cc.
Referenced by ReadRateReducer::onQueueLengthDrop(), MM_psDQ_Out::MM_psDQ_Out::pduInsertered(), MM_DQ_Out::MM_DQ_Out::pduInsertered(), ModularMonitor::ModularMonitor::postPDUInsertion(), FWQ::WeightedFairQMonitor::postPDUInsertion(), DQMonitor::DQMonitor::postPDUInsertion(), PortsLoadMonitor::postPDUInsertion(), RMT::postQueueArrival(), REDUpstreamNotifier::run(), UpstreamNotifier::run(), ReadRateReducer::run(), DumbMaxQ::run(), and ECNMarkerLG::run().
int RMTQueue::getLength | ( | ) | const |
Returns the current length of the message queue.
Definition at line 210 of file RMTQueue.cc.
Referenced by enqueuePDU(), RMTPort::getLongestQueue(), MM_Simple_Out::MM_Simple_Out::getnextQueue(), info(), REDMonitor::postPDUInsertion(), IterativeScheduling::IterativeStopMonitor::postPDUInsertion(), IterativeScheduling::IterativeStopMonitor::postPDURelease(), RMT::postQueueArrival(), RMT::postQueueDeparture(), DQSch::processQueues(), FWQ::WeightedFairQ::processQueues(), IterativeScheduling::IterativeScheduling::processQueues(), DumbSch::processQueues(), redrawGUI(), releasePDU(), REDUpstreamNotifier::run(), ECNMarker::run(), UpstreamNotifier::run(), ReadRateReducer::run(), TailDrop::run(), REDDropper::run(), and ECNMarkerLG::run().
int RMTQueue::getMaxLength | ( | ) | const |
Returns the maximum length of the queue.
Definition at line 215 of file RMTQueue.cc.
Referenced by MM_Simple_Drop::MM_Simple_Drop::getDropProbability(), MM_SPort_Drop::MM_SPort_Drop::getDropProbability(), BEMonitor::BEMonitor::getInDropProb(), DLMonitor::DLMonitor::getInDropProb(), eDLMonitor::eDLMonitor::getInDropProb(), TKMonitor::TKMonitor::getInDropProb(), BEMonitor::BEMonitor::getOutDropProb(), TKMonitor::TKMonitor::getOutDropProb(), REDUpstreamNotifier::run(), ECNMarker::run(), UpstreamNotifier::run(), ReadRateReducer::run(), TailDrop::run(), REDDropper::run(), and ECNMarkerLG::run().
|
private |
Definition at line 261 of file RMTQueue.cc.
Referenced by RMTModuleAllocator::addQueue(), RMTPort::registerOutputQueue(), RMTModuleAllocator::removeQueue(), and RMTPort::unregisterOutputQueue().
simtime_t RMTQueue::getQTime | ( | ) | const |
Returns the timestamp of the simulation time from which the queue has been empty. Usable only if the queue is currently empty.
Definition at line 236 of file RMTQueue.cc.
Referenced by REDMonitor::postPDUInsertion().
|
private |
Definition at line 251 of file RMTQueue.cc.
Referenced by RMT::relayPDUToPort(), and RMTModuleAllocator::removeQueue().
int RMTQueue::getThreshLength | ( | ) | const |
Returns the threshold length of the queue.
Definition at line 226 of file RMTQueue.cc.
Referenced by RMT::postQueueArrival(), RMT::postQueueDeparture(), REDUpstreamNotifier::run(), and REDDropper::run().
RMTQueueType RMTQueue::getType | ( | ) | const |
Returns the queue's type (i.e. its direction).
Definition at line 241 of file RMTQueue.cc.
Referenced by ModularMonitor::ModularMonitor::onMessageDrop(), FWQ::WeightedFairQMonitor::onMessageDrop(), BEMonitor::BEMonitor::onMessageDrop(), DQMonitor::DQMonitor::onMessageDrop(), DLMonitor::DLMonitor::onMessageDrop(), eDLMonitor::eDLMonitor::onMessageDrop(), TKMonitor::TKMonitor::onMessageDrop(), ModularMonitor::ModularMonitor::postPDUInsertion(), FWQ::WeightedFairQMonitor::postPDUInsertion(), IterativeScheduling::IterativeStopMonitor::postPDUInsertion(), BEMonitor::BEMonitor::postPDUInsertion(), DQMonitor::DQMonitor::postPDUInsertion(), DLMonitor::DLMonitor::postPDUInsertion(), eDLMonitor::eDLMonitor::postPDUInsertion(), TKMonitor::TKMonitor::postPDUInsertion(), FWQ::WeightedFairQMonitor::postPDURelease(), IterativeScheduling::IterativeStopMonitor::postPDURelease(), RMT::postQueueArrival(), ModularMonitor::ModularMonitor::postQueueCreation(), IterativeScheduling::IterativeStopMonitor::postQueueCreation(), IterativeScheduling::IterativeMonitor::postQueueCreation(), eDLMonitor::eDLMonitor::postQueueCreation(), TKMonitor::TKMonitor::postQueueCreation(), RMT::postQueueDeparture(), ModularMonitor::ModularMonitor::prePDURelease(), RMT::preQueueDeparture(), IterativeScheduling::IterativeStopMonitor::preQueueRemoval(), IterativeScheduling::IterativeMonitor::preQueueRemoval(), RMTModuleAllocator::removeQueue(), REDUpstreamNotifier::run(), UpstreamNotifier::run(), ReadRateReducer::run(), and DumbMaxQ::run().
|
protectedvirtual |
Definition at line 141 of file RMTQueue.cc.
std::string RMTQueue::info | ( | ) | const |
Spews out some information about queue state.
Definition at line 89 of file RMTQueue.cc.
Referenced by operator<<().
|
protectedvirtual |
Definition at line 56 of file RMTQueue.cc.
void RMTQueue::markCongestionOnLast | ( | ) |
Marks the last PDU in a queue with a congestion bit.
Definition at line 194 of file RMTQueue.cc.
Referenced by REDDropper::dropOrMark(), ECNMarker::run(), and ECNMarkerLG::run().
|
private |
Definition at line 106 of file RMTQueue.cc.
Referenced by dropLast(), enqueuePDU(), initialize(), and releasePDU().
void RMTQueue::releasePDU | ( | void | ) |
Sends out the first PDU in the queue.
Definition at line 162 of file RMTQueue.cc.
Referenced by DQSch::processQueues(), LongestQFirst::processQueues(), FWQ::WeightedFairQ::processQueues(), IterativeScheduling::IterativeScheduling::processQueues(), and DumbSch::processQueues().
void RMTQueue::setFlow | ( | Flow * | f | ) |
Definition at line 81 of file RMTQueue.cc.
void RMTQueue::setMaxLength | ( | int | value | ) |
Sets the maximum length of the queue.
value | new maximum |
Definition at line 221 of file RMTQueue.cc.
|
private |
Definition at line 256 of file RMTQueue.cc.
Referenced by RMTModuleAllocator::addQueue().
void RMTQueue::setThreshLength | ( | int | value | ) |
Sets the threshold length of the queue.
value | new threshold |
Definition at line 231 of file RMTQueue.cc.
|
private |
Definition at line 246 of file RMTQueue.cc.
Referenced by RMTModuleAllocator::addQueue().
|
friend |
Definition at line 37 of file RMTQueue.h.
|
friend |
Definition at line 39 of file RMTQueue.h.
|
friend |
Definition at line 38 of file RMTQueue.h.
|
private |
Definition at line 158 of file RMTQueue.h.
|
private |
Definition at line 156 of file RMTQueue.h.
Referenced by getInputGate(), and initialize().
|
private |
Definition at line 149 of file RMTQueue.h.
Referenced by getMaxLength(), info(), initialize(), redrawGUI(), and setMaxLength().
|
private |
Definition at line 155 of file RMTQueue.h.
Referenced by getOutputGate(), initialize(), and releasePDU().
|
private |
Definition at line 152 of file RMTQueue.h.
Referenced by getQTime(), initialize(), and releasePDU().
|
private |
Definition at line 146 of file RMTQueue.h.
Referenced by begin(), dropLast(), end(), enqueuePDU(), finish(), getFirstPDU(), getLastPDU(), getLength(), markCongestionOnLast(), releasePDU(), and ~RMTQueue().
|
private |
Definition at line 154 of file RMTQueue.h.
Referenced by getRMTAccessGate(), and setRMTAccessGate().
|
private |
Definition at line 173 of file RMTQueue.h.
Referenced by enqueuePDU(), and initialize().
|
private |
Definition at line 172 of file RMTQueue.h.
Referenced by enqueuePDU(), and initialize().
|
private |
Definition at line 174 of file RMTQueue.h.
Referenced by initialize(), and releasePDU().
|
private |
Definition at line 175 of file RMTQueue.h.
Referenced by initialize(), and releasePDU().
|
private |
Definition at line 176 of file RMTQueue.h.
Referenced by enqueuePDU(), initialize(), and releasePDU().
|
private |
Definition at line 150 of file RMTQueue.h.
Referenced by getThreshLength(), initialize(), redrawGUI(), and setThreshLength().
|
private |
Definition at line 147 of file RMTQueue.h.