File tree Expand file tree Collapse file tree
src/c#/GeneralUpdate.Core Expand file tree Collapse file tree Original file line number Diff line number Diff line change 55namespace GeneralUpdate . Core . Pipeline
66{
77 /// <summary>
8- /// Pipeline builder.
8+ /// Pipeline builder — middleware execute in FIFO (registration) order .
99 /// </summary>
1010 public sealed class PipelineBuilder ( PipelineContext context )
1111 {
1212 /// <summary>
13- /// LIFO£¬Last In First Out.
13+ /// LIFO£¬Last In First Out.
1414 /// </summary>
15- private ImmutableStack < IMiddleware > _middlewareStack = ImmutableStack < IMiddleware > . Empty ;
15+ private ImmutableQueue < IMiddleware > _middlewareQueue = ImmutableQueue < IMiddleware > . Empty ;
1616
1717 public PipelineBuilder UseMiddleware < TMiddleware > ( ) where TMiddleware : IMiddleware , new ( )
1818 {
1919 var middleware = new TMiddleware ( ) ;
20- _middlewareStack = _middlewareStack . Push ( middleware ) ;
20+ _middlewareQueue = _middlewareQueue . Enqueue ( middleware ) ;
2121 return this ;
2222 }
2323
@@ -28,13 +28,13 @@ public PipelineBuilder UseMiddlewareIf<TMiddleware>(bool? condition)
2828 return this ;
2929
3030 var middleware = new TMiddleware ( ) ;
31- _middlewareStack = _middlewareStack . Push ( middleware ) ;
31+ _middlewareQueue = _middlewareQueue . Enqueue ( middleware ) ;
3232 return this ;
3333 }
3434
3535 public async Task Build ( )
3636 {
37- foreach ( var middleware in _middlewareStack )
37+ foreach ( var middleware in _middlewareQueue )
3838 {
3939 await middleware . InvokeAsync ( context ) ;
4040 }
Original file line number Diff line number Diff line change @@ -20,9 +20,9 @@ protected override PipelineBuilder BuildPipeline(PipelineContext context)
2020 {
2121 GeneralTracer . Info ( $ "GeneralUpdate.Core.LinuxStrategy.BuildPipeline: assembling middleware pipeline. PatchEnabled={ _configinfo . PatchEnabled } ") ;
2222 var builder = new PipelineBuilder ( context )
23- . UseMiddlewareIf < PatchMiddleware > ( _configinfo . PatchEnabled )
23+ . UseMiddleware < HashMiddleware > ( )
2424 . UseMiddleware < CompressMiddleware > ( )
25- . UseMiddleware < HashMiddleware > ( ) ;
25+ . UseMiddlewareIf < PatchMiddleware > ( _configinfo . PatchEnabled ) ;
2626 return builder ;
2727 }
2828
Original file line number Diff line number Diff line change @@ -52,9 +52,9 @@ protected override PipelineBuilder BuildPipeline(PipelineContext context)
5252 {
5353 GeneralTracer . Info ( $ "MacStrategy.BuildPipeline: assembling middleware pipeline. PatchEnabled={ _configinfo . PatchEnabled } ") ;
5454 var builder = new PipelineBuilder ( context )
55- . UseMiddlewareIf < PatchMiddleware > ( _configinfo . PatchEnabled )
55+ . UseMiddleware < HashMiddleware > ( )
5656 . UseMiddleware < CompressMiddleware > ( )
57- . UseMiddleware < HashMiddleware > ( ) ;
57+ . UseMiddlewareIf < PatchMiddleware > ( _configinfo . PatchEnabled ) ;
5858 return builder ;
5959 }
6060}
Original file line number Diff line number Diff line change @@ -27,9 +27,9 @@ protected override PipelineBuilder BuildPipeline(PipelineContext context)
2727 {
2828 GeneralTracer . Info ( $ "GeneralUpdate.Core.WindowsStrategy.BuildPipeline: assembling middleware pipeline. PatchEnabled={ _configinfo . PatchEnabled } ") ;
2929 var builder = new PipelineBuilder ( context )
30- . UseMiddlewareIf < PatchMiddleware > ( _configinfo . PatchEnabled )
30+ . UseMiddleware < HashMiddleware > ( )
3131 . UseMiddleware < CompressMiddleware > ( )
32- . UseMiddleware < HashMiddleware > ( ) ;
32+ . UseMiddlewareIf < PatchMiddleware > ( _configinfo . PatchEnabled ) ;
3333 return builder ;
3434 }
3535
You can’t perform that action at this time.
0 commit comments