User Manual, Developers Guide and API Documentation

wimac::scheduler::BypassQueue Class Reference

#include <scheduler/BypassQueue.hpp>

Inheritance diagram for wimac::scheduler::BypassQueue:

Inheritance graph
[legend]
Collaboration diagram for wimac::scheduler::BypassQueue:

Collaboration graph
[legend]

List of all members.

Public Member Functions

 BypassQueue (wns::ldk::HasReceptorInterface *parent, const wns::pyconfig::View &config)
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.
wns::scheduler::ConnectionSet getActiveConnections () const
 Returns a ConnectionSet of all connections who have backlogged PDUs in his queue.
wns::scheduler::ConnectionSet getActiveConnectionsForPriority (unsigned int priority) const
 Returns a ConnectionSet of all connections with a certain priority who have backlogged PDUs in his queue.
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.
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)
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.
wns::scheduler::UserSet getQueuedUsers () const
 Returns a UserSet of all users who have backlogged PDUs in at least one of their queues.
wns::scheduler::QueueStatusContainer getQueueStatus () const
 Returns the container of QueueStatus for each cid.
wns::ldk::ReceptorgetReceptor () const
bool hasQueue (wns::scheduler::ConnectionID cid)
 Retrurn True if a queue for this cid exists.
bool isAccepting (const wns::ldk::CompoundPtr &) const
 Has to be called before calling put(CompoundPtr) to see whether the queue module can still accept the PDU.
virtual bool isEmpty () const
 Return True if there is no compound in the queue.
unsigned long int numBitsForCid (wns::scheduler::ConnectionID cid) const
 Returns the number of Bits to be scheduled for one user. Only used in scheduler/strategy/ProportionalFairBase.
unsigned long int numCompoundsForCid (wns::scheduler::ConnectionID cid) const
 Returns the number of Compounds the Queue has stored for a certain user. Only used in scheduler/strategy/ProportionalFairBase.
std::string printAllQueues ()
 print number of bits and pdus in each queue
void put (const wns::ldk::CompoundPtr &compound)
 Is used to store a PDU in the queue.
bool queueHasPDUs (wns::scheduler::ConnectionID) 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 (wns::scheduler::ConnectionID)
 Resets only the queue belonging to the given ConnectionID and all backlogged PDUs from this queue.
ProbeOutput resetQueues (wns::scheduler::UserID)
 Resets all queues belonging to the given user and deletes all backlogged PDUs in these queues.
void setColleagues (wns::scheduler::RegistryProxyInterface *registry)
 Gives the queue module access to the RegistryProxy.
void setFUN (wns::ldk::fun::FUN *fun)
 Gives the queue module access to the FUN.
bool supportsDynamicSegmentation () const
 true if getHeadOfLinePDUSegment() is supported

Private Attributes

struct {
   wns::scheduler::RegistryProxyInterface *   registry
colleagues_
wns::ldk::CompoundPtr current_
wns::ldk::HasReceptorInterfacehasReceptor_
IsAcceptingCheckerisAcceptingChecker_

Classes

struct  IsAcceptingChecker


Detailed Description

Definition at line 38 of file BypassQueue.hpp.


Constructor & Destructor Documentation

BypassQueue::BypassQueue ( wns::ldk::HasReceptorInterface parent,
const wns::pyconfig::View config 
)

Definition at line 241 of file BypassQueue.cpp.


Member Function Documentation

wns::scheduler::ConnectionSet BypassQueue::filterQueuedCids ( wns::scheduler::ConnectionSet  connections  )  [virtual]

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

Definition at line 281 of file BypassQueue.cpp.

void BypassQueue::frameStarts (  )  [virtual]

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

Definition at line 340 of file BypassQueue.cpp.

wns::scheduler::ConnectionSet BypassQueue::getActiveConnections (  )  const [virtual]

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

Definition at line 374 of file BypassQueue.cpp.

wns::scheduler::ConnectionSet BypassQueue::getActiveConnectionsForPriority ( unsigned int  priority  )  const

Definition at line 384 of file BypassQueue.cpp.

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

The exact sorting criterion for the queues (FIFO/LIFO etc.) depends on the specific implementation of the queue.

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

Definition at line 291 of file BypassQueue.cpp.

int BypassQueue::getHeadOfLinePDUbits ( wns::scheduler::ConnectionID  cid  )  [virtual]

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

Definition at line 304 of file BypassQueue.cpp.

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

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

Definition at line 357 of file BypassQueue.cpp.

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

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

Definition at line 448 of file BypassQueue.cpp.

wns::scheduler::UserSet BypassQueue::getQueuedUsers (  )  const [virtual]

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

Definition at line 364 of file BypassQueue.cpp.

wns::scheduler::QueueStatusContainer BypassQueue::getQueueStatus (  )  const [virtual]

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

Definition at line 419 of file BypassQueue.cpp.

wns::ldk::Receptor * BypassQueue::getReceptor (  )  const

Definition at line 442 of file BypassQueue.cpp.

bool BypassQueue::hasQueue ( wns::scheduler::ConnectionID  cid  )  [virtual]

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

Definition at line 314 of file BypassQueue.cpp.

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

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.

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

Definition at line 249 of file BypassQueue.cpp.

bool BypassQueue::isEmpty (  )  const [virtual]

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

Definition at line 267 of file BypassQueue.cpp.

unsigned long int BypassQueue::numBitsForCid ( wns::scheduler::ConnectionID  cid  )  const [virtual]

Returns the number of Bits to be scheduled for one user

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

Definition at line 413 of file BypassQueue.cpp.

unsigned long int BypassQueue::numCompoundsForCid ( wns::scheduler::ConnectionID  cid  )  const [virtual]

Returns the number of Compounds the Queue has stored for a certain user

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

Definition at line 401 of file BypassQueue.cpp.

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

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

Definition at line 436 of file BypassQueue.cpp.

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

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.

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

Definition at line 320 of file BypassQueue.cpp.

bool BypassQueue::queueHasPDUs ( wns::scheduler::ConnectionID  cid  )  const [virtual]

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

Definition at line 257 of file BypassQueue.cpp.

wns::scheduler::queue::QueueInterface::ProbeOutput BypassQueue::resetAllQueues (  )  [virtual]

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

Definition at line 328 of file BypassQueue.cpp.

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

Definition at line 345 of file BypassQueue.cpp.

wns::scheduler::queue::QueueInterface::ProbeOutput BypassQueue::resetQueues ( wns::scheduler::UserID   )  [virtual]

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

Definition at line 334 of file BypassQueue.cpp.

void BypassQueue::setColleagues ( wns::scheduler::RegistryProxyInterface registry  )  [virtual]

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

Definition at line 425 of file BypassQueue.cpp.

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

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

Definition at line 431 of file BypassQueue.cpp.

bool BypassQueue::supportsDynamicSegmentation (  )  const [virtual]

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

Definition at line 351 of file BypassQueue.cpp.


Member Data Documentation

Definition at line 244 of file BypassQueue.hpp.

Definition at line 240 of file BypassQueue.hpp.

Definition at line 242 of file BypassQueue.hpp.

Definition at line 247 of file BypassQueue.hpp.


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

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