/** * Copyright (c) 2009-2011, The HATS Consortium. All rights reserved. * This file is licensed under the terms of the Modified BSD License. */ package abs.backend.java.observing; import java.util.List; public interface TaskSchedulerView { /** * Returns a list of all ready tasks. Ready tasks are tasks that can * definitely be scheduled. Note that this list does not include tasks that * are suspended on an unstable guard, i.e., a guard that may become false * after it was true. Such tasks are in the suspendedTasks list. */ List<TaskView> getReadyTasks(); /** * Returns a list of all suspended tasks. * All these tasks wait on a guard. * Some of these guards may be true. */ List<TaskView> getSuspendedTasks(); /** * Returns a list of schedulable tasks. * This list contains all tasks of getReadyTasks() plus the tasks * from getSuspendedTasks(), which are waiting on a guard which is true */ List<TaskView> getSchedulableTasks(); TaskView getActiveTask(); void registerTaskSchedulerObserver(TaskSchedulerObserver listener); }