TwoVersionTransactionImpl

rescala.scheduler.Twoversion.TwoVersionTransactionImpl

Basic implementation of the most fundamental propagation steps as defined by AbstractPropagation. Only compatible with spore definitions that store a pulse value and support graph operations.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Type members

Classlikes

Attributes

Supertypes
class Object
trait Matchable
class Any
Self type

Value members

Abstract methods

allow the propagation to handle dynamic access to reactives

allow the propagation to handle dynamic access to reactives

Attributes

Concrete methods

override def access(reactive: ReSource): reactive.Value

Attributes

Definition Classes
final def commitDependencyDiff(node: Derived, current: Set[ReSource])(updated: Set[ReSource]): Unit
override def commitPhase(): Unit

Commits all uncommitted changes to the reactive element.

Commits all uncommitted changes to the reactive element.

Attributes

Definition Classes
override def observerPhase(): Unit

Call all registered after-commit obverser functions.

Call all registered after-commit obverser functions.

Attributes

Definition Classes
override def rollbackPhase(): Unit

Reverts all uncommitted changes to the reactive element.

Reverts all uncommitted changes to the reactive element.

Attributes

Definition Classes
override def schedule(commitable: 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

Definition Classes
def writeState(pulsing: ReSource)(value: pulsing.Value): Unit

Inherited methods

Starts the propagation by applying the initial changes

Starts the propagation by applying the initial changes

Attributes

Inherited from:
TwoVersionTransaction

Attributes

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

Attributes

Inherited from:
Transaction
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

Inherited from:
TwoVersionTransaction

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

Inherited from:
TwoVersionTransaction

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

Inherited from:
TwoVersionTransaction