SlotTable Class Reference
#include <slot.h>
Public Member Functions | |
SlotTable (uint sz) | |
~SlotTable () | |
TTime | getStartTime () const |
void | setStartTime (const TTime t) |
TTime | getEndTime () const |
void | setEndTime (const TTime t) |
uint | getNrSlots () const |
uint | getNrFreeSlots () const |
bool | isSlotFree (const uint i) const |
NoCSchedulingEntitiesIter | begin () |
NoCSchedulingEntitiesCIter | begin () const |
NoCSchedulingEntitiesIter | end () |
NoCSchedulingEntitiesCIter | end () const |
NoCSchedulingEntity * | operator[] (const uint i) |
void | setUsedSlots (SlotReservations &s) |
void | reserveSlots (NoCSchedulingEntity *e, SlotReservations &s) |
void | releaseSlots (NoCSchedulingEntity *e) |
SlotReservations | getSlotReservations (NoCSchedulingEntity *e) const |
SlotReservations | getUsedSlotsOfSchedule () const |
Private Attributes | |
TTime | startTime |
TTime | endTime |
uint | nrFreeSlots |
uint | nrSlots |
SlotReservations | tableReservations |
NoCSchedulingEntities | tableEntities |
Detailed Description
SlotTable The slot table...
Constructor & Destructor Documentation
SlotTable::SlotTable | ( | uint | sz | ) |
SlotTable () Constructor.
References nrFreeSlots, nrSlots, tableEntities, and tableReservations.
SlotTable::~SlotTable | ( | ) |
~SlotTable () Destructor.
Member Function Documentation
NoCSchedulingEntitiesIter SlotTable::begin | ( | ) | [inline] |
References tableEntities.
Referenced by NoCScheduler::findFreeSlotsOnFirstLinkRoute(), Link::print(), and releaseSlots().
NoCSchedulingEntitiesCIter SlotTable::begin | ( | ) | const [inline] |
References tableEntities.
NoCSchedulingEntitiesIter SlotTable::end | ( | ) | [inline] |
References tableEntities.
Referenced by NoCScheduler::findFreeSlotsOnFirstLinkRoute(), Link::print(), and releaseSlots().
NoCSchedulingEntitiesCIter SlotTable::end | ( | ) | const [inline] |
References tableEntities.
TTime SlotTable::getEndTime | ( | ) | const [inline] |
References endTime.
Referenced by NoCScheduleProblem::constrainOtherSchedulingProblem(), NoCScheduler::findFreeSlotsOnFirstLinkRoute(), NoCScheduler::findFreeSlotsOnLink(), NoCScheduler::minFreeSlotsOnLink(), SlotTableSeq::nrFreeSlots(), Link::print(), SlotTableSeq::releaseSlots(), SlotTableSeq::reserveSlots(), reserveSlots(), SlotTableSeq::setUsedSlots(), NoCScheduler::sortRoutesOnCost(), and ClassicNoCScheduler::sortRoutesOnCostUsingClassic().
uint SlotTable::getNrFreeSlots | ( | ) | const [inline] |
References nrFreeSlots.
Referenced by NoCScheduler::minFreeSlotsOnLink(), NoCScheduler::sortRoutesOnCost(), and ClassicNoCScheduler::sortRoutesOnCostUsingClassic().
uint SlotTable::getNrSlots | ( | ) | const [inline] |
References nrSlots.
Referenced by getSlotReservations(), getUsedSlotsOfSchedule(), reserveSlots(), and setUsedSlots().
SlotReservations SlotTable::getSlotReservations | ( | NoCSchedulingEntity * | e | ) | const |
getSlotReservations () The function returns a vector containing booleans which mark wether a slot is used (true) or not-used (false) by the given scheduling entity. The empty (non-allocated slots) are found by looking at the slot reservations of the NULL element.
References getNrSlots(), tableEntities, and tableReservations.
Referenced by SDFconvertToHTML::convertInterconnectUsage(), NoCScheduler::findFreeSlotsOnFirstLinkRoute(), and NoCScheduler::findFreeSlotsOnLink().
TTime SlotTable::getStartTime | ( | ) | const [inline] |
References startTime.
Referenced by NoCScheduleProblem::constrainOtherSchedulingProblem(), NoCScheduler::findFreeSlotsOnFirstLinkRoute(), NoCScheduler::findFreeSlotsOnLink(), NoCScheduler::minFreeSlotsOnLink(), Link::print(), SlotTableSeq::releaseSlots(), SlotTableSeq::reserveSlots(), reserveSlots(), SlotTableSeq::setUsedSlots(), NoCScheduler::sortRoutesOnCost(), and ClassicNoCScheduler::sortRoutesOnCostUsingClassic().
SlotReservations SlotTable::getUsedSlotsOfSchedule | ( | ) | const |
getUsedSlotsOfSchedule () The function returns a vector which indicates which slots are used for the current scheduling problem. This excludes reservations of slots which are used for other schedules.
References getNrSlots(), and tableEntities.
Referenced by NoCScheduleProblem::constrainOtherSchedulingProblem(), and Link::getUsedSlotsInSchedule().
bool SlotTable::isSlotFree | ( | const uint | i | ) | const |
NoCSchedulingEntity* SlotTable::operator[] | ( | const uint | i | ) | [inline] |
References tableEntities.
void SlotTable::releaseSlots | ( | NoCSchedulingEntity * | e | ) |
releaseSlots () Release the claim on a slot in the slot table.
References begin(), end(), nrFreeSlots, tableEntities, and tableReservations.
Referenced by SlotTableSeq::releaseSlots().
void SlotTable::reserveSlots | ( | NoCSchedulingEntity * | e, | |
SlotReservations & | s | |||
) |
reserveSlots () Reserve a slot in the slot table for a given scheduling entity.
References getEndTime(), NoCSchedulingEntity::getMessage(), getNrSlots(), getStartTime(), nrFreeSlots, NoCSchedulingEntity::print(), Message::print(), tableEntities, and tableReservations.
Referenced by SlotTableSeq::reserveSlots().
void SlotTable::setEndTime | ( | const TTime | t | ) | [inline] |
References endTime.
Referenced by SlotTableSeq::reserveSlots(), SlotTableSeq::setUsedSlots(), and SlotTableSeq::SlotTableSeq().
void SlotTable::setStartTime | ( | const TTime | t | ) | [inline] |
References startTime.
Referenced by SlotTableSeq::reserveSlots(), SlotTableSeq::setUsedSlots(), and SlotTableSeq::SlotTableSeq().
void SlotTable::setUsedSlots | ( | SlotReservations & | s | ) |
setUsedSlots () The function marks the slots specified in s as occupied between the given start and end time by another schedule.
References getNrSlots(), nrFreeSlots, and tableReservations.
Referenced by SlotTableSeq::setUsedSlots().
Member Data Documentation
TTime SlotTable::endTime [private] |
Referenced by getEndTime(), and setEndTime().
uint SlotTable::nrFreeSlots [private] |
Referenced by getNrFreeSlots(), releaseSlots(), reserveSlots(), setUsedSlots(), and SlotTable().
uint SlotTable::nrSlots [private] |
Referenced by getNrSlots(), and SlotTable().
TTime SlotTable::startTime [private] |
Referenced by getStartTime(), and setStartTime().
Referenced by begin(), end(), getSlotReservations(), getUsedSlotsOfSchedule(), operator[](), releaseSlots(), reserveSlots(), and SlotTable().
SlotReservations SlotTable::tableReservations [private] |
Referenced by getSlotReservations(), isSlotFree(), releaseSlots(), reserveSlots(), setUsedSlots(), and SlotTable().
The documentation for this class was generated from the following files: