コード例 #1
0
        public DynamicFilter(IPipeContextConverterFactory <TInput> converterFactory)
        {
            ConverterFactory = converterFactory;

            _outputPipes     = new Dictionary <Type, IOutputPipe>();
            _outputPipeArray = _outputPipes.Values.ToArray();

            Observers = new FilterObservable();
        }
コード例 #2
0
ファイル: DynamicFilter.cs プロジェクト: slamj1/GreenPipes
        public DynamicFilter(IPipeContextConverterFactory <TInput> converterFactory)
        {
            ConverterFactory = converterFactory;

            _outputPipes     = new Dictionary <Type, IOutputFilter>();
            _outputPipeArray = new IOutputFilter[0];

            Observers = new FilterObservable();
            _empty    = Pipe.Empty <TInput>();
        }
コード例 #3
0
        /// <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);
        }
コード例 #4
0
        public DispatchPipeSpecification(IPipeContextConverterFactory <TInput> pipeContextConverterFactory)
        {
            _pipeContextConverterFactory = pipeContextConverterFactory;

            _connectActions = new List <Action <IPipeConnector> >();
        }
コード例 #5
0
 public DynamicRouter(IPipeContextConverterFactory <TContext> converterFactory)
 {
     _filter = new DynamicFilter <TContext>(converterFactory);
     _pipe   = Pipe.New <TContext>(x => x.UseFilter(_filter));
 }
コード例 #6
0
 public DynamicFilter(IPipeContextConverterFactory<TInput> converterFactory)
 {
     ConverterFactory = converterFactory;
     OutputPipes = new ConcurrentDictionary<Type, IOutputPipe>();
     Observers = new FilterObservable();
 }