streamit.scheduler2.constrained
Interface StreamInterface

All Superinterfaces:
StreamInterface

public interface StreamInterface
extends StreamInterface

streamit.scheduler2.constrained.StreamInteraface is an interface for constrained scheduler. All implementors of this interface assume that no other scheduler objects have been used.


Method Summary
 void createSteadyStateRestrictions(int streamNumExecs)
          Create restrictions for steady state execution.
 void doneSteadyState(LatencyNode node)
          Notify the stream that its steady state has just completed.
 StreamInterface getBottomConstrainedStream()
           
 LatencyNode getBottomLatencyNode()
           
 PhasingSchedule getNextPhase(Restrictions restrs, int nDataAvailable)
           
 StreamInterface getTopConstrainedStream()
           
 LatencyNode getTopLatencyNode()
           
 void initializeRestrictions(Restrictions restrictions)
          Initialize this stream for all of its restrictions.
 void initiateConstrained()
           
 void initRestrictionsCompleted(P2PPortal portal)
          Get notification that the initialization of a particular portal is complete.
 boolean isDoneInitializing()
          Check if the stream is done initializing all the portals that are inside it.
 boolean isDoneSteadyState()
          Check if the stream is done running the steady state schedule.
 void registerConstraint(P2PPortal portal)
          Inform a stream that is has to take care of a constraint.
 void registerNewlyBlockedSteadyRestriction(Restriction restriction)
          Inform the stream that one if its children is now blocked due to a restriction imposed by the stream.
 
Methods inherited from interface streamit.scheduler2.hierarchical.StreamInterface
addSteadySchedulePhase, getBottom, getInitScheduleStage, getInitStageNumPeek, getInitStageNumPop, getInitStageNumPush, getNumInitStages, getNumSteadyPhases, getPhasingInitSchedule, getPhasingSteadySchedule, getSteadyPhaseNumPeek, getSteadyPhaseNumPop, getSteadyPhaseNumPush, getSteadySchedulePhase, getTop
 
Methods inherited from interface streamit.scheduler2.base.StreamInterface
computeSchedule, getInitPeek, getInitPop, getInitPush, getInitSchedule, getNumNodeFirings, getNumNodes, getSteadyPeek, getSteadyPop, getSteadyPush, getSteadySchedule, getStreamIter
 

Method Detail

getTopConstrainedStream

StreamInterface getTopConstrainedStream()

getBottomConstrainedStream

StreamInterface getBottomConstrainedStream()

getBottomLatencyNode

LatencyNode getBottomLatencyNode()

getTopLatencyNode

LatencyNode getTopLatencyNode()

initiateConstrained

void initiateConstrained()

initializeRestrictions

void initializeRestrictions(Restrictions restrictions)
Initialize this stream for all of its restrictions. This function will create initial restrictions for this stream, and call this same function for all children of this stream.


createSteadyStateRestrictions

void createSteadyStateRestrictions(int streamNumExecs)
Create restrictions for steady state execution. Basically this will enter a restriction for EVERY single node, which will be equal to the steady state number of executions of this node in the greater parent. These restrictions will never be updated, only depleted and later blocked. This will ensure that I will execute every node EXACTLY the right number of times...


registerNewlyBlockedSteadyRestriction

void registerNewlyBlockedSteadyRestriction(Restriction restriction)
Inform the stream that one if its children is now blocked due to a restriction imposed by the stream.


isDoneInitializing

boolean isDoneInitializing()
Check if the stream is done initializing all the portals that are inside it. This will recursively check all the children.


isDoneSteadyState

boolean isDoneSteadyState()
Check if the stream is done running the steady state schedule. This will recursively check all the children.


initRestrictionsCompleted

void initRestrictionsCompleted(P2PPortal portal)
Get notification that the initialization of a particular portal is complete. Probably should create new, steady-state restrictions.


doneSteadyState

void doneSteadyState(LatencyNode node)
Notify the stream that its steady state has just completed. The parameter is a LatencyNode corresponding to the node whose steady state has just completed. This is used for identifying splitters and joiners.


registerConstraint

void registerConstraint(P2PPortal portal)
Inform a stream that is has to take care of a constraint.


getNextPhase

PhasingSchedule getNextPhase(Restrictions restrs,
                             int nDataAvailable)