SlotTableSeq Class Reference
#include <slot.h>
Public Member Functions | |
SlotTableSeq (uint slotTableSize, TTime slotTablePeriod) | |
~SlotTableSeq () | |
uint | getSlotTableSize () const |
TTime | getSlotTablePeriod () const |
uint | nrFreeSlots (const TTime startTime, const TTime duration) |
SlotTablesIter | seqBegin () |
SlotTablesCIter | seqBegin () const |
SlotTablesIter | seqEnd () |
SlotTablesCIter | seqEnd () const |
void | insertSlotTable (SlotTablesIter pos, SlotTable &s) |
void | setUsedSlots (SlotReservations &s, TTime startTime, TTime endTime) |
void | reserveSlots (NoCSchedulingEntity *e, SlotReservations &s, const ulong linkSeqNr) |
void | releaseSlots (NoCSchedulingEntity *e, const ulong linkSeqNr) |
Private Attributes | |
uint | slotTableSize |
TTime | slotTablePeriod |
SlotTables | seq |
Detailed Description
SlotTableSeq A sequence of slot tables
Constructor & Destructor Documentation
SlotTableSeq Constructor
References seq, SlotTable::setEndTime(), and SlotTable::setStartTime().
SlotTableSeq::~SlotTableSeq | ( | ) |
SlotTableSeq Constructor
Member Function Documentation
TTime SlotTableSeq::getSlotTablePeriod | ( | ) | const [inline] |
Referenced by nrFreeSlots(), Link::print(), releaseSlots(), and reserveSlots().
uint SlotTableSeq::getSlotTableSize | ( | ) | const [inline] |
Referenced by Link::getUsedSlotsInSchedule(), and nrFreeSlots().
void SlotTableSeq::insertSlotTable | ( | SlotTablesIter | pos, | |
SlotTable & | s | |||
) | [inline] |
References seq.
Referenced by reserveSlots(), and setUsedSlots().
nrFreeSlots () The function returns the number of free slots within the time interval given by the start time and duration.
References SlotTable::getEndTime(), getSlotTablePeriod(), getSlotTableSize(), SlotTable::isSlotFree(), seqBegin(), and seqEnd().
void SlotTableSeq::releaseSlots | ( | NoCSchedulingEntity * | e, | |
const ulong | linkSeqNr | |||
) |
releaseSlots () Release the claim on the slot in the slot tables made by scheduling entity e. The 'linkSeqNr' indicates the position of the link this slot table sequence belongs to. The linkSeqNr starts at zero (=first link in route of e).
References NoCSchedulingEntity::getDuration(), SlotTable::getEndTime(), getSlotTablePeriod(), SlotTable::getStartTime(), NoCSchedulingEntity::getStartTime(), SlotTable::releaseSlots(), seqBegin(), and seqEnd().
void SlotTableSeq::reserveSlots | ( | NoCSchedulingEntity * | e, | |
SlotReservations & | slots, | |||
const ulong | linkSeqNr | |||
) |
reserveSlots () Reserve all slots in the slot tables for scheduling entity e. The 'linkSeqNr' indicates the position of the link this slot table sequence belongs to. The linkSeqNr starts at zero (=first link in route of e).
References ASSERT, NoCSchedulingEntity::getDuration(), SlotTable::getEndTime(), getSlotTablePeriod(), SlotTable::getStartTime(), NoCSchedulingEntity::getStartTime(), insertSlotTable(), SlotTable::reserveSlots(), seqBegin(), seqEnd(), SlotTable::setEndTime(), and SlotTable::setStartTime().
Referenced by Link::reserveSlots().
SlotTablesIter SlotTableSeq::seqBegin | ( | ) | [inline] |
References seq.
Referenced by Link::getUsedSlotsInSchedule(), nrFreeSlots(), releaseSlots(), reserveSlots(), setUsedSlots(), and Link::slotTableSeqBegin().
SlotTablesCIter SlotTableSeq::seqBegin | ( | ) | const [inline] |
References seq.
SlotTablesCIter SlotTableSeq::seqEnd | ( | ) | const [inline] |
References seq.
SlotTablesIter SlotTableSeq::seqEnd | ( | ) | [inline] |
References seq.
Referenced by Link::getUsedSlotsInSchedule(), nrFreeSlots(), releaseSlots(), reserveSlots(), setUsedSlots(), and Link::slotTableSeqEnd().
void SlotTableSeq::setUsedSlots | ( | SlotReservations & | s, | |
TTime | startTime, | |||
TTime | endTime | |||
) |
setUsedSlots () The function marks the slots specified in s as occupied between the given start and end time by another schedule.
References SlotTable::getEndTime(), SlotTable::getStartTime(), insertSlotTable(), seqBegin(), seqEnd(), SlotTable::setEndTime(), SlotTable::setStartTime(), and SlotTable::setUsedSlots().
Referenced by Link::setUsedSlots().
Member Data Documentation
SlotTables SlotTableSeq::seq [private] |
Referenced by insertSlotTable(), seqBegin(), seqEnd(), and SlotTableSeq().
TTime SlotTableSeq::slotTablePeriod [private] |
uint SlotTableSeq::slotTableSize [private] |
The documentation for this class was generated from the following files: