Class Broadcast

java.lang.Object
org.apache.pekko.stream.javadsl.Broadcast

public class Broadcast extends Object
Fan-out the stream to several streams. emitting each incoming upstream element to all downstream consumers. It will not shutdown until the subscriptions for at least two downstream subscribers have been established.

'''Emits when''' all of the outputs stops backpressuring and there is an input element available

'''Backpressures when''' any of the outputs backpressure

'''Completes when''' upstream completes

'''Cancels when''' If eagerCancel is enabled: when any downstream cancels; otherwise: when all downstreams cancel

  • Constructor Details

    • Broadcast

      public Broadcast()
  • Method Details

    • create

      public static <T> Graph<UniformFanOutShape<T,T>,NotUsed> create(int outputCount, boolean eagerCancel)
      Create a new Broadcast operator with the specified input type.

      Parameters:
      outputCount - number of output ports
      eagerCancel - if true, broadcast cancels upstream if any of its downstreams cancel.
    • create

      public static <T> Graph<UniformFanOutShape<T,T>,NotUsed> create(int outputCount, boolean eagerCancel, Set<Integer> nonEagerCancelOutputs)
      Create a new Broadcast operator with the specified input type and per-output cancellation behavior.

      Parameters:
      outputCount - number of output ports
      eagerCancel - if true, broadcast cancels upstream if any of its downstreams cancel (except those listed in nonEagerCancelOutputs).
      nonEagerCancelOutputs - set of output port indices whose cancellation should not trigger upstream cancellation. These outputs are silently removed from the broadcast when they cancel, and elements continue flowing to the remaining outputs.
      Since:
      2.0.0
    • create

      public static <T> Graph<UniformFanOutShape<T,T>,NotUsed> create(int outputCount)
      Create a new Broadcast operator with the specified input type.

      Parameters:
      outputCount - number of output ports
    • create

      public static <T> Graph<UniformFanOutShape<T,T>,NotUsed> create(Class<T> clazz, int outputCount)
      Create a new Broadcast operator with the specified input type.