Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 6 additions & 6 deletions src/c#/GeneralUpdate.Core/Pipeline/PipelineBuilder.cs
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@
namespace GeneralUpdate.Core.Pipeline
{
/// <summary>
/// Pipeline builder.
/// Pipeline builder — middleware execute in FIFO (registration) order.
/// </summary>
public sealed class PipelineBuilder(PipelineContext context)
{
/// <summary>
/// LIFO٬Last In First Out.
/// LIFO£¬Last In First Out.
/// </summary>
private ImmutableStack<IMiddleware> _middlewareStack = ImmutableStack<IMiddleware>.Empty;
private ImmutableQueue<IMiddleware> _middlewareQueue = ImmutableQueue<IMiddleware>.Empty;
Comment on lines 12 to +15

public PipelineBuilder UseMiddleware<TMiddleware>() where TMiddleware : IMiddleware, new()
{
var middleware = new TMiddleware();
_middlewareStack = _middlewareStack.Push(middleware);
_middlewareQueue = _middlewareQueue.Enqueue(middleware);
return this;
}

Expand All @@ -28,13 +28,13 @@ public PipelineBuilder UseMiddlewareIf<TMiddleware>(bool? condition)
return this;

var middleware = new TMiddleware();
_middlewareStack = _middlewareStack.Push(middleware);
_middlewareQueue = _middlewareQueue.Enqueue(middleware);
return this;
}

public async Task Build()
{
foreach (var middleware in _middlewareStack)
foreach (var middleware in _middlewareQueue)
{
await middleware.InvokeAsync(context);
}
Expand Down
4 changes: 2 additions & 2 deletions src/c#/GeneralUpdate.Core/Strategy/LinuxStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,9 @@ protected override PipelineBuilder BuildPipeline(PipelineContext context)
{
GeneralTracer.Info($"GeneralUpdate.Core.LinuxStrategy.BuildPipeline: assembling middleware pipeline. PatchEnabled={_configinfo.PatchEnabled}");
var builder = new PipelineBuilder(context)
.UseMiddlewareIf<PatchMiddleware>(_configinfo.PatchEnabled)
.UseMiddleware<HashMiddleware>()
.UseMiddleware<CompressMiddleware>()
.UseMiddleware<HashMiddleware>();
.UseMiddlewareIf<PatchMiddleware>(_configinfo.PatchEnabled);
return builder;
}

Expand Down
4 changes: 2 additions & 2 deletions src/c#/GeneralUpdate.Core/Strategy/MacStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,9 @@ protected override PipelineBuilder BuildPipeline(PipelineContext context)
{
GeneralTracer.Info($"MacStrategy.BuildPipeline: assembling middleware pipeline. PatchEnabled={_configinfo.PatchEnabled}");
var builder = new PipelineBuilder(context)
.UseMiddlewareIf<PatchMiddleware>(_configinfo.PatchEnabled)
.UseMiddleware<HashMiddleware>()
.UseMiddleware<CompressMiddleware>()
.UseMiddleware<HashMiddleware>();
.UseMiddlewareIf<PatchMiddleware>(_configinfo.PatchEnabled);
return builder;
}
}
4 changes: 2 additions & 2 deletions src/c#/GeneralUpdate.Core/Strategy/WindowsStrategy.cs
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,9 @@ protected override PipelineBuilder BuildPipeline(PipelineContext context)
{
GeneralTracer.Info($"GeneralUpdate.Core.WindowsStrategy.BuildPipeline: assembling middleware pipeline. PatchEnabled={_configinfo.PatchEnabled}");
var builder = new PipelineBuilder(context)
.UseMiddlewareIf<PatchMiddleware>(_configinfo.PatchEnabled)
.UseMiddleware<HashMiddleware>()
.UseMiddleware<CompressMiddleware>()
.UseMiddleware<HashMiddleware>();
.UseMiddlewareIf<PatchMiddleware>(_configinfo.PatchEnabled);
return builder;
}

Expand Down
Loading