private ChainBuilder( SingleTaskBatcher <TIn> firstBatcher, List <Func <IEnumerable <Exception> > > getExceptions, List <SingleTaskBatcher> batchers) { Init(firstBatcher, getExceptions, batchers); }
private ChainBatcher <TIn> AndFinally(SingleTaskBatcher <TOut> finalBatcher) { _nextBatcher = () => finalBatcher; _getExceptions.Add(() => finalBatcher.Exceptions); _batchers.Add(finalBatcher); return(new ChainBatcher <TIn>(_firstBatcher, _getExceptions, _batchers)); }
internal ChainBuilder(Func <TIn, CancellationToken, Task <TOut> > func) { _firstBatcher = new SingleTaskBatcher <TIn>(async(i, t) => { var result = await func(i, t); _nextBatcher().Process(result); }); Init(_firstBatcher); }
internal ChainBuilder(Func <TIn, TOut> func) { _firstBatcher = new SingleTaskBatcher <TIn>(i => { var result = func(i); _nextBatcher().Process(result); }); Init(_firstBatcher); }
private void Init( SingleTaskBatcher <TIn> firstBatcher, List <Func <IEnumerable <Exception> > > getExceptions = null, List <SingleTaskBatcher> batchers = null) { _firstBatcher = firstBatcher; _getExceptions = getExceptions ?? new List <Func <IEnumerable <Exception> > > { () => firstBatcher.Exceptions }; _batchers = batchers ?? new List <SingleTaskBatcher> { firstBatcher }; }