This repository has been archived on 2024-06-04. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
thesis-src/Examples/CLI/Processor/StopwatchProcessor.cs
T
Simon Gruber 8ada606fa6 a
2023-11-22 07:46:10 +01:00

30 lines
807 B
C#

using Process.Abstract;
using Process.Interface;
using System.Diagnostics;
namespace CLI.Processor;
public class StopwatchProcessor<TInput, TOutput> : Processor<TInput, TOutput>
{
private readonly IProcessor<TInput, TOutput> _processor;
/// <summary>
/// Execution time of the last processing action
/// </summary>
public TimeSpan? Elapsed { get; private set; }
public StopwatchProcessor(IProcessor<TInput, TOutput> processor) => _processor = processor;
public override IEnumerable<TOutput> Process(IEnumerable<TInput> inputs)
{
var stopWatch = Stopwatch.StartNew();
var results = _processor.Process(inputs);
stopWatch.Stop();
Elapsed = stopWatch.Elapsed;
return results;
}
/// <inheritdoc />
public override string? ToString() => _processor.ToString();
}