trait ModuleContext[E <: Env[E], MessageT] extends NamedLogging with FutureContext[E]
An abstraction of actor contexts for deterministic simulation testing purposes.
- Alphabetic
- By Inheritance
- ModuleContext
- FutureContext
- NamedLogging
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def abort(failure: Throwable): Nothing
- abstract def abort(msg: String): Nothing
- abstract def abort(): Nothing
- abstract def become(module: Module[E, MessageT]): Unit
- abstract def blockingAwait[X](future: E.FutureUnlessShutdownT[X], duration: FiniteDuration): X
- abstract def blockingAwait[X](future: E.FutureUnlessShutdownT[X]): X
- abstract def delayedEventTraced(delay: FiniteDuration, messageT: MessageT)(implicit traceContext: TraceContext, metricsContext: MetricsContext): CancellableEvent
- abstract def futureContext: FutureContext[E]
- abstract def loggerFactory: NamedLoggerFactory
- Attributes
- protected
- Definition Classes
- NamedLogging
- abstract def newModuleRef[NewModuleMessageT](moduleName: ModuleName): E.ModuleRefT[NewModuleMessageT]
- abstract def pipeToSelfInternal[X](futureUnlessShutdown: E.FutureUnlessShutdownT[X])(fun: (Try[X]) => Option[MessageT])(implicit traceContext: TraceContext, metricsContext: MetricsContext): Unit
- Attributes
- protected
- abstract def self: E.ModuleRefT[MessageT]
- abstract def setModule[OtherModuleMessageT](moduleRef: E.ModuleRefT[OtherModuleMessageT], module: Module[E, OtherModuleMessageT]): Unit
Spawns a new module.
Spawns a new module. The
module
handler object must not be spawned more than once, lest it potentially cause a violation of the actor model, as its state could be accessed concurrently. - abstract def stop(onStop: () => Unit = () => ()): Unit
- abstract def withNewTraceContext[A](fn: (TraceContext) => A): A
Similar to TraceContext.withNewTraceContext but can be deterministically simulated
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
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def delayedEvent(delay: FiniteDuration, message: MessageT)(implicit metricsContext: MetricsContext): CancellableEvent
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- implicit def errorLoggingContext(implicit traceContext: TraceContext): ErrorLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def flatMapFuture[R1, R2](future1: E.FutureUnlessShutdownT[R1], future2: PureFun[R1, E.FutureUnlessShutdownT[R2]]): E.FutureUnlessShutdownT[R2]
flatMapFuture requires a PureFun instead of a normal scala.Function1 for similar reason as mapFuture
flatMapFuture requires a PureFun instead of a normal scala.Function1 for similar reason as mapFuture
- Definition Classes
- ModuleContext → FutureContext
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def logger: TracedLogger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def mapFuture[X, Y](future: E.FutureUnlessShutdownT[X])(fun: PureFun[X, Y]): E.FutureUnlessShutdownT[Y]
mapFuture requires a PureFun instead of a normal scala.Function1 since we need to be careful not to mutate state of the modules in the Env#FutureUnlessShutdownT, as this would violate the assumptions we use when writing Modules.
mapFuture requires a PureFun instead of a normal scala.Function1 since we need to be careful not to mutate state of the modules in the Env#FutureUnlessShutdownT, as this would violate the assumptions we use when writing Modules.
- Definition Classes
- ModuleContext → FutureContext
- implicit def namedLoggingContext(implicit traceContext: TraceContext): NamedLoggingContext
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def noTracingLogger: Logger
- Attributes
- protected
- Definition Classes
- NamedLogging
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- def pipeToSelf[X](futureUnlessShutdown: E.FutureUnlessShutdownT[X])(fun: (Try[X]) => Option[MessageT])(implicit traceContext: TraceContext, metricsContext: MetricsContext): Unit
- final def pureFuture[X](x: X): E.FutureUnlessShutdownT[X]
- Definition Classes
- ModuleContext → FutureContext
- final def sequenceFuture[A, F[_]](futures: F[E.FutureUnlessShutdownT[A]])(implicit ev: Traverse[F]): E.FutureUnlessShutdownT[F[A]]
- Definition Classes
- ModuleContext → FutureContext
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- final def timeFuture[X](timer: Timer, futureUnlessShutdown: => E.FutureUnlessShutdownT[X])(implicit metricsContext: MetricsContext): E.FutureUnlessShutdownT[X]
- Definition Classes
- ModuleContext → FutureContext
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def zipFuture[X, Y, Z](future1: E.FutureUnlessShutdownT[X], future2: E.FutureUnlessShutdownT[Y], future3: E.FutureUnlessShutdownT[Z]): E.FutureUnlessShutdownT[(X, Y, Z)]
- Definition Classes
- ModuleContext → FutureContext
- final def zipFuture[X, Y](future1: E.FutureUnlessShutdownT[X], future2: E.FutureUnlessShutdownT[Y]): E.FutureUnlessShutdownT[(X, Y)]
- Definition Classes
- ModuleContext → FutureContext