=str add VirtualProcessor

- create a fully RS compliant minimal identity processor (that is not an
  Actor)
- replace SubscriberSourceVirtualProcessor,
  PublisherSinkVirtualSubscriber and PublisherSinkVirtualPublisher with
  this
- add tests that transform Sink.publisher’s and Source.subscriber’s
  materialized value
- also remove the Keep.{left, right} optimization in order to make
  side-effecting mat value transforms execute even if their values are
  discarded
This commit is contained in:
Roland Kuhn 2015-06-16 15:34:54 +02:00
parent 52f08f035a
commit 6e72271eb5
9 changed files with 182 additions and 56 deletions

View file

@ -55,7 +55,7 @@ private[akka] abstract class SourceModule[+Out, +Mat](val shape: SourceShape[Out
private[akka] final class SubscriberSource[Out](val attributes: OperationAttributes, shape: SourceShape[Out]) extends SourceModule[Out, Subscriber[Out]](shape) {
override def create(context: MaterializationContext): (Publisher[Out], Subscriber[Out]) = {
val processor = new SubscriberSourceVirtualProcessor[Out]
val processor = new VirtualProcessor[Out]
(processor, processor)
}