User Manual, Developers Guide and API Documentation

wimac::scheduler::Scheduler Class Reference

The scheduler aggregates the scheduler components. More...

#include <scheduler/Scheduler.hpp>

Inheritance diagram for wimac::scheduler::Scheduler:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

void deliverSchedule (wns::ldk::Connector *)
 Deliver the scheduled compounds to the Connector.
void finishCollection ()
void finishScheduling ()
 Inform the scheduler about the end of the scheduling process.
wns::simulator::Time getDuration () const
 Get the duration of the next schedule.
wns::scheduler::harq::HARQInterfacegetHARQ ()
wns::scheduler::MapInfoCollectionPtr getMapInfo () const
 Returns a vector with burst start/end times and subBand identifier for every user scheduled by the scheduler. To be used by the map writer to write UL (and DL) maps.
int getNumBursts () const
wns::scheduler::queue::QueueInterfacegetQueue () const
wimac::scheduler::RegistryProxyWiMACgetRegistryProxy ()
wns::scheduler::SchedulingMapPtr getSchedulingMap () const
void notifyAboutConnectionDeleted (const ConnectionIdentifier)
void resetAllQueues ()
void resetCID (ConnectionIdentifier::CID cid)
void schedule (const wns::ldk::CompoundPtr &)
 Store a single compound for later scheduling.
 Scheduler (wns::ldk::FunctionalUnit *parent, const wns::pyconfig::View &config)
void setDuration (const wns::simulator::Time &duration)
 Set the duration for the next schedule round.
void setFUN (wns::ldk::fun::FUN *)
 Makes the scheduler familiar with the FUN.
void setProvider (wns::service::phy::ofdma::DataTransmission *_ofdmaProvider)
void setReceptor (wns::ldk::Receptor *receptor)
 Makes the scheduler familiar with its receptor.
void startScheduling ()
 Trigger the schedule process for the stored compounds.
 ~Scheduler ()

Protected Member Functions

void handleBroadcast ()
void setupPlotting ()

Protected Attributes

