!str,htc remove FlexiMerge/Route

- replace all occurrences with equivalent GraphStage implementations

This commit introduces a mini-DSL for GraphStage that allows emitting or
reading multiple elements to/from a port with one statement, installing
stateful handlers on the port to make it work. The emitting side allows
stacked continuations, meaning that while an emit() is ongoing (waiting
for demand) another one can be added to the queue; this allows
convenient formualation of merge-type stages.
This commit is contained in:
Roland Kuhn 2015-10-21 17:52:11 +02:00
parent dc07fd250c
commit 02810cfa64
45 changed files with 1001 additions and 3227 deletions

View file

@ -865,7 +865,7 @@ private[stream] class TakeWithin[T](timeout: FiniteDuration) extends SimpleLinea
final override protected def onTimer(key: Any): Unit =
completeStage()
scheduleOnce("TakeWithinTimer", timeout)
override def preStart(): Unit = scheduleOnce("TakeWithinTimer", timeout)
}
override def toString = "TakeWithin"
@ -885,7 +885,7 @@ private[stream] class DropWithin[T](timeout: FiniteDuration) extends SimpleLinea
final override protected def onTimer(key: Any): Unit = allow = true
scheduleOnce("DropWithinTimer", timeout)
override def preStart(): Unit = scheduleOnce("DropWithinTimer", timeout)
}
override def toString = "DropWithin"