package xsched.analysis.core; import java.util.List; import java.util.Set; /** * in TaskSchedule, we call everything "task variable"; in here, we call everything "node" * the task schedule uses an ordering to identify nodes that needs to be mapped to whatever data structure * originally represents this task variable. * * so for example, assume that the frontend uses a class SSAVariable to represent SSAVariables (funky integers) * then we might have SSAVariable(8) and SSAVariable(15) which are called "nodes" and the TV generic is a SSAVariable * * the TaskSchedule uses an ordering on those nodes, e.g., [SSAVariable(15), SSAVariable(8)] and uses the indexes of those * for the rest; so task variable 0 is then node SSAVariable(15) */ public interface TaskScheduleManager<TV> { void initializeFullSchedule(TaskSchedule<TV,?> schedule); List<TV> formalTaskParameterNodes(); Set<TV> scheduleSiteNodes(); List<TV> actualParametersForNode(TV node); }