package framework
- Alphabetic
- Public
- Protected
Type Members
- trait BlockSubscription extends AnyRef
- trait CancellableEvent extends AnyRef
An abstraction of cancelable delayedEvent for deterministic simulation testing purposes.
- trait ClientP2PNetworkManager[E <: Env[E], -P2PMessageT] extends AnyRef
An abstraction of the P2P network manager for deterministic simulation testing purposes.
- trait Env[E <: Env[E]] extends AnyRef
An environment defines the concrete actor context, reference and timer times for a specific actor framework, such as Pekko or the deterministic simulation testing framework.
An environment defines the concrete actor context, reference and timer times for a specific actor framework, such as Pekko or the deterministic simulation testing framework.
A bit of theory: This type utilizes F-bounded polymorphism, meaning that Env is parameterized over its own subtypes. This enables passing the implementing type as an argument to the superclass, facilitating the use of more specific argument and return types where subtypes of Env are present. Another commonly used pattern for this use case is the type-class pattern (also known as ad-hoc polymorphism), you can read more about both here: https://stackoverflow.com/questions/59813323/advantages-of-f-bounded-polymorphism-over-typeclass-for-return-current-type-prob
- trait FutureContext[E <: Env[E]] extends AnyRef
FutureContext contains functions for creating and combining E#FutureUnlessShutdown that will be safe to use in pipeToSelf.
- trait Module[E <: Env[E], MessageT] extends NamedLogging with FlagCloseable
Modules abstract actors away from the concrete actor framework, mainly so that their logic can be more easily deterministically simulation-tested.
Modules abstract actors away from the concrete actor framework, mainly so that their logic can be more easily deterministically simulation-tested.
- E
An environment corresponding to the actor framework, such as Pekko or the deterministic simulation testing framework.
- MessageT
The root message type understood by the actor.
- trait ModuleContext[E <: Env[E], MessageT] extends NamedLogging with FutureContext[E]
An abstraction of actor contexts for deterministic simulation testing purposes.
- final case class ModuleName(name: String) extends Product with Serializable
- trait ModuleRef[-AcceptedMessageT] extends AnyRef
Modules abstract actor references away from the concrete actor framework, mainly so that their logic can be more easily deterministically simulation-tested.
Modules abstract actor references away from the concrete actor framework, mainly so that their logic can be more easily deterministically simulation-tested.
- AcceptedMessageT
The root message type understood by the actor.
- trait ModuleSystem[E <: Env[E]] extends AnyRef
A module system abstracts how modules are constructed away from the concrete actors framework, such as Pekko or the deterministic simulation testing framework.
A module system abstracts how modules are constructed away from the concrete actors framework, such as Pekko or the deterministic simulation testing framework.
Note that modules, unlike actors, are arranged in a static topology at bootstrap.
- class OrderingModuleSystemInitializer[E <: Env[E]] extends SystemInitializer[E, BftOrderingServiceReceiveRequest, Message]
A module system initializer for the general ordering system based on module factories.
- trait P2PNetworkRef[-P2PMessageT] extends FlagCloseable
An abstraction of the network for deterministic simulation testing purposes.
- sealed trait PureFun[A, B] extends (A) => B
A subset of functions that are pure, this is used by ModuleContext.mapFuture to guarantee we don't mutate state when we shouldn't.
A subset of functions that are pure, this is used by ModuleContext.mapFuture to guarantee we don't mutate state when we shouldn't.
This trait is sealed so that we *can't* use lambda abstraction to construct values of this type
- A
input type
- B
output type
Value Members
- object Module
- object OrderingModuleSystemInitializer
- object PureFun
- object SupportedVersions