TwoVersionTransaction

rescala.scheduler.Twoversion.TwoVersionTransaction
sealed trait TwoVersionTransaction extends Transaction[State]

Abstract propagation definition that defines phases for reactive propagation through dependent reactive elements.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def commitPhase(): Unit

Commits all uncommitted changes to the reactive element.

Commits all uncommitted changes to the reactive element.

Attributes

Starts the propagation by applying the initial changes

Starts the propagation by applying the initial changes

Attributes

Call all registered after-commit obverser functions.

Call all registered after-commit obverser functions.

Attributes

def preparationPhase(initialWrites: Set[ReSource]): Unit

Locks (and potentially otherwise prepares) all affected reactive values to prevent interfering changes.

Locks (and potentially otherwise prepares) all affected reactive values to prevent interfering changes.

Value parameters

initialWrites

List of affected reactive values

Attributes

Performs the actual propagation, setting the new (not yet committed) values for each reactive element.

Performs the actual propagation, setting the new (not yet committed) values for each reactive element.

Attributes

Unlocks (and potentially otherwise reverts the propagation preparations for) each reactive value to allow future turns to run on them.

Unlocks (and potentially otherwise reverts the propagation preparations for) each reactive value to allow future turns to run on them.

Attributes

Reverts all uncommitted changes to the reactive element.

Reverts all uncommitted changes to the reactive element.

Attributes

def schedule(committable: ReSource): Unit

Schedules a temporarily written change to be committed by the turn.

Schedules a temporarily written change to be committed by the turn.

Attributes

Inherited methods

Attributes

Inherited from:
Transaction
final def now[A](reactive: of[State, A]): A

Attributes

Inherited from:
Transaction
def observe(obs: Observation): Unit

Attributes

Inherited from:
Transaction