ConfigureBuilderContext<TKey>
The context used by ResiliencePipelineRegistry<T>.
using Polly.Utils;
using System;
using System.Collections.Generic;
using System.Runtime.CompilerServices;
using System.Threading;
namespace Polly.Registry
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public class ConfigureBuilderContext<TKey>
{
public TKey PipelineKey { get; }
internal string BuilderName { get; }
[System.Runtime.CompilerServices.Nullable(2)]
[field: System.Runtime.CompilerServices.Nullable(2)]
internal string BuilderInstanceName {
[System.Runtime.CompilerServices.NullableContext(2)]
get;
}
internal List<CancellationToken> ReloadTokens { get; } = new List<CancellationToken>();
internal List<Action> DisposeCallbacks { get; } = new List<Action>();
internal ConfigureBuilderContext(TKey strategyKey, string builderName, [System.Runtime.CompilerServices.Nullable(2)] string builderInstanceName)
{
PipelineKey = strategyKey;
BuilderName = builderName;
BuilderInstanceName = builderInstanceName;
}
public void AddReloadToken(CancellationToken cancellationToken)
{
if (cancellationToken.CanBeCanceled && !cancellationToken.IsCancellationRequested)
ReloadTokens.Add(cancellationToken);
}
public void OnPipelineDisposed(Action callback)
{
Guard.NotNull<Action>(callback, "callback");
DisposeCallbacks.Add(callback);
}
}
}