trait Dispatcher[Index] extends AnyRef
A fanout signaller, representing a stream of external updates, that can be subscribed to dynamically at a given point in the stream. Stream positions are given by the Index type, and stream values are given by T. Subscribing to a point yields all values starting at that point. It is assumed that the head index is the "end of the stream" and has no value.
Implementations must be thread-safe, so must the callbacks provided to it.
- Alphabetic
- By Inheritance
- Dispatcher
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Abstract Value Members
- abstract def cancel(throwableBuilder: () => Throwable): Future[Unit]
Triggers shutdown of the Dispatcher by eagerly failing all outstanding stream subscriptions with a throwable.
Triggers shutdown of the Dispatcher by eagerly failing all outstanding stream subscriptions with a throwable.
- throwableBuilder
Create a new throwable. It is important to create a new throwable for each failed subscription since the throwable closing the streams or parts of it can be mutable. (e.g. the io.grpc.Metadata provided as part of io.grpc.StatusRuntimeException is mutated in the gRPC layer)
- abstract def getHead(): Index
Returns the head index where this Dispatcher is at
- abstract def shutdown(): Future[Unit]
Triggers shutdown of the Dispatcher by completing all outstanding stream subscriptions.
Triggers shutdown of the Dispatcher by completing all outstanding stream subscriptions. This method ensures that all outstanding subscriptions have been notified with the latest signalled head and waits for their graceful completion.
- abstract def signalNewHead(head: Index): Unit
Signals and stores a new head in memory.
- abstract def startingAt[T](startExclusive: Index, subSource: SubSource[Index, T], endInclusive: Option[Index] = None): Source[(Index, T), NotUsed]
Returns a stream of elements with the next index from start (exclusive) to end (inclusive) Throws
DispatcherIsClosedException
if dispatcher is in the shutting down state
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]) @native() @HotSpotIntrinsicCandidate()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- 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])