LookingAhead

trait LookingAhead extends Simulation

A trait that adds Lookahead capabilities to a simulation.

Works in conjunction with LookaheadScheduler.

Provides a lookahead structure that can be built up by the simulation and then sent to the scheduler for use in making schedules which look into the future to consider upcoming tasks in scheduling.

class Object
trait Matchable
class Any

Document{}

def abort(ids: UUID*): Unit

Declare IDs of TaskInstances that need to be aborted.

Declare IDs of TaskInstances that need to be aborted.

Value Params
ids

The UUIDs of the TaskInstances.

Inherited from
Simulation
def ack(taskIDs: Seq[UUID]): Unit

Declares that the simulation has finished processing one or more completed TaskInstances.

Declares that the simulation has finished processing one or more completed TaskInstances.

Identifies the tasks via their UUID.

Inherited from
Simulation
def done(result: Try[Any]): Unit

Declares that the simulation completed.

Declares that the simulation completed.

Value Params
result

The result of the simulation.

Inherited from
Simulation
def fail(exception: Throwable): Unit

Declares that the simulation has failed or has been aborted.

Declares that the simulation has failed or has been aborted.

Value Params
exception

The Throwable that caused the failure.

Inherited from
Simulation
def ready(): Unit

Declares that the simulation has finished calculating and is ready for virtual time to proceed.

Declares that the simulation has finished calculating and is ready for virtual time to proceed.

Inherited from
Simulation
def simWait(): Unit

Requests that the Manager waits for this simulation before it continues.

Requests that the Manager waits for this simulation before it continues.

The simulation needs to either register more tasks and become ready or finish.

Note

We assume the Manager is already waiting for another simulation when the request is made. Otherwise virtual time may progress unexpectedly and cause unpredictable behaviour depending on the timing of the Manager messages.

Inherited from
Simulation
def succeed(result: Any): Unit

Declares that the simulation completed successfully.

Declares that the simulation completed successfully.

Value Params
result

The successful result of the simulation.

Inherited from
Simulation
def task(t: Task): Unit

Declare a new Task that needs to be sent for simulation.

Declare a new Task that needs to be sent for simulation.

Value Params
t

The Task to send.

Inherited from
Simulation

Value members

Concrete methods

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

Manages a Task whose simulation has completed.

Manages a Task whose simulation has completed.

Removes the task from the lookahead structure and sends this updated structure to the scheduler before calling the complete method implementation of the parent class.

Value Params
task

The TaskInstance that completed.

time

The timestamp of its completion.

Definition Classes
override
Definition Classes

Inherited methods

override
def completed(time: Long, tasks: Seq[TaskInstance]): Unit
Definition Classes
Inherited from
Simulation
def name: String

A unique name for the simulation.

A unique name for the simulation.

Returns

The name of the SimulationRef.

Inherited from
SimulationRef
def run(): Unit

Starts the simulation.

Starts the simulation.

Inherited from
SimulationRef
def stop(): Unit

Stops/aborts the simuation.

Stops/aborts the simuation.

Inherited from
SimulationRef

Concrete fields

val completedTasks: Set[(UUID, Long)]