private void DisposeState(CircuitBreakerStateInternal existingState) { IDisposable disposable = existingState as IDisposable; if (disposable == null) { return; } disposable.Dispose(); }
private void Transitioning(CircuitBreakerStateInternal newState) { if (newState.GetType() == this.currentState.GetType()) { return; } var previous = this.State; var args = new CircuitBreakerStateChangedEventArgs { Previous = previous, Current = newState }; this.currentState = newState; this.OnStateChanged(args); this.DisposeState(previous); }
public CircuitBreakerStateMachineImpl(CircuitBreakerStateInternal initialState) { this.currentState = initialState; }