package backtype.storm.scheduler;
import java.util.Map;
public interface IScheduler {
void prepare(Map conf);
/**
* Set assignments for the topologies which needs scheduling. The new
* assignments is available through <code>cluster.getAssignments()</code>
*
* @param topologies
* all the topologies in the cluster, some of them need schedule.
* Topologies object here only contain static information about
* topologies. Information like assignments, slots are all in the
* <code>cluster</code>object.
* @param cluster
* the cluster these topologies are running in.
* <code>cluster</code> contains everything user need to develop
* a new scheduling logic. e.g. supervisors information,
* available slots, current assignments for all the topologies
* etc. User can set the new assignment for topologies using
* <code>cluster.setAssignmentById</code>
*/
void schedule(Topologies topologies, Cluster cluster);
}