diff --git a/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs b/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs index 384ee33ee9e..3032393a0fa 100644 --- a/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs +++ b/src/Polly.Shared/CircuitBreaker/CircuitBreakerPolicy.cs @@ -8,7 +8,7 @@ namespace Polly.CircuitBreaker /// /// A circuit-breaker policy that can be applied to delegates. /// - public partial class CircuitBreakerPolicy : Policy + public partial class CircuitBreakerPolicy : Policy, ICircuitBreakerPolicy { private readonly ICircuitController _breakerController; @@ -57,7 +57,7 @@ public void Reset() /// /// A circuit-breaker policy that can be applied to delegates returning a value of type . /// - public partial class CircuitBreakerPolicy : Policy + public partial class CircuitBreakerPolicy : Policy, ICircuitBreakerPolicy { private readonly ICircuitController _breakerController; diff --git a/src/Polly.Shared/CircuitBreaker/ICircuitBreakerPolicy.cs b/src/Polly.Shared/CircuitBreaker/ICircuitBreakerPolicy.cs new file mode 100644 index 00000000000..43b14db9f3c --- /dev/null +++ b/src/Polly.Shared/CircuitBreaker/ICircuitBreakerPolicy.cs @@ -0,0 +1,30 @@ +using System; + +namespace Polly.CircuitBreaker +{ + /// + /// Common interface for CB policies allowing users of the library to + /// + public interface ICircuitBreakerPolicy + { + /// + /// Gets the state of the underlying circuit. + /// + CircuitState CircuitState { get; } + + /// + /// Gets the last exception handled by the circuit-breaker. + /// + Exception LastException { get; } + + /// + /// Isolates (opens) the circuit manually, and holds it in this state until a call to is made. + /// + void Isolate(); + + /// + /// Closes the circuit, and resets any statistics controlling automated circuit-breaking. + /// + void Reset(); + } +} diff --git a/src/Polly.Shared/Polly.Shared.projitems b/src/Polly.Shared/Polly.Shared.projitems index aab685a62c1..97733fa960c 100644 --- a/src/Polly.Shared/Polly.Shared.projitems +++ b/src/Polly.Shared/Polly.Shared.projitems @@ -35,6 +35,7 @@ +