SlotTable Class Reference

#include <slot.h>

Collaboration diagram for SlotTable:

List of all members.

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
NoCSchedulingEntityoperator[] (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

NoCSchedulingEntitiesCIter SlotTable::begin (  )  const [inline]

References tableEntities.

NoCSchedulingEntitiesCIter SlotTable::end (  )  const [inline]

References tableEntities.

uint SlotTable::getNrFreeSlots (  )  const [inline]
uint SlotTable::getNrSlots (  )  const [inline]
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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

void SlotTable::setEndTime ( const TTime  t  )  [inline]
void SlotTable::setStartTime ( const TTime  t  )  [inline]
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().

Here is the call graph for this function:

Member Data Documentation

Referenced by getEndTime(), and setEndTime().

Referenced by getNrSlots(), and SlotTable().

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