Adding preMaterialize operator for Source #23894 (#24497)

This commit is contained in:
Stefano Bonetti 2018-02-21 06:06:01 +00:00 committed by Konrad `ktoso` Malawski
parent e44fafd4b7
commit 3ea59b1e76
7 changed files with 135 additions and 4 deletions

View file

@ -5,7 +5,7 @@ package docs.stream
import akka.{ Done, NotUsed }
import akka.actor.{ Actor, ActorSystem, Cancellable }
import akka.stream.{ ActorMaterializer, ClosedShape, FlowShape, Materializer }
import akka.stream.{ ActorMaterializer, ClosedShape, FlowShape, Materializer, OverflowStrategy }
import akka.stream.scaladsl._
import akka.testkit.AkkaSpec
import docs.CompileOnlySpec
@ -230,6 +230,20 @@ class FlowDocSpec extends AkkaSpec with CompileOnlySpec {
.to(Sink.ignore)
//#flow-async
}
"source pre-materialization" in {
//#source-prematerialization
val matValuePoweredSource =
Source.actorRef[String](bufferSize = 100, overflowStrategy = OverflowStrategy.fail)
val (actorRef, source) = matValuePoweredSource.preMaterialize()
actorRef ! "Hello!"
// pass source around for materialization
source.runWith(Sink.foreach(println))
//#source-prematerialization
}
}
object FlowDocSpec {