User Manual, Developers Guide and API Documentation

lte::helper::QueueProxy Class Reference

This class emulates the behaviour of a SimpleQueue, but can have different implementations behind it. In the colleages struct of a ResourceScheduler of function RS-TX it contains a SimpleQueue and simpy proxies all interfaces to it. In the function RS-RX it communicates with the RRHandler to emulate a real queue which does not exist here, but on the peer's transmitter side.

#include <helper/QueueProxy.hpp>

Inheritance diagram for lte::helper::QueueProxy:

Inheritance graph
[legend]
Collaboration diagram for lte::helper::QueueProxy:

Collaboration graph
[legend]

List of all members.

Public Member Functions

virtual
wns::scheduler::ConnectionSet 
filterQueuedCids (wns::scheduler::ConnectionSet connections)
 Returns the set of connections for which the queue has backlogged PDUs.
virtual void frameStarts ()
 May be called to signal that a frame starts.
virtual
wns::scheduler::ConnectionSet 
getActiveConnections () const
 Returns a ConnectionSet of all connections who have backlogged PDUs in his queue.
virtual wns::ldk::CompoundPtr getHeadOfLinePDU (wns::scheduler::ConnectionID cid)
 Delivers the PDU that is the head-of-line element, e.g. the oldest entry of the queue, in the queue specified by cid. The exact sorting criterion for the queues (FIFO/LIFO etc.) depends on the specific implementation of the queue.
virtual int getHeadOfLinePDUbits (wns::scheduler::ConnectionID cid)
 Delivers the size in bits of the PDU that will be returned by the next call to getHeadOfLinePDU(ConnectionID cid).
wns::ldk::CompoundPtr getHeadOfLinePDUSegment (wns::scheduler::ConnectionID cid, int bits)
 get compound out and do segmentation into bits (gross)
wns::simulator::Time getHeadOfLinePDUWaitingTime (wns::scheduler::ConnectionID cid)
int getMinimumSegmentSize () const
 if supportsDynamicSegmentation, this is the minimum size of a segment in bits
virtual std::queue
< wns::ldk::CompoundPtr
getQueueCopy (wns::scheduler::ConnectionID cid)
 Retrieves a copy of the queue for a CID. Makes no sense here so we throw.
virtual wns::scheduler::UserSet getQueuedUsers () const
 Returns a UserSet of all users who have backlogged PDUs in at least one of their queues.
virtual
wns::scheduler::QueueStatusContainer 
getQueueStatus () const
 Returns the a container of QueueStatus for each cid.
virtual bool hasQueue (wns::scheduler::ConnectionID cid)
 Return True if a queue for this cid exists.
virtual bool isAccepting (const wns::ldk::CompoundPtr &compound) const
 Has to be called before calling put(CompoundPtr) to see whether the queue module can still accept the PDU. According to the specific implementation the acceptance may be determined by the fill level of the correspondig queue. called in doIsAccepting(..) of the ResourceScheduler-FU.
virtual bool isEmpty () const
 Return True if there is no compound in the queue.
virtual unsigned long int numBitsForCid (wns::scheduler::ConnectionID cid) const
 Returns the number of Bits schedules for one user.
virtual unsigned long int numCompoundsForCid (wns::scheduler::ConnectionID cid) const
 Returns the number of Compounds the Queue has stored for a certain user.
virtual std::string printAllQueues ()
 print number of bits and pdus in each queue
virtual void put (const wns::ldk::CompoundPtr &compound)
 Is used to store a PDU in the queue. Before calling put(compound), a call to isAccepting(compound) has to be performed. The queue module has to retrieve the corresponding UserID and ConnctionID on its own.
virtual bool queueHasPDUs (wns::scheduler::ConnectionID cid) const
 Returns true if the queue belonging to cid has backlogged PDUs.
 QueueProxy (wns::ldk::HasReceptorInterface *, const wns::pyconfig::View &config)
virtual
wns::scheduler::queue::QueueInterface::ProbeOutput 
resetAllQueues ()
 Resets all internal queues and deletes all backlogged PDUs.
virtual
wns::scheduler::queue::QueueInterface::ProbeOutput 
resetQueue (wns::scheduler::ConnectionID cid)
 Resets only the queue belonging to the given ConnectionID and all backlogged PDUs from this queue.
virtual
wns::scheduler::queue::QueueInterface::ProbeOutput 
resetQueues (wns::scheduler::UserID user)
 Resets all queues belonging to the given user and deletes all backlogged PDUs in these queues.
virtual void setColleagues (wns::scheduler::RegistryProxyInterface *_registry)
 Gives the queue module access to the RegistryProxy.
virtual void setFUN (wns::ldk::fun::FUN *fun)
 Gives the queue module access to the FUN.
virtual void setQueue (wns::scheduler::queue::QueueInterface *_queue)
 set queue from outside (colleague)
virtual void setRRHandler (lte::controlplane::RRHandler *_rrhandler)
 set ResourceRequestHandler from outside (colleague)
bool supportsDynamicSegmentation () const
 true if getHeadOfLinePDUSegment() is supported
virtual void writeProbe (wns::scheduler::ConnectionID cid, unsigned int priority) const
 write queue contens (bits) into probe
virtual ~QueueProxy ()

Private Attributes

struct
lte::helper::QueueProxy::Colleagues 
colleagues
wns::pyconfig::View config
wns::logger::Logger logger
wns::probe::bus::contextprovider::VariableprobeContextProviderForCid
wns::probe::bus::contextprovider::VariableprobeContextProviderForPriority
wns::scheduler::queue::QueueInterfacequeue
bool queueIsExternal
 if queue has been set from outside, treat memory responsibility external (don't delete in destructor)
lte::controlplane::RRHandlerBSrrhandler
lte::controlplane::RequestStorageInterfacerrStorage
wns::probe::bus::ContextCollectorPtr sizeProbeBus

Classes

struct  Colleagues


Detailed Description

Definition at line 46 of file QueueProxy.hpp.


Constructor & Destructor Documentation

lte::helper::QueueProxy::QueueProxy ( wns::ldk::HasReceptorInterface ,
const wns::pyconfig::View config 
)

virtual lte::helper::QueueProxy::~QueueProxy (  )  [virtual]


Member Function Documentation

virtual wns::scheduler::ConnectionSet lte::helper::QueueProxy::filterQueuedCids ( wns::scheduler::ConnectionSet  connections  )  [virtual]

virtual void lte::helper::QueueProxy::frameStarts (  )  [virtual]

virtual wns::scheduler::ConnectionSet lte::helper::QueueProxy::getActiveConnections (  )  const [virtual]

virtual wns::ldk::CompoundPtr lte::helper::QueueProxy::getHeadOfLinePDU ( wns::scheduler::ConnectionID  cid  )  [virtual]

virtual int lte::helper::QueueProxy::getHeadOfLinePDUbits ( wns::scheduler::ConnectionID  cid  )  [virtual]

wns::ldk::CompoundPtr lte::helper::QueueProxy::getHeadOfLinePDUSegment ( wns::scheduler::ConnectionID  cid,
int  bits 
) [virtual]

wns::simulator::Time lte::helper::QueueProxy::getHeadOfLinePDUWaitingTime ( wns::scheduler::ConnectionID  cid  )  [inline]

Definition at line 110 of file QueueProxy.hpp.

int lte::helper::QueueProxy::getMinimumSegmentSize (  )  const [virtual]

virtual std::queue<wns::ldk::CompoundPtr> lte::helper::QueueProxy::getQueueCopy ( wns::scheduler::ConnectionID  cid  )  [virtual]

virtual wns::scheduler::UserSet lte::helper::QueueProxy::getQueuedUsers (  )  const [virtual]

virtual wns::scheduler::QueueStatusContainer lte::helper::QueueProxy::getQueueStatus (  )  const [virtual]

virtual bool lte::helper::QueueProxy::hasQueue ( wns::scheduler::ConnectionID  cid  )  [virtual]

virtual bool lte::helper::QueueProxy::isAccepting ( const wns::ldk::CompoundPtr compound  )  const [virtual]

virtual bool lte::helper::QueueProxy::isEmpty (  )  const [virtual]

virtual unsigned long int lte::helper::QueueProxy::numBitsForCid ( wns::scheduler::ConnectionID  cid  )  const [virtual]

virtual unsigned long int lte::helper::QueueProxy::numCompoundsForCid ( wns::scheduler::ConnectionID  cid  )  const [virtual]

virtual std::string lte::helper::QueueProxy::printAllQueues (  )  [virtual]

virtual void lte::helper::QueueProxy::put ( const wns::ldk::CompoundPtr compound  )  [virtual]

virtual bool lte::helper::QueueProxy::queueHasPDUs ( wns::scheduler::ConnectionID  cid  )  const [virtual]

virtual wns::scheduler::queue::QueueInterface::ProbeOutput lte::helper::QueueProxy::resetAllQueues (  )  [virtual]

virtual wns::scheduler::queue::QueueInterface::ProbeOutput lte::helper::QueueProxy::resetQueue ( wns::scheduler::ConnectionID  cid  )  [virtual]

virtual wns::scheduler::queue::QueueInterface::ProbeOutput lte::helper::QueueProxy::resetQueues ( wns::scheduler::UserID  user  )  [virtual]

virtual void lte::helper::QueueProxy::setColleagues ( wns::scheduler::RegistryProxyInterface registry  )  [virtual]

virtual void lte::helper::QueueProxy::setFUN ( wns::ldk::fun::FUN fun  )  [virtual]

virtual void lte::helper::QueueProxy::setQueue ( wns::scheduler::queue::QueueInterface _queue  )  [virtual]

virtual void lte::helper::QueueProxy::setRRHandler ( lte::controlplane::RRHandler _rrhandler  )  [virtual]

bool lte::helper::QueueProxy::supportsDynamicSegmentation (  )  const [virtual]

virtual void lte::helper::QueueProxy::writeProbe ( wns::scheduler::ConnectionID  cid,
unsigned int  priority 
) const [virtual]


Member Data Documentation

Definition at line 60 of file QueueProxy.hpp.

Definition at line 59 of file QueueProxy.hpp.

Definition at line 61 of file QueueProxy.hpp.

Definition at line 62 of file QueueProxy.hpp.

Definition at line 50 of file QueueProxy.hpp.

Definition at line 58 of file QueueProxy.hpp.

Definition at line 51 of file QueueProxy.hpp.

Definition at line 56 of file QueueProxy.hpp.

Definition at line 63 of file QueueProxy.hpp.


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

Generated on Sat May 26 03:32:34 2012 for openWNS by  doxygen 1.5.5