PipelineComponent
Represents a single component of a resilience pipeline.
using System;
using System.Runtime.CompilerServices;
using System.Threading.Tasks;
namespace Polly.Utils.Pipeline
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
internal abstract class PipelineComponent : IAsyncDisposable
{
[System.Runtime.CompilerServices.NullableContext(0)]
private sealed class NullComponent : PipelineComponent
{
[System.Runtime.CompilerServices.NullableContext(1)]
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
0,
1
})]
internal override ValueTask<Outcome<TResult>> ExecuteCore<[System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] {
1,
1,
1,
0,
0,
1
})] Func<ResilienceContext, TState, ValueTask<Outcome<TResult>>> callback, ResilienceContext context, TState state)
{
return callback(context, state);
}
public override ValueTask DisposeAsync()
{
return default(ValueTask);
}
}
public static PipelineComponent Empty { get; } = new NullComponent();
[System.Runtime.CompilerServices.Nullable(2)]
[field: System.Runtime.CompilerServices.Nullable(2)]
internal ResilienceStrategyOptions Options {
[System.Runtime.CompilerServices.NullableContext(2)]
get;
[System.Runtime.CompilerServices.NullableContext(2)]
set;
}
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
0,
1
})]
internal abstract ValueTask<Outcome<TResult>> ExecuteCore<[System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] {
1,
1,
1,
0,
0,
1
})] Func<ResilienceContext, TState, ValueTask<Outcome<TResult>>> callback, ResilienceContext context, TState state);
[return: System.Runtime.CompilerServices.Nullable(new byte[] {
0,
1
})]
internal Outcome<TResult> ExecuteCoreSync<[System.Runtime.CompilerServices.Nullable(2)] TResult, [System.Runtime.CompilerServices.Nullable(2)] TState>([System.Runtime.CompilerServices.Nullable(new byte[] {
1,
1,
1,
0,
1
})] Func<ResilienceContext, TState, Outcome<TResult>> callback, ResilienceContext context, TState state)
{
return ExecuteCore((ResilienceContext context, (Func<ResilienceContext, TState, Outcome<TResult>> callback, TState state) state) => new ValueTask<Outcome<TResult>>(state.callback(context, state.state)), context, (callback, state)).GetResult();
}
public abstract ValueTask DisposeAsync();
}
}