package de.tu_darmstadt.tk.SmartHomeNetworkSim.core.scheduler; import java.util.TreeSet; import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Connection; import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Model; import de.tu_darmstadt.tk.SmartHomeNetworkSim.core.Port; /** * The Scheduler manages the EventQueue of the framework and allows manipulating the queue. * * @author Andreas T. Meyer-Berg */ public class Scheduler { /** * Event Queue, which stores the different events */ private TreeSet eventQueue; /** * Minimum time step. No earlier events can be scheduled */ private long minimumTimeStep = Long.MIN_VALUE; /** * Initializes a new Scheduler with an empty event queue. */ public Scheduler() { eventQueue = new TreeSet(new ScheduleComparator()); } /** * Schedules the given {@link Schedulable}, by adding it to the event queue. * @param event Event which should be scheduled * @return true if it was scheduled, false if otherwise */ public boolean scheduleEvent(Schedulable event){ if(event.getEventTime()