Packages

final class MergeSequence[T] extends GraphStage[UniformFanInShape[T, T]]

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

Source
Graph.scala
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MergeSequence
  2. GraphStage
  3. GraphStageWithMaterializedValue
  4. Graph
  5. AnyRef
  6. Any
Implicitly
  1. by GraphMapMatVal
  2. by any2stringadd
  3. by StringFormat
  4. by Ensuring
  5. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new MergeSequence(inputPorts: Int)(extractSequence: (T) => Long)

Type Members

  1. type Shape = UniformFanInShape[T, T]

    Type-level accessor for the shape parameter of this graph.

    Type-level accessor for the shape parameter of this graph.

    Definition Classes
    Graph

Value Members

  1. def addAttributes(attr: Attributes): Graph[UniformFanInShape[T, T], NotUsed]

    Add the given attributes to this Graph.

    Add the given attributes to this Graph. If the specific attribute was already present on this graph this means the added attribute will be more specific than the existing one. If this Source is a composite of multiple graphs, new attributes on the composite will be less specific than attributes set directly on the individual graphs of the composite.

    Definition Classes
    Graph
  2. def async(dispatcher: String, inputBufferSize: Int): Graph[UniformFanInShape[T, T], NotUsed]

    Put an asynchronous boundary around this Graph

    Put an asynchronous boundary around this Graph

    dispatcher

    Run the graph on this dispatcher

    inputBufferSize

    Set the input buffer to this size for the graph

    Definition Classes
    Graph
  3. def async(dispatcher: String): Graph[UniformFanInShape[T, T], NotUsed]

    Put an asynchronous boundary around this Graph

    Put an asynchronous boundary around this Graph

    dispatcher

    Run the graph on this dispatcher

    Definition Classes
    Graph
  4. def async: Graph[UniformFanInShape[T, T], NotUsed]

    Put an asynchronous boundary around this Graph

    Put an asynchronous boundary around this Graph

    Definition Classes
    Graph
  5. def createLogic(inheritedAttributes: Attributes): GraphStageLogic
    Definition Classes
    MergeSequenceGraphStage
  6. final def createLogicAndMaterializedValue(inheritedAttributes: Attributes): (GraphStageLogic, NotUsed)
  7. def getAttributes: Attributes
    Definition Classes
    Graph
  8. val inputPorts: Int
  9. def mapMaterializedValue[M2](f: (NotUsed) => M2): Graph[UniformFanInShape[T, T], M2]

    Transform the materialized value of this Graph, leaving all other properties as they were.

    Transform the materialized value of this Graph, leaving all other properties as they were.

    f

    function to map the graph's materialized value

    Implicit
    This member is added by an implicit conversion from MergeSequence[T] toGraphMapMatVal[UniformFanInShape[T, T], NotUsed] performed by method GraphMapMatVal in akka.stream.Graph.
    Definition Classes
    GraphMapMatVal
  10. def named(name: String): Graph[UniformFanInShape[T, T], NotUsed]

    Specifies the name of the Graph.

    Specifies the name of the Graph. If the name is null or empty the name is ignored, i.e. #none is returned.

    Definition Classes
    Graph
  11. val shape: UniformFanInShape[T, T]

    The shape of a graph is all that is externally visible: its inlets and outlets.

    The shape of a graph is all that is externally visible: its inlets and outlets.

    Definition Classes
    MergeSequenceGraph
  12. def toString(): String
    Definition Classes
    MergeSequence → AnyRef → Any
  13. final def withAttributes(attr: Attributes): Graph[UniformFanInShape[T, T], NotUsed]

    Replace the attributes of this Flow with the given ones.

    Replace the attributes of this Flow with the given ones. If this Flow is a composite of multiple graphs, new attributes on the composite will be less specific than attributes set directly on the individual graphs of the composite.

    Definition Classes
    GraphStageWithMaterializedValueGraph