Scheduler

trait Scheduler

A scheduler selects the next TaskInstances to be started by the Coordinator at a given time.

class Object
trait Matchable
class Any

Value members

Abstract methods

def addTask(task: TaskInstance): Unit

Adds a TaskInstance to be scheduled.

Adds a TaskInstance to be scheduled.

Value Params
task

The TaskInstance to add.

def getNextTasks(currentTime: Long, resourceMap: Map[String, TaskResource]): Seq[TaskInstance]

Determines which TaskInstances to start next.

Determines which TaskInstances to start next.

TaskInstances are assumed to be sorted by priority.

Value Params
currentTime

The current timestamp.

resourceMap

The map of available TaskResources.

tasks

The queue of TaskInstances waiting to be started.

Returns

The sequence of TaskInstances to start now.

def getTasks(): Iterable[TaskInstance]

Retrieves an iterable collection of queued TaskInstances.

Retrieves an iterable collection of queued TaskInstances.

Returns

The TaskInstances in the scheduling queue.

def noMoreTasks(): Boolean

Checks if all Tasks have been scheduled.

Checks if all Tasks have been scheduled.

Returns

true if there are no Tasks remaining.

def removeSimulation(simulation: String): Unit

Removes all TaskInstances belonging to an (presumably aborted) simulation.

Removes all TaskInstances belonging to an (presumably aborted) simulation.

Value Params
simulation

The name of the simulation that was aborted.

def removeTask(task: TaskInstance): Unit

Removes a TaskInstance that no longer needs scheduling.

Removes a TaskInstance that no longer needs scheduling.

Value Params
task

The TaskInstance to remove.

Concrete methods

def complete(task: TaskInstance, time: Long): Unit

Adds an Task described by an (ID,time) pair to the list of completed IDs

Adds an Task described by an (ID,time) pair to the list of completed IDs

Value Params
id

The ID to be added

time

The time at which the task completed

Returns

A LookaheadStructure with this (ID,time) pair added to the list of completed tasks

def isIdleResource(r: String, resourceMap: Map[String, TaskResource]): Boolean

Checks if a named TaskResource is idle.

Checks if a named TaskResource is idle.

Value Params
r

The name of the TaskResource.

resourceMap

The map of available TaskResources.

Returns

true if the resource is idle, false otherwise.

def removeLookahead(simulation: String): Unit

Removes the lookahead structure associated with the given actor.

Removes the lookahead structure associated with the given actor.

Value Params
actor

The actor corresponding to the lookahead structure.

def setLookahead(simulation: String, obj: Lookahead): Unit

Sets the lookahead structure for the specified actor.

Sets the lookahead structure for the specified actor.

Value Params
actor

The actor that created this lookahead structure.

obj

The lookahead structure.