Exemple #1
0
        public override object Create(MaterializationContext context, out IPublisher <TIn> materializer)
        {
            var actorMaterializer = ActorMaterializer.Downcast(context.Materializer);
            var settings          = actorMaterializer.EffectiveSettings(Attributes);
            var fanoutRef         = actorMaterializer.ActorOf(context, FanoutProcessorImpl <TIn> .Props(settings));
            var fanoutProcessor   = ActorProcessorFactory.Create <TIn, TIn>(fanoutRef);

            materializer = fanoutProcessor;
            return(fanoutProcessor);
        }
Exemple #2
0
        /// <summary>
        /// TBD
        /// </summary>
        /// <param name="context">TBD</param>
        /// <param name="materializer">TBD</param>
        /// <returns>TBD</returns>
        public override object Create(MaterializationContext context, out IPublisher <TIn> materializer)
        {
            var actorMaterializer = ActorMaterializerHelper.Downcast(context.Materializer);
            var settings          = actorMaterializer.EffectiveSettings(Attributes);
            var impl            = actorMaterializer.ActorOf(context, FanoutProcessorImpl <TIn, TStreamBuffer> .Props(settings, _onTerminated));
            var fanoutProcessor = new ActorProcessor <TIn, TIn>(impl);

            impl.Tell(new ExposedPublisher(fanoutProcessor));
            // Resolve cyclic dependency with actor. This MUST be the first message no matter what.
            materializer = fanoutProcessor;
            return(fanoutProcessor);
        }