BatchPlanner

org.sigilaris.core.application.scheduling.BatchPlanner
object BatchPlanner

Classifies and plans batches of items for execution based on conflict footprints.

Attributes

Source
BatchPlanning.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Concrete methods

def classify[A](item: A)(classifyItem: A => SchedulingClassification): ClassifiedItem[A]

Classifies a single item using the provided classification function.

Classifies a single item using the provided classification function.

Type parameters

A

the item type

Value parameters

classifyItem

the classification function

item

the item to classify

Attributes

Returns

the classified item

Source
BatchPlanning.scala
def classifyAll[A](items: Iterable[A])(classifyItem: A => SchedulingClassification): Vector[ClassifiedItem[A]]

Classifies all items in a collection.

Classifies all items in a collection.

Type parameters

A

the item type

Value parameters

classifyItem

the classification function

items

the items to classify

Attributes

Returns

a vector of classified items preserving order

Source
BatchPlanning.scala

Classifies a single item using its FootprintDeriver instance.

Classifies a single item using its FootprintDeriver instance.

Type parameters

A

the item type with a FootprintDeriver

Value parameters

item

the item to classify

Attributes

Returns

the classified item

Source
BatchPlanning.scala
def plan[A](items: Iterable[A])(classifyItem: A => SchedulingClassification): Either[FootprintConflict[A], BatchPlan[A]]

Classifies and plans a batch in one step.

Classifies and plans a batch in one step.

Type parameters

A

the item type

Value parameters

classifyItem

the classification function

items

the items to plan

Attributes

Returns

either a conflict or a batch plan

Source
BatchPlanning.scala
def planClassified[A](classified: Vector[ClassifiedItem[A]]): Either[FootprintConflict[A], BatchPlan[A]]

Plans a batch from already-classified items, verifying conflict-freedom if all are schedulable.

Plans a batch from already-classified items, verifying conflict-freedom if all are schedulable.

Type parameters

A

the item type

Value parameters

classified

the pre-classified items

Attributes

Returns

either a conflict or a batch plan

Source
BatchPlanning.scala
def planWithDeriver[A : FootprintDeriver](items: Iterable[A]): Either[FootprintConflict[A], BatchPlan[A]]

Classifies and plans a batch using the FootprintDeriver typeclass.

Classifies and plans a batch using the FootprintDeriver typeclass.

Type parameters

A

the item type with a FootprintDeriver

Value parameters

items

the items to plan

Attributes

Returns

either a conflict or a batch plan

Source
BatchPlanning.scala