package edu.uprm.admg.nettraveler.sched;

import java.io.Serializable;

import edu.uprm.admg.nettraveler.plan.ExecutionSite;
import edu.uprm.admg.nettraveler.plan.Plan;

public interface Scheduler extends Serializable{
	
	public void schedule() throws SchedulerException;
	
	public boolean init(ExecutionSite[] sites, Plan plan) throws SchedulerException;
	
	public Plan getPlanForSite(ExecutionSite site);
	
	public boolean existPlansForSite(ExecutionSite site);
	
	public ExecutionSite[] getSites();
	
	public SchedType getType();
	
	public void setType(SchedType type);
	
	public void setMode(SchedMode mode);

	public void destroy();

}
