akka/akka-core

Remove FanoutProcessorImpl and friends

Open

#21,261 opened on 2016年8月23日

GitHub で見る
 (8 comments) (0 reactions) (0 assignees)Scala (3,547 forks)batch import
1 - triagedhelp wantedt:stream

Repository metrics

Stars
 (13,277 stars)
PR merge metrics
 (平均マージ 8d 19h) (30d で 10 merged PRs)

説明

Implement it in terms of BroadcastHub instead (after https://github.com/akka/akka/pull/21183 merged). Implementation can be as simple as roughly:

object Sink {
...
  def asPublisher[T](fanout: Boolean): Sink[T, Publisher[T]] = {
     if (fanout) BroadcastHub.sink(bufferSize).mapMaterializedValue { src =>
        new Publisher {
            def subscribe(s: Subscriber): Unit = src.runWith(Sink.fromSubscriber(s))
        }
     }
  }
...
}

While this might be somewhat less efficient (although not sure!), it removes a rather ugly old class and its dependencies in one simple move.

コントリビューターガイド