2020-07-19 13:04:31 +02:00
|
|
|
namespace WotBlitzStatisticsPro.Logic.Pipeline
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Represents operation pipeline
|
|
|
|
|
/// </summary>
|
|
|
|
|
public interface IPipeline<TContext>
|
|
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Builds the pipeline.
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <returns>First operation in pipeline.</returns>
|
2020-12-27 12:39:25 +01:00
|
|
|
IOperation<TContext>? Build();
|
2020-07-19 13:04:31 +02:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Adds operation type to the pipeline
|
|
|
|
|
/// </summary>
|
|
|
|
|
/// <typeparam name="TOperation">Operation type</typeparam>
|
|
|
|
|
/// <returns>Pipeline instance</returns>
|
|
|
|
|
IPipeline<TContext> AddOperation<TOperation>() where TOperation : IOperation<TContext>;
|
|
|
|
|
}
|
|
|
|
|
}
|