/// <summary> /// This method is the reason why SinkModule.create may return something that is /// not a Subscriber: a VirtualPublisher is used in order to avoid the immediate /// subscription a VirtualProcessor would perform (and it also saves overhead). /// </summary> public override object Create(MaterializationContext context, out IPublisher <TIn> materializer) { var processor = new VirtualProcessor <TIn>(); materializer = processor; return(processor); }
/// <summary> /// TBD /// </summary> /// <param name="context">TBD</param> /// <param name="materializer">TBD</param> /// <returns>TBD</returns> public override IPublisher <TOut> Create(MaterializationContext context, out ISubscriber <TOut> materializer) { var processor = new VirtualProcessor <TOut>(); materializer = processor; return(processor); }
public override IProcessor <int?, int?> CreateIdentityProcessor(int bufferSize) { var materializer = ActorMaterializer.Create(System); var identity = Flow.Create <int?>().Select(x => x).Named("identity").ToProcessor().Run(materializer); var left = new VirtualProcessor <int?>(); var right = new VirtualProcessor <int?>(); left.Subscribe(identity); identity.Subscribe(right); return(ProcessorFromSubscriberAndPublisher(left, right)); }