public IPropagatorBlock <IDataflowMessage <TIn>, IDataflowMessage <TOut> > CreateDelayingTransformMany <TIn, TOut>(ITransformMany <TIn, TOut> transformation, int boundedCapacity = -1) { var transFunc = transformation .WithExceptionHandler(m_LogAgent, this) .WithLogging(m_LogAgent) //.WithWorkloadStatistics(boundedCapacity, ()=> ) ; if (m_LogStatistics) { transFunc = transFunc.WithStatistics(m_LogAgent); m_StatisticsLoggers.Add((IStatisticsLogger)transFunc); } var block = CustomBlocks.CreateThrottledTransformMany( transFunc .AsFunction(), CreateDefaultExecutionOptions(boundedCapacity) ); return(block); }
public ExceptionDecoratorTransformMany(ITransformMany <TIn, TOut> decorated, ILogAgent logAgent, ICancelNetwork cancel) { m_Decorated = decorated; m_LogAgent = logAgent; m_Cancel = cancel; }
public static ITransformManyFunctor <TIn, TOut> WithExceptionHandler <TIn, TOut>(this ITransformMany <TIn, TOut> decoratedTransformation, ILogAgent log, ICancelNetwork cancel) { return(new ExceptionDecoratorTransformMany <TIn, TOut>(decoratedTransformation, log, cancel)); }