CoupledTerminationFlow

org.apache.pekko.stream.scaladsl.CoupledTerminationFlow

Allows coupling termination (cancellation, completion, erroring) of Sinks and Sources while creating a Flow from them. Similar to Flow.fromSinkAndSource however that API does not connect the completion signals of the wrapped operators.

Attributes

Source
CoupledTerminationFlow.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Self type

Members list

Value members

Deprecated methods

def fromSinkAndSource[I, O, M1, M2](in: Sink[I, M1], out: Source[O, M2]): Flow[I, O, (M1, M2)]

Similar to Flow.fromSinkAndSource however couples the termination of these two operators.

Similar to Flow.fromSinkAndSource however couples the termination of these two operators.

E.g. if the emitted Flow gets a cancellation, the Source of course is cancelled, however the Sink will also be completed. The table below illustrates the effects in detail:

Returned Flow Sink (in) Source (out)
cause: upstream (sink-side) receives completion effect: receives completion effect: receives cancel
cause: upstream (sink-side) receives error effect: receives error effect: receives cancel
cause: downstream (source-side) receives cancel effect: completes effect: receives cancel
effect: cancels upstream, completes downstream effect: completes cause: signals complete
effect: cancels upstream, errors downstream effect: receives error cause: signals error or throws
effect: cancels upstream, completes downstream cause: cancels effect: receives cancel

The order in which the in and out sides receive their respective completion signals is not defined, do not rely on its ordering.

Attributes

Deprecated
true
Source
CoupledTerminationFlow.scala