class SubSourceOutlet[T] extends AnyRef

INTERNAL API

This allows the dynamic creation of an Outlet for a GraphStage which is connected to a Source that is available for materialization (e.g. using the subFusingMaterializer). Completion, cancellation and failure of the parent operator is automatically delegated to instances of SubSourceOutlet to avoid resource leaks.

Even so it is good practice to use the timeout method to cancel this Outlet in case the corresponding Source is not materialized within a given time limit, see e.g. ActorMaterializerSettings.

To be thread safe this method must only be called from either the constructor of the graph operator during materialization or one of the methods invoked by the graph operator machinery, such as onPush and onPull.

Source
GraphStage.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. SubSourceOutlet
  2. AnyRef
  3. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new SubSourceOutlet(name: String)

Value Members

  1. def complete(): Unit

    Complete this output port.

  2. def fail(ex: Throwable): Unit

    Fail this output port.

  3. def isAvailable: Boolean

    Returns true if this output port can be pushed.

  4. def isClosed: Boolean

    Returns true if this output port is closed, but caution THIS WORKS DIFFERENTLY THAN THE NORMAL isClosed(out).

    Returns true if this output port is closed, but caution THIS WORKS DIFFERENTLY THAN THE NORMAL isClosed(out). Due to possibly asynchronous shutdown it may not return true immediately after complete() or fail() have returned.

  5. def push(elem: T): Unit

    Push to this output port.

  6. def setHandler(handler: OutHandler): Unit

    Set OutHandler for this dynamic output port; this needs to be done before the first substream callback can arrive.

  7. def source: [SourceShape[T], NotUsed]

    Get the Source for this dynamic output port.

  8. def timeout(d: FiniteDuration): Unit

    Set the source into timed-out mode if it has not yet been materialized.

  9. def toString(): String
    Definition Classes
    SubSourceOutlet → AnyRef → Any