protected override IStream <NodeTraces> CreateOutputStream(KeepLastTracesArgs args) => base.CreateUnsortedStream(args.InputStream.Observable .Group( traceEvent => traceEvent.NodeName, (traceEventStream, _) => traceEventStream.Aggregate( i => new { NodeName = i.NodeName, TraceQueue = new LimitedQueue <TraceEvent>(args.Limit), Counter = new Counter() }, (o, i) => { o.TraceQueue.Enqueue(i); o.Counter.Increment(); return(o); })) .Map(i => new NodeTraces { NodeName = i.NodeName, TraceEvents = i.TraceQueue.ToList(), ActualCount = i.Counter.Value }));
public KeepLastTracesStreamNode(string name, KeepLastTracesArgs args) : base(name, args) { }