public DynamicFilter(IPipeContextConverterFactory <TInput> converterFactory) { ConverterFactory = converterFactory; _outputPipes = new Dictionary <Type, IOutputPipe>(); _outputPipeArray = _outputPipes.Values.ToArray(); Observers = new FilterObservable(); }
public DynamicFilter(IPipeContextConverterFactory <TInput> converterFactory) { ConverterFactory = converterFactory; _outputPipes = new Dictionary <Type, IOutputFilter>(); _outputPipeArray = new IOutputFilter[0]; Observers = new FilterObservable(); _empty = Pipe.Empty <TInput>(); }
/// <summary> /// Adds a dispatch filter to the pipe, which can be used to route traffic /// based on the type of the incoming context /// </summary> /// <typeparam name="T"></typeparam> /// <param name="configurator"></param> /// <param name="pipeContextProviderFactory"></param> /// <param name="configure"></param> public static void UseDispatch <T>(this IPipeConfigurator <T> configurator, IPipeContextConverterFactory <T> pipeContextProviderFactory, Action <IDispatchConfigurator <T> > configure = null) where T : class, PipeContext { if (configurator == null) { throw new ArgumentNullException(nameof(configurator)); } var specification = new DispatchPipeSpecification <T>(pipeContextProviderFactory); configure?.Invoke(specification); configurator.AddPipeSpecification(specification); }
public DispatchPipeSpecification(IPipeContextConverterFactory <TInput> pipeContextConverterFactory) { _pipeContextConverterFactory = pipeContextConverterFactory; _connectActions = new List <Action <IPipeConnector> >(); }
public DynamicRouter(IPipeContextConverterFactory <TContext> converterFactory) { _filter = new DynamicFilter <TContext>(converterFactory); _pipe = Pipe.New <TContext>(x => x.UseFilter(_filter)); }
public DynamicFilter(IPipeContextConverterFactory<TInput> converterFactory) { ConverterFactory = converterFactory; OutputPipes = new ConcurrentDictionary<Type, IOutputPipe>(); Observers = new FilterObservable(); }