trait TwoVersionTransactionImpl extends TwoVersionTransaction with Initializer
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.
- Alphabetic
- By Inheritance
- TwoVersionTransactionImpl
- Initializer
- TwoVersionTransaction
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
beforeDynamicDependencyInteraction(dependency: Twoversion.ReSource): Unit
allow the propagation to handle dynamic access to reactives
-
abstract
def
ignite(reactive: Twoversion.Derived, incoming: Set[Twoversion.ReSource], ignitionRequiresReevaluation: Boolean): Unit
to be implemented by the propagation algorithm, called when a new reactive has been instantiated and needs to be connected to the graph and potentially reevaluated.
to be implemented by the propagation algorithm, called when a new reactive has been instantiated and needs to be connected to the graph and potentially reevaluated.
- reactive
the newly instantiated reactive
- incoming
a set of incoming dependencies
- ignitionRequiresReevaluation
true if the reactive must be reevaluated at creation even if none of its dependencies change in the creating turn.
- Attributes
- protected[this]
- Definition Classes
- Initializer
-
abstract
def
makeDerivedStructState[V](valuePersistency: V): State[V]
Creates the internal state of Deriveds
Creates the internal state of Deriveds
- Attributes
- protected[this]
- Definition Classes
- Initializer
-
abstract
def
preparationPhase(initialWrites: Set[Twoversion.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.
- initialWrites
List of affected reactive values
- Definition Classes
- TwoVersionTransaction
- abstract def prepareInitialChange(ic: Twoversion.InitialChange): Unit
-
abstract
def
propagationPhase(): Unit
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.
- Definition Classes
- TwoVersionTransaction
-
abstract
def
releasePhase(): Unit
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.
- Definition Classes
- TwoVersionTransaction
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
accessTicket(): Twoversion.AccessTicket
- Definition Classes
- TwoVersionTransactionImpl → Initializer
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @IntrinsicCandidate()
- final def commitDependencyDiff(node: Twoversion.Derived, current: Set[Twoversion.ReSource])(updated: Set[Twoversion.ReSource]): Unit
-
def
commitPhase(): Unit
Commits all uncommitted changes to the reactive element.
Commits all uncommitted changes to the reactive element.
- Definition Classes
- TwoVersionTransactionImpl → TwoVersionTransaction
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
initializationPhase(initialChanges: Map[Twoversion.ReSource, Twoversion.InitialChange]): Unit
Starts the propagation by applying the initial changes
Starts the propagation by applying the initial changes
- Definition Classes
- TwoVersionTransactionImpl → TwoVersionTransaction
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
makeSourceStructState[V](valuePersistency: V): State[V]
Creates the internal state of ReSources
Creates the internal state of ReSources
- Attributes
- protected[this]
- Definition Classes
- Initializer
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @IntrinsicCandidate()
- def observe(f: Twoversion.Observation): Unit
-
def
observerPhase(): Unit
Call all registered after-commit obverser functions.
Call all registered after-commit obverser functions.
- Definition Classes
- TwoVersionTransactionImpl → TwoVersionTransaction
- val observers: ArrayBuffer[Twoversion.Observation]
-
def
register(reactive: Twoversion.ReSource): Unit
hook for schedulers to globally collect all created resources, usually does nothing
hook for schedulers to globally collect all created resources, usually does nothing
- Attributes
- protected[this]
- Definition Classes
- Initializer
-
def
rollbackPhase(): Unit
Reverts all uncommitted changes to the reactive element.
Reverts all uncommitted changes to the reactive element.
- Definition Classes
- TwoVersionTransactionImpl → TwoVersionTransaction
-
def
schedule(commitable: Twoversion.ReSource): Unit
Schedules a temporarily written change to be committed by the turn.
Schedules a temporarily written change to be committed by the turn.
- Definition Classes
- TwoVersionTransactionImpl → TwoVersionTransaction
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
- val toCommit: ArrayBuffer[Twoversion.ReSource]
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- val token: Token
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
- def writeState(pulsing: Twoversion.ReSource)(value: Value): Unit