CircuitStateController<TResult> abstract class CircuitStateController<TResult> : ICircuitController<TResult> Documentation Code protected long BlockedTill protected readonly TimeSpan DurationOfBreak protected CircuitState InternalCircuitState protected DelegateResult<TResult> LastOutcome protected readonly object Lock protected readonly Action<DelegateResult<TResult>, CircuitState, TimeSpan, Context> OnBreak protected readonly Action OnHalfOpen protected readonly Action<Context> OnReset public CircuitState CircuitState { get; } protected bool IsInAutomatedBreak_NeedsLock { get; } public Exception LastException { get; } public TResult LastHandledResult { get; } protected CircuitStateController(TimeSpan durationOfBreak, Action<DelegateResult<TResult>, CircuitState, TimeSpan, Context> onBreak, Action<Context> onReset, Action onHalfOpen) protected void Break_NeedsLock(Context context) public void Isolate() public abstract void OnActionFailure(DelegateResult<TResult> outcome, Context context) public void OnActionPreExecute() public abstract void OnActionSuccess(Context context) public abstract void OnCircuitReset(Context context) protected bool PermitHalfOpenCircuitTest() public void Reset() protected void ResetInternal_NeedsLock(Context context)