RINASim  October 2016
Documentation of framework for OMNeT++
RMTQueue Class Reference

#include <RMTQueue.h>

Inheritance diagram for RMTQueue:

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 FlowgetFlow () 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
 
Flowflow
 
simsignal_t sigRMTPDUPreRcvd
 
simsignal_t sigRMTPDUPostRcvd
 
simsignal_t sigRMTPDUPreSend
 
simsignal_t sigRMTPDUSent
 
simsignal_t sigStatRMTQueueLength
 

Friends

class RMT
 
class RMTPort
 
class RMTModuleAllocator
 

Detailed Description

Definition at line 34 of file RMTQueue.h.

Member Typedef Documentation

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.

Member Enumeration Documentation

Queue type (i.e. its direction).

Enumerator
INPUT 
OUTPUT 

Definition at line 48 of file RMTQueue.h.

Constructor & Destructor Documentation

RMTQueue::~RMTQueue ( )
virtual

Definition at line 30 of file RMTQueue.cc.

Member Function Documentation

iterator RMTQueue::begin ( )
inline

Definition at line 119 of file RMTQueue.h.

Referenced by finish(), and IterativeScheduling::IterativeScheduling::processQueues().

cPacket * RMTQueue::dropLast ( )
private

Definition at line 185 of file RMTQueue.cc.

Referenced by RMT::postQueueArrival().

iterator RMTQueue::end ( )
inline

Definition at line 120 of file RMTQueue.h.

Referenced by finish().

void RMTQueue::enqueuePDU ( cPacket *  pdu)
private

Definition at line 153 of file RMTQueue.cc.

Referenced by handleMessage().

void RMTQueue::finish ( )
protectedvirtual

Definition at line 39 of file RMTQueue.cc.

const cPacket * RMTQueue::getFirstPDU ( ) const
cGate * RMTQueue::getInputGate ( ) const
private
cGate * RMTQueue::getOutputGate ( ) const
private
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.

Returns
start of queue idle time

Definition at line 236 of file RMTQueue.cc.

Referenced by REDMonitor::postPDUInsertion().

cGate * RMTQueue::getRMTAccessGate ( ) const
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.

Returns
threshold length

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).

Returns
queue type enum value

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().

void RMTQueue::handleMessage ( cMessage *  msg)
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<<().

void RMTQueue::initialize ( )
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().

void RMTQueue::redrawGUI ( )
private

Definition at line 106 of file RMTQueue.cc.

Referenced by dropLast(), enqueuePDU(), initialize(), and releasePDU().

void RMTQueue::releasePDU ( void  )
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.

Parameters
valuenew maximum

Definition at line 221 of file RMTQueue.cc.

void RMTQueue::setRMTAccessGate ( cGate *  gate)
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.

Parameters
valuenew threshold

Definition at line 231 of file RMTQueue.cc.

void RMTQueue::setType ( queueType  type)
private

Definition at line 246 of file RMTQueue.cc.

Referenced by RMTModuleAllocator::addQueue().

Friends And Related Function Documentation

friend class RMT
friend

Definition at line 37 of file RMTQueue.h.

friend class RMTModuleAllocator
friend

Definition at line 39 of file RMTQueue.h.

friend class RMTPort
friend

Definition at line 38 of file RMTQueue.h.

Member Data Documentation

Flow* RMTQueue::flow
private

Definition at line 158 of file RMTQueue.h.

Referenced by getFlow(), and setFlow().

cGate* RMTQueue::inputGate
private

Definition at line 156 of file RMTQueue.h.

Referenced by getInputGate(), and initialize().

int RMTQueue::maxQLength
private

Definition at line 149 of file RMTQueue.h.

Referenced by getMaxLength(), info(), initialize(), redrawGUI(), and setMaxLength().

cGate* RMTQueue::outputGate
private

Definition at line 155 of file RMTQueue.h.

Referenced by getOutputGate(), initialize(), and releasePDU().

simtime_t RMTQueue::qTime
private

Definition at line 152 of file RMTQueue.h.

Referenced by getQTime(), initialize(), and releasePDU().

std::deque<cPacket*> RMTQueue::queue
private
cGate* RMTQueue::rmtAccessGate
private

Definition at line 154 of file RMTQueue.h.

Referenced by getRMTAccessGate(), and setRMTAccessGate().

simsignal_t RMTQueue::sigRMTPDUPostRcvd
private

Definition at line 173 of file RMTQueue.h.

Referenced by enqueuePDU(), and initialize().

simsignal_t RMTQueue::sigRMTPDUPreRcvd
private

Definition at line 172 of file RMTQueue.h.

Referenced by enqueuePDU(), and initialize().

simsignal_t RMTQueue::sigRMTPDUPreSend
private

Definition at line 174 of file RMTQueue.h.

Referenced by initialize(), and releasePDU().

simsignal_t RMTQueue::sigRMTPDUSent
private

Definition at line 175 of file RMTQueue.h.

Referenced by initialize(), and releasePDU().

simsignal_t RMTQueue::sigStatRMTQueueLength
private

Definition at line 176 of file RMTQueue.h.

Referenced by enqueuePDU(), initialize(), and releasePDU().

int RMTQueue::thresholdQLength
private

Definition at line 150 of file RMTQueue.h.

Referenced by getThreshLength(), initialize(), redrawGUI(), and setThreshLength().

queueType RMTQueue::type
private

Definition at line 147 of file RMTQueue.h.

Referenced by getType(), info(), and setType().


The documentation for this class was generated from the following files: