User Manual, Developers Guide and API Documentation

wns::scheduler::queue::SegmentingQueue Class Reference

the queues handled by this class all use a FIFO strategy the queues are organized by ConnectionID cid (several per user)

#include <scheduler/queue/SegmentingQueue.hpp>

Inheritance diagram for wns::scheduler::queue::SegmentingQueue:

Inheritance graph
[legend]
Collaboration diagram for wns::scheduler::queue::SegmentingQueue:

Collaboration graph
[legend]

List of all members.

Public Member Functions

ConnectionSet filterQueuedCids (ConnectionSet connections)
 Returns the set of connections for which the queue has backlogged PDUs.
void frameStarts ()
 May be called to signal that a frame starts.
ConnectionSet getActiveConnections () const
 Returns a ConnectionSet of all connections who have backlogged PDUs in his queue.
bool getByteAlignHeader ()
Bit getExtensionHeaderSize ()
Bit getFixedHeaderSize ()
wns::ldk::CompoundPtr getHeadOfLinePDU (ConnectionID cid)
 compound out
int getHeadOfLinePDUbits (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 (ConnectionID cid, int bits)
 get compound out and do segmentation into bits (gross)
unsigned long int getMinimumSegmentSize ()
int getMinimumSegmentSize () const
 if supportsDynamicSegmentation, this is the minimum size of a segment in bits
std::queue< wns::ldk::CompoundPtrgetQueueCopy (ConnectionID cid)
 Retrieves a copy of the queue for a CID. Queued compounds are not copied but point to the same ones as in the original queue!
UserSet getQueuedUsers () const
 Returns a UserSet of all users who have backlogged PDUs in at least one of their queues.
QueueStatusContainer getQueueStatus () const
 Returns the a container of QueueStatus for each cid.
bool hasQueue (ConnectionID cid)
 Return True if a queue for this cid exists.
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.
bool isEmpty () const
 Return True if there is no compound in the queue.
unsigned long int numBitsForCid (ConnectionID cid) const
 Returns the number of Bits schedules for one user.
unsigned long int numCompoundsForCid (ConnectionID cid) const
 Returns the number of Compounds the Queue has stored for a certain user.
std::string printAllQueues ()
 print number of bits and pdus in each queue
void put (const wns::ldk::CompoundPtr &compound)
 compound in
bool queueHasPDUs (ConnectionID cid) const
 Returns true if the queue belonging to cid has backlogged PDUs.
ProbeOutput resetAllQueues ()
 Resets all internal queues and deletes all backlogged PDUs.
ProbeOutput resetQueue (ConnectionID cid)
 Resets only the queue belonging to the given ConnectionID and all backlogged PDUs from this queue.
ProbeOutput resetQueues (UserID user)
 Resets all queues belonging to the given user and deletes all backlogged PDUs in these queues.
 SegmentingQueue (wns::ldk::HasReceptorInterface *, const wns::pyconfig::View &config)
void setColleagues (RegistryProxyInterface *_registry)
 Gives the queue module access to the RegistryProxy.
void setFUN (wns::ldk::fun::FUN *fun)
 needed for probes
bool supportsDynamicSegmentation () const
 true if getHeadOfLinePDUSegment() is supported
virtual ~SegmentingQueue ()

Protected Member Functions

void probe ()

Private Types

typedef std::map< ConnectionID,
int
FixedOverheadContainer
typedef std::map< ConnectionID,
detail::InnerQueue
QueueContainer

Private Attributes

bool byteAlignHeader
struct
wns::scheduler::queue::SegmentingQueue::Colleagues 
colleagues
wns::pyconfig::View config
wns::probe::bus::ContextCollectorPtr delayProbeBus
Bit extensionHeaderSize
Bit fixedHeaderSize
FixedOverheadContainer fixedOverhead
bool isDropping
wns::logger::Logger logger
long int maxSize
unsigned long int minimumSegmentSize
wns::ldk::fun::FUNmyFUN
wns::probe::bus::ContextCollectorPtr overheadProbeBus
wns::ldk::CommandReaderInterfaceprobeHeaderReader
QueueContainer queues
wns::ldk::CommandReaderInterfacesegmentHeaderReader
wns::probe::bus::ContextCollectorPtr sizeProbeBus
bool usePadding

Classes

struct  Colleagues


Detailed Description

Definition at line 47 of file SegmentingQueue.hpp.


Member Typedef Documentation

Definition at line 134 of file SegmentingQueue.hpp.

Definition at line 131 of file SegmentingQueue.hpp.


Constructor & Destructor Documentation

SegmentingQueue::SegmentingQueue ( wns::ldk::HasReceptorInterface ,
const wns::pyconfig::View config 
)

Definition at line 42 of file SegmentingQueue.cpp.

SegmentingQueue::~SegmentingQueue (  )  [virtual]

Definition at line 58 of file SegmentingQueue.cpp.


Member Function Documentation

ConnectionSet SegmentingQueue::filterQueuedCids ( ConnectionSet  connections  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 361 of file SegmentingQueue.cpp.

void SegmentingQueue::frameStarts (  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 473 of file SegmentingQueue.cpp.

ConnectionSet SegmentingQueue::getActiveConnections (  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 190 of file SegmentingQueue.cpp.

bool wns::scheduler::queue::SegmentingQueue::getByteAlignHeader (  )  [inline]

Definition at line 110 of file SegmentingQueue.hpp.

Bit wns::scheduler::queue::SegmentingQueue::getExtensionHeaderSize (  )  [inline]

Definition at line 107 of file SegmentingQueue.hpp.

Bit wns::scheduler::queue::SegmentingQueue::getFixedHeaderSize (  )  [inline]

Definition at line 104 of file SegmentingQueue.hpp.

wns::ldk::CompoundPtr SegmentingQueue::getHeadOfLinePDU ( ConnectionID  cid  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 259 of file SegmentingQueue.cpp.

int SegmentingQueue::getHeadOfLinePDUbits ( ConnectionID  cid  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 265 of file SegmentingQueue.cpp.

wns::ldk::CompoundPtr SegmentingQueue::getHeadOfLinePDUSegment ( ConnectionID  cid,
int  bits 
) [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 275 of file SegmentingQueue.cpp.

unsigned long int wns::scheduler::queue::SegmentingQueue::getMinimumSegmentSize (  )  [inline]

Definition at line 101 of file SegmentingQueue.hpp.

int wns::scheduler::queue::SegmentingQueue::getMinimumSegmentSize (  )  const [inline, virtual]

Reimplemented from wns::scheduler::queue::QueueInterface.

Definition at line 92 of file SegmentingQueue.hpp.

std::queue< wns::ldk::CompoundPtr > SegmentingQueue::getQueueCopy ( ConnectionID  cid  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 330 of file SegmentingQueue.cpp.

UserSet SegmentingQueue::getQueuedUsers (  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 174 of file SegmentingQueue.cpp.

QueueStatusContainer SegmentingQueue::getQueueStatus (  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 232 of file SegmentingQueue.cpp.

bool SegmentingQueue::hasQueue ( ConnectionID  cid  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 348 of file SegmentingQueue.cpp.

bool SegmentingQueue::isAccepting ( const wns::ldk::CompoundPtr compound  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 98 of file SegmentingQueue.cpp.

bool SegmentingQueue::isEmpty (  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 337 of file SegmentingQueue.cpp.

unsigned long int SegmentingQueue::numBitsForCid ( ConnectionID  cid  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 214 of file SegmentingQueue.cpp.

unsigned long int SegmentingQueue::numCompoundsForCid ( ConnectionID  cid  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 206 of file SegmentingQueue.cpp.

std::string SegmentingQueue::printAllQueues (  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 484 of file SegmentingQueue.cpp.

void wns::scheduler::queue::SegmentingQueue::probe (  )  [protected]

void SegmentingQueue::put ( const wns::ldk::CompoundPtr compound  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 131 of file SegmentingQueue.cpp.

bool SegmentingQueue::queueHasPDUs ( ConnectionID  cid  )  const [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 354 of file SegmentingQueue.cpp.

QueueInterface::ProbeOutput SegmentingQueue::resetAllQueues (  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 379 of file SegmentingQueue.cpp.

QueueInterface::ProbeOutput SegmentingQueue::resetQueue ( ConnectionID  cid  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 451 of file SegmentingQueue.cpp.

QueueInterface::ProbeOutput SegmentingQueue::resetQueues ( UserID  user  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 407 of file SegmentingQueue.cpp.

void SegmentingQueue::setColleagues ( RegistryProxyInterface registry  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 373 of file SegmentingQueue.cpp.

void SegmentingQueue::setFUN ( wns::ldk::fun::FUN fun  )  [virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 63 of file SegmentingQueue.cpp.

bool wns::scheduler::queue::SegmentingQueue::supportsDynamicSegmentation (  )  const [inline, virtual]

Implements wns::scheduler::queue::QueueInterface.

Definition at line 88 of file SegmentingQueue.hpp.


Member Data Documentation

Definition at line 148 of file SegmentingQueue.hpp.

Definition at line 125 of file SegmentingQueue.hpp.

Definition at line 120 of file SegmentingQueue.hpp.

Definition at line 144 of file SegmentingQueue.hpp.

Definition at line 142 of file SegmentingQueue.hpp.

Definition at line 136 of file SegmentingQueue.hpp.

Definition at line 150 of file SegmentingQueue.hpp.

Definition at line 124 of file SegmentingQueue.hpp.

Definition at line 128 of file SegmentingQueue.hpp.

Definition at line 129 of file SegmentingQueue.hpp.

Definition at line 126 of file SegmentingQueue.hpp.

Definition at line 118 of file SegmentingQueue.hpp.

Definition at line 121 of file SegmentingQueue.hpp.

Definition at line 132 of file SegmentingQueue.hpp.

Definition at line 123 of file SegmentingQueue.hpp.

Definition at line 117 of file SegmentingQueue.hpp.

Definition at line 146 of file SegmentingQueue.hpp.


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

Generated on Sun May 27 03:33:04 2012 for openWNS by  doxygen 1.5.5