* Adds internal access to materializer before initialization (#25324) * Implements new actorRef source based on graph stage (#25324) * Removes obsolete actorRef source (#25324) * Improves backwards compatibility with old implementation (#25324) * Removes dedicated new subclass for materializer access again (#25324) * Improves implementation (#25324) * Finalizes implementation (#25324) * Small improvements to API and documentation (#25324) * Completion strategy as a replacement for poison pill (#25324) * Adding more tests and updating the documentation (#25324)
This commit is contained in:
parent
39c06c7c34
commit
c9b3f1de6d
15 changed files with 328 additions and 201 deletions
|
|
@ -108,31 +108,3 @@ import akka.event.Logging
|
|||
override def withAttributes(attr: Attributes): SourceModule[Out, ActorRef] =
|
||||
new ActorPublisherSource(props, attr, amendShape(attr))
|
||||
}
|
||||
|
||||
/**
|
||||
* INTERNAL API
|
||||
*/
|
||||
@InternalApi private[akka] final class ActorRefSource[Out](
|
||||
completionMatcher: PartialFunction[Any, Unit],
|
||||
failureMatcher: PartialFunction[Any, Throwable],
|
||||
bufferSize: Int,
|
||||
overflowStrategy: OverflowStrategy,
|
||||
val attributes: Attributes,
|
||||
shape: SourceShape[Out])
|
||||
extends SourceModule[Out, ActorRef](shape) {
|
||||
|
||||
override protected def label: String = s"ActorRefSource($bufferSize, $overflowStrategy)"
|
||||
|
||||
override def create(context: MaterializationContext) = {
|
||||
val mat = ActorMaterializerHelper.downcast(context.materializer)
|
||||
val ref = mat.actorOf(
|
||||
context,
|
||||
ActorRefSourceActor.props(completionMatcher, failureMatcher, bufferSize, overflowStrategy, mat.settings))
|
||||
(akka.stream.actor.ActorPublisher[Out](ref), ref)
|
||||
}
|
||||
|
||||
override protected def newInstance(shape: SourceShape[Out]): SourceModule[Out, ActorRef] =
|
||||
new ActorRefSource[Out](completionMatcher, failureMatcher, bufferSize, overflowStrategy, attributes, shape)
|
||||
override def withAttributes(attr: Attributes): SourceModule[Out, ActorRef] =
|
||||
new ActorRefSource(completionMatcher, failureMatcher, bufferSize, overflowStrategy, attr, amendShape(attr))
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue