Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
            // ReSharper disable once UnusedMember.Local
            private IProcessor <TIn, TOut> ProcessorFor <TIn, TOut>(StageModule <TIn, TOut> op, Attributes effectiveAttributes, ActorMaterializerSettings settings, out object materialized)
            {
                DirectProcessor <TIn, TOut> processor;

                if ((processor = op as DirectProcessor <TIn, TOut>) != null)
                {
                    var t = processor.ProcessorFactory();
                    materialized = t.Item2;
                    return(t.Item1);
                }

                var props = ActorProcessorFactory.Props(_materializer, op, effectiveAttributes, out materialized);

                return(ActorProcessorFactory.Create <TIn, TOut>(_materializer.ActorOf(props, StageName(effectiveAttributes), settings.Dispatcher)));
            }