FullMVState

rescala.fullmv.FullMVBundle.FullMVState
trait FullMVState[V, T <: FullMVTurn]

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Abstract methods

def discover(txn: T, add: OutDep): (List[T], Option[T])

entry point for discover(this, add). May suspend.

entry point for discover(this, add). May suspend.

Value parameters

add

the new edge's sink node

txn

the executing reevaluation's transaction

Attributes

Returns

the appropriate Version.value.

def drop(txn: T, remove: OutDep): (List[T], Option[T])

entry point for drop(this, ticket.issuer); may suspend temporarily.

entry point for drop(this, ticket.issuer); may suspend temporarily.

Value parameters

remove

the removed edge's sink node

txn

the executing reevaluation's transaction

Attributes

def dynamicAfter(txn: T): V

entry point for after(this); may suspend.

entry point for after(this); may suspend.

Value parameters

txn

the executing transaction

Attributes

Returns

the corresponding Version.value ` from after this transaction, i.e., awaiting and returning the transaction's own write if one has occurred or will occur.

def dynamicBefore(txn: T): V

entry point for before(this); may suspend.

entry point for before(this); may suspend.

Value parameters

txn

the executing transaction

Attributes

Returns

the corresponding Version.value from before this transaction, i.e., ignoring the transaction's own writes.

entry point for regular framing

entry point for regular framing

Value parameters

txn

the transaction visiting the node for framing

Attributes

def incrementSupersedeFrame(txn: T, supersede: T): FramingBranchResult[T, OutDep]

entry point for superseding framing

entry point for superseding framing

Value parameters

supersede

the transaction whose frame was superseded by the visiting transaction at the previous node

txn

the transaction visiting the node for framing

Attributes

def latestValue: V
def notify(txn: T, changed: Boolean): (Boolean, NotificationBranchResult[T, OutDep])

entry point for change/nochange notification reception

entry point for change/nochange notification reception

Value parameters

changed

whether or not the dependency changed

txn

the transaction sending the notification

Attributes

def notifyFollowFrame(txn: T, changed: Boolean, followFrame: T): (Boolean, NotificationBranchResult[T, OutDep])

entry point for change/nochange notification reception with follow-up framing

entry point for change/nochange notification reception with follow-up framing

Value parameters

changed

whether or not the dependency changed

followFrame

a transaction for which to create a subsequent frame, furthering its partial framing.

txn

the transaction sending the notification

Attributes

def reevIn(turn: T): V
def reevOut(turn: T, maybeValue: Option[V], unchange: V => V): ReevOutBranchResult[T, OutDep]

progress firstFrame forward until a Version.isFrame is encountered, and return the resulting notification out (with reframing if subsequent write is found).

progress firstFrame forward until a Version.isFrame is encountered, and return the resulting notification out (with reframing if subsequent write is found).

Attributes

def retrofitSinkFrames(successorWrittenVersions: Seq[T], maybeSuccessorFrame: Option[T], arity: Int): Seq[T]

performs the reframings on the sink of a discover(n, this) with arity +1, or drop(n, this) with arity -1

performs the reframings on the sink of a discover(n, this) with arity +1, or drop(n, this) with arity -1

Value parameters

arity

+1 for discover adding frames, -1 for drop removing frames.

maybeSuccessorFrame

maybe a reframing to perform for the first successor frame

successorWrittenVersions

the reframings to perform for successor written versions

Attributes

def staticAfter(txn: T): V
def staticBefore(txn: T): V

Abstract fields

Concrete fields