Class CoupledTerminationFlow

  • public class CoupledTerminationFlow
    extends java.lang.Object
    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.

    • Method Summary

      All Methods Static Methods Concrete Methods Deprecated Methods 
      Modifier and Type Method Description
      static <I,​O,​M1,​M2>
      fromSinkAndSource​(Sink<I,​M1> in, Source<O,​M2> out)
      Use `Flow.fromSinkAndSourceCoupledMat(..., ...)(Keep.both)` instead.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • CoupledTerminationFlow

        public CoupledTerminationFlow()
    • Method Detail

      • fromSinkAndSource

        public static <I,​O,​M1,​M2> Flow<I,​O,​scala.Tuple2<M1,​M2>> fromSinkAndSource​(Sink<I,​M1> in,
                                                                                                                      Source<O,​M2> out)
        Use `Flow.fromSinkAndSourceCoupledMat(..., ...)(Keep.both)` instead. Since 2.5.2.