public WorkloadStatisticsDecoratorTransformation(Guid groupGuid, ZContext ctx, ITransformationFunctor <TIn, TOut> decoratedTransformation, int boundedCapacity, Func <int> incMsg, Func <int> outMsg, CancellationToken ct) : base(groupGuid, ctx, DataflowNetworkConstituent.Transformation, boundedCapacity, ct) { m_DecoratedTransformation = decoratedTransformation; m_InMsgFunc = incMsg; m_OutMsgFunc = outMsg; m_nms = 0; }
/// <summary> /// Creates a transformation that takes one input and produces one output for each. /// </summary> /// <typeparam name="TIn"></typeparam> /// <typeparam name="TOut"></typeparam> /// <param name="transformation"></param> /// <param name="boundedCapacity"></param> /// <returns></returns> public TransformBlock <IDataflowMessage <TIn>, IDataflowMessage <TOut> > CreateTransform <TIn, TOut>(ITransformation <TIn, TOut> transformation, int boundedCapacity = -1) { TransformBlock <IDataflowMessage <TIn>, IDataflowMessage <TOut> > block = null; ITransformationFunctor <TIn, TOut> transFunc = transformation .WithExceptionHandler(m_LogAgent, this) .WithLogging(m_LogAgent) .WithWorkloadStatistics(boundedCapacity, () => block.InputCount, () => block.OutputCount, m_ctx, this.m_DfnGuid, m_Cts.Token);// x() f(), functionPointer())// MsgInFunc(), MsgInFunc())// m_MsgInFunc, m_MsgOutFunc) if (m_LogStatistics) { transFunc = transFunc.WithStatistics(m_LogAgent); m_StatisticsLoggers.Add((IStatisticsLogger)transFunc); } block = new TransformBlock <IDataflowMessage <TIn>, IDataflowMessage <TOut> >( transFunc .AsFunction(), CreateDefaultExecutionOptions(boundedCapacity)); return(block); }
public static ITransformationFunctor <TIn, TOut> WithStatistics <TIn, TOut>(this ITransformationFunctor <TIn, TOut> decoratedTransformation, ILogAgent logAgent) { return(new StatisticsLogDecoratorTransformation <TIn, TOut>(decoratedTransformation, logAgent)); }
public static ITransformationFunctor <TIn, TOut> WithWorkloadStatistics <TIn, TOut>(this ITransformationFunctor <TIn, TOut> decoratedTransformation, int boundedCapacity, Func <int> incMsgCnt, Func <int> outMsgCnt, ZContext ctx, Guid groupguid, CancellationToken ct) { return(new WorkloadStatisticsDecoratorTransformation <TIn, TOut>(groupguid, ctx, decoratedTransformation, boundedCapacity, incMsgCnt, outMsgCnt, ct)); }
public LogDecoratorTransformation(ITransformationFunctor <TIn, TOut> decoratedTransformation, ILogAgent logAgent) { m_DecoratedTransformation = decoratedTransformation; m_LogAgent = logAgent; }
public static ITransformationFunctor <TIn, TOut> SkipEmpty <TIn, TOut>(this ITransformationFunctor <TIn, TOut> decoratedTransformation) { return(new SkipEmptyDecoratorTransformation <TIn, TOut>(decoratedTransformation)); }
public SkipEmptyDecoratorTransformation(ITransformationFunctor <TIn, TOut> decoratedTransformation) { m_DecoratedTransformation = decoratedTransformation; }
public StatisticsLogDecoratorTransformation(ITransformationFunctor <TIn, TOut> decoratedTransformation, ILogAgent logAgent) : base(logAgent, decoratedTransformation.Title, DataflowNetworkConstituent.Transformation) { m_DecoratedTransformation = decoratedTransformation; }
public static Func <IDataflowMessage <TIn>, IDataflowMessage <TOut> > AsFunction <TIn, TOut>(this ITransformationFunctor <TIn, TOut> transformation) { return(transformation.Transform); }