bool alwaysAcceptIfQueueAccepts
bool beamforming
struct {
   wimac::scheduler::Callback *   callback
   wns::scheduler::grouper::GroupingProviderInterface *   grouper
   wns::scheduler::harq::HARQInterface *   harq
   wimac::scheduler::PseudoBWRequestGenerator *   pseudoGenerator
   wns::scheduler::queue::QueueInterface *   queue
   wimac::scheduler::RegistryProxyWiMAC *   registry
   wns::scheduler::strategy::StrategyInterface *   strategy
colleagues
unsigned int freqChannels
struct
wimac::scheduler::Scheduler::Friends 
friends_
wns::logger::Logger logger
unsigned int maxBeams
int numberOfTimeSlots_
wns::simulator::Time offsetInSlot
std::vector
< boost::filesystem::fstream * > 
plotFiles
bool plotFrames
bool uplink
wns::simulator::Time usedSlotDuration

Private Member Functions

bool doIsAccepting (const wns::ldk::CompoundPtr &compound) const
void doStart (int)
void putProbe (int bits, int compounds)

Private Attributes

bool accepting_
std::string callbackName
wns::simulator::Time duration_
int frameNo
std::string grouperName
wimac::frame::MapHandlerInterfacemapHandler_
std::string mapHandlerName_
wns::service::phy::ofdma::DataTransmissionofdmaProvider
std::string outputDir
wns::ldk::FunctionalUnitparent_
int pduCount
wns::pyconfig::View pyConfig
std::string queueName
wns::ldk::Receptorreceptor_
std::string registryName
wns::probe::bus::ContextCollectorPtr resetedBitsProbe
wns::probe::bus::ContextCollectorPtr resetedCompoundsProbe
wns::scheduler::SchedulerSpotType schedulerSpot_
 there are three positions for the scheduler...
double slotDuration
std::string strategyName
wns::scheduler::strategy::StrategyResultPtr strategyResult_

Classes

struct  Friends


Detailed Description

The Scheduler aggregates the strategy, the grouper, the queue, the registry proxy, the callback and the pseudo packet generator if necessary.

Definition at line 98 of file Scheduler.hpp.


Constructor & Destructor Documentation

Scheduler::Scheduler ( wns::ldk::FunctionalUnit parent,
const wns::pyconfig::View config 
)

Definition at line 61 of file Scheduler.cpp.

Scheduler::~Scheduler (  ) 

Definition at line 124 of file Scheduler.cpp.


Member Function Documentation

void Scheduler::deliverSchedule ( wns::ldk::Connector  )  [virtual]

Implements wimac::scheduler::Interface.

Definition at line 187 of file Scheduler.cpp.

bool Scheduler::doIsAccepting ( const wns::ldk::CompoundPtr compound  )  const [private, virtual]

Implements wimac::scheduler::Interface.

Definition at line 156 of file Scheduler.cpp.

void wimac::scheduler::Scheduler::doStart ( int   )  [private]

void Scheduler::finishCollection (  ) 

Definition at line 330 of file Scheduler.cpp.

void wimac::scheduler::Scheduler::finishScheduling (  )  [inline, virtual]

Implements wimac::scheduler::Interface.

Definition at line 111 of file Scheduler.hpp.

wns::simulator::Time wimac::scheduler::Scheduler::getDuration (  )  const [inline, virtual]

Implements wimac::scheduler::Interface.

Definition at line 131 of file Scheduler.hpp.

wns::scheduler::harq::HARQInterface* wimac::scheduler::Scheduler::getHARQ (  )  [inline, virtual]

Implements wimac::scheduler::Interface.

Definition at line 155 of file Scheduler.hpp.

wns::scheduler::MapInfoCollectionPtr wimac::scheduler::Scheduler::getMapInfo (  )  const [inline, virtual]

Implements wns::scheduler::MapInfoProviderInterface.

Definition at line 136 of file Scheduler.hpp.

int Scheduler::getNumBursts (  )  const [virtual]

Implements wns::scheduler::MapInfoProviderInterface.

Definition at line 471 of file Scheduler.cpp.

wns::scheduler::queue::QueueInterface * Scheduler::getQueue (  )  const [virtual]

Returns a pointer to the queue of the current scheduling strategy.

Implements wimac::scheduler::Interface.

Definition at line 563 of file Scheduler.cpp.

wimac::scheduler::RegistryProxyWiMAC* wimac::scheduler::Scheduler::getRegistryProxy (  )  [inline, virtual]

Implements wimac::scheduler::Interface.

Definition at line 152 of file Scheduler.hpp.

wns::scheduler::SchedulingMapPtr Scheduler::getSchedulingMap (  )  const

Definition at line 458 of file Scheduler.cpp.

void Scheduler::handleBroadcast (  )  [protected]

Definition at line 478 of file Scheduler.cpp.

void Scheduler::notifyAboutConnectionDeleted ( const   ConnectionIdentifier  )  [virtual]

Implements wimac::service::ConnectionDeletedNotification.

Definition at line 170 of file Scheduler.cpp.

void Scheduler::putProbe ( int  bits,
int  compounds 
) [private]

Definition at line 553 of file Scheduler.cpp.

void Scheduler::resetAllQueues (  ) 

Definition at line 164 of file Scheduler.cpp.

void wimac::scheduler::Scheduler::resetCID ( ConnectionIdentifier::CID  cid  ) 

void Scheduler::schedule ( const wns::ldk::CompoundPtr  )  [virtual]

Implements wimac::scheduler::Interface.

Definition at line 149 of file Scheduler.cpp.

void wimac::scheduler::Scheduler::setDuration ( const wns::simulator::Time  )  [inline, virtual]

Implements wimac::scheduler::Interface.

Definition at line 128 of file Scheduler.hpp.

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

Implements wimac::scheduler::Interface.

Definition at line 348 of file Scheduler.cpp.

void Scheduler::setProvider ( wns::service::phy::ofdma::DataTransmission _ofdmaProvider  ) 

Todo:
Remove me when I have found a better testing work-around

Definition at line 453 of file Scheduler.cpp.

void wimac::scheduler::Scheduler::setReceptor ( wns::ldk::Receptor  )  [inline, virtual]

Implements wimac::scheduler::Interface.

Definition at line 125 of file Scheduler.hpp.

void Scheduler::setupPlotting (  )  [protected]

Definition at line 230 of file Scheduler.cpp.

void Scheduler::startScheduling (  )  [virtual]

Implements wimac::scheduler::Interface.

Definition at line 270 of file Scheduler.cpp.


Member Data Documentation

Definition at line 229 of file Scheduler.hpp.

Definition at line 182 of file Scheduler.hpp.

Definition at line 179 of file Scheduler.hpp.

Definition at line 171 of file Scheduler.hpp.

Definition at line 205 of file Scheduler.hpp.

struct { ... } wimac::scheduler::Scheduler::colleagues [protected]

Definition at line 206 of file Scheduler.hpp.

Definition at line 212 of file Scheduler.hpp.

Definition at line 177 of file Scheduler.hpp.

Definition at line 164 of file Scheduler.hpp.

Definition at line 202 of file Scheduler.hpp.

Definition at line 167 of file Scheduler.hpp.

Definition at line 190 of file Scheduler.hpp.

Definition at line 208 of file Scheduler.hpp.

Definition at line 209 of file Scheduler.hpp.

Definition at line 178 of file Scheduler.hpp.

Definition at line 180 of file Scheduler.hpp.

Definition at line 200 of file Scheduler.hpp.

Definition at line 176 of file Scheduler.hpp.

Definition at line 216 of file Scheduler.hpp.

Definition at line 227 of file Scheduler.hpp.

Definition at line 211 of file Scheduler.hpp.

std::vector<boost::filesystem::fstream*> wimac::scheduler::Scheduler::plotFiles [protected]

Definition at line 191 of file Scheduler.hpp.

Definition at line 161 of file Scheduler.hpp.

Definition at line 172 of file Scheduler.hpp.

Definition at line 214 of file Scheduler.hpp.

Definition at line 165 of file Scheduler.hpp.

Definition at line 203 of file Scheduler.hpp.

Definition at line 228 of file Scheduler.hpp.

Definition at line 170 of file Scheduler.hpp.

Definition at line 204 of file Scheduler.hpp.

Definition at line 222 of file Scheduler.hpp.

Definition at line 223 of file Scheduler.hpp.

Definition at line 219 of file Scheduler.hpp.

Definition at line 230 of file Scheduler.hpp.

Definition at line 166 of file Scheduler.hpp.

Definition at line 201 of file Scheduler.hpp.

Definition at line 225 of file Scheduler.hpp.

Definition at line 181 of file Scheduler.hpp.

Definition at line 175 of file Scheduler.hpp.


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

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