LookaheadSet

case
class LookaheadSet(lookaheadSet: Set[(Map[UUID, Long] => Option[Long], List[Task])]) extends Lookahead

A Lookahead that uses a set in the implementation

Value Params
completed

The initial completed tasks. Empty by default.

lookaheadSet

The initial set used. Empty by default.

See also
trait Serializable
trait Product
trait Equals
trait Lookahead
class Object
trait Matchable
class Any

Value members

Concrete methods

override
def ++(function: Map[UUID, Long] => Option[Long], generators: List[Task]): Lookahead

Adds an entry to the structure

Adds an entry to the structure

An entry is comprised of a function that describes the prerequisites and resultant starting time of a set of tasks, and a list of Tasks that should start if this function returns Some(value).

The function has type Map[UUID,Long]=>Option[Long]. It should take a map that contains the IDs of completed/scheduled tasks and their respective finishing times, and it should return None if the prerequisites of this entry are not met, and Some(value) if the prerequisites are met, where value should be the starting time of the tasks contained in this entry. This allows us to express a complex relationship whereby the starting time of the tasks in this lookahead entry can be an intricate function of the finishing times of the prerequisites.

Definition Classes
override
def -(id: UUID): Lookahead

Removes a task with the corresponding ID from the structure

Removes a task with the corresponding ID from the structure

Once removed, the task with this ID will no longer be returned.

Definition Classes
override
def getTaskData(scheduled: Iterable[(UUID, Long)]): Seq[(Task, Long)]

Retrieves all tasks that can start given the list of scheduled/completed tasks

Retrieves all tasks that can start given the list of scheduled/completed tasks

Definition Classes

Inherited methods

def +(function: Map[UUID, Long] => Option[Long], generator: Task): Lookahead

Provides a nicer interface for adding elements to the lookeahead structure.

Provides a nicer interface for adding elements to the lookeahead structure.

Allows adding a single generator instead of a list of generators.

Value Params
function

The function describing the conditions of starting the correspoinding task.

generator

The task that will start when the conditions are met.

See also
Inherited from
Lookahead
def +>(sourceID: UUID, generator: Task): Lookahead

Provides a nicer interface for adding elements to the lookeahead structure.

Provides a nicer interface for adding elements to the lookeahead structure.

Allows adding a simple one-to-one relationship, where the generator task starts right after the sourceID task finishes.

Value Params
generator

The generator fo the task that will start when the prior task finishes.

sourceID

The id of the task that will finish.

See also
Inherited from
Lookahead
def +>>(source: Set[UUID], generator: Task): Lookahead
Inherited from
Lookahead
def and(that: Lookahead): Lookahead

Combines two Lookaheads

Combines two Lookaheads

Value Params
that

The other Lookahead to merge with this one.

Returns

The merged Lookahead

Inherited from
Lookahead
def productElementNames: Iterator[String]
Inherited from
Product
def productIterator: Iterator[Any]
Inherited from
Product