object MergeSequence
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
- Alphabetic
- By Inheritance
- MergeSequence
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native() @HotSpotIntrinsicCandidate()
-
def
create[T](clazz: Class[T], inputCount: Int, extractSequence: Function[T, Long]): Graph[UniformFanInShape[T, T], NotUsed]
Create a new anonymous
Concatoperator with the specified input types.Create a new anonymous
Concatoperator with the specified input types.- clazz
a type hint for this method
- inputCount
The number of input streams.
- extractSequence
The function to extract the sequence from an element.
-
def
create[T](inputCount: Int, extractSequence: Function[T, Long]): Graph[UniformFanInShape[T, T], NotUsed]
Create a new anonymous
MergeSequenceoperator.Create a new anonymous
MergeSequenceoperator.- inputCount
The number of input streams.
- extractSequence
The function to extract the sequence from an element.
-
def
create[T](extractSequence: Function[T, Long]): Graph[UniformFanInShape[T, T], NotUsed]
Create a new anonymous
MergeSequenceoperator with two input ports.Create a new anonymous
MergeSequenceoperator with two input ports.- extractSequence
The function to extract the sequence from an element.
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native() @HotSpotIntrinsicCandidate()
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )