Class MergeSequence$


  • public class MergeSequence$
    extends java.lang.Object
    Takes multiple streams whose elements in aggregate have a defined linear sequence with difference 1, starting at 0, and outputs a single stream containing these elements, in order. That is, given a set of input streams with combined elements *ek*:

    *e0*, *e1*, *e2*, ..., *en*

    This will output a stream ordered by *k*.

    The elements in the input streams must already be sorted according to the sequence. The input streams do not need to be linear, but the aggregate stream must be linear, no element *k* may be skipped or duplicated, either of these conditions will cause the stream to fail.

    The typical use case for this is to merge a partitioned stream back together while maintaining order. This can be achieved by first using zipWithIndex on the input stream, then partitioning using a Partition fanout, and then maintaining the index through the processing of each partition before bringing together with this stage.

    '''Emits when''' one of the upstreams has the next expected element in the sequence available.

    '''Backpressures when''' downstream backpressures

    '''Completes when''' all upstreams complete

    '''Cancels when''' downstream cancels

    • Field Summary

      Fields 
      Modifier and Type Field Description
      static MergeSequence$ MODULE$
      Static reference to the singleton instance of this Scala object.
    • Constructor Summary

      Constructors 
      Constructor Description
      MergeSequence$()  
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      <T> Graph<UniformFanInShape<T,​T>,​NotUsed> create​(int inputCount, Function<T,​java.lang.Object> extractSequence)
      Create a new anonymous MergeSequence operator.
      <T> Graph<UniformFanInShape<T,​T>,​NotUsed> create​(java.lang.Class<T> clazz, int inputCount, Function<T,​java.lang.Object> extractSequence)
      Create a new anonymous Concat operator with the specified input types.
      <T> Graph<UniformFanInShape<T,​T>,​NotUsed> create​(Function<T,​java.lang.Object> extractSequence)
      Create a new anonymous MergeSequence operator with two input ports.
      • Methods inherited from class java.lang.Object

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

      • MODULE$

        public static final MergeSequence$ MODULE$
        Static reference to the singleton instance of this Scala object.
    • Constructor Detail

      • MergeSequence$

        public MergeSequence$()
    • Method Detail

      • create

        public <T> Graph<UniformFanInShape<T,​T>,​NotUsed> create​(Function<T,​java.lang.Object> extractSequence)
        Create a new anonymous MergeSequence operator with two input ports.

        Parameters:
        extractSequence - The function to extract the sequence from an element.
      • create

        public <T> Graph<UniformFanInShape<T,​T>,​NotUsed> create​(int inputCount,
                                                                            Function<T,​java.lang.Object> extractSequence)
        Create a new anonymous MergeSequence operator.

        Parameters:
        inputCount - The number of input streams.
        extractSequence - The function to extract the sequence from an element.
      • create

        public <T> Graph<UniformFanInShape<T,​T>,​NotUsed> create​(java.lang.Class<T> clazz,
                                                                            int inputCount,
                                                                            Function<T,​java.lang.Object> extractSequence)
        Create a new anonymous Concat operator with the specified input types.

        Parameters:
        clazz - a type hint for this method
        inputCount - The number of input streams.
        extractSequence - The function to extract the sequence from an element.