Example #1
0
        /// <summary>
        /// Initialises a new circuit breaker using the supplied settings with a nested resiliency pattern invoker.
        /// </summary>
        /// <param name="settings">Settings to configure the circuit breaker.</param>
        /// <param name="nestedInvoker">The invoker to pass the command onto.</param>
        public CircuitBreaker(CircuitBreakerSettings settings, ResiliencyCommandInvoker nestedInvoker)
        {
            if (settings == null)
            {
                settings = new CircuitBreakerSettings();
            }
            var parameters = new CircuitBreakerStateParameters
            {
                settings = settings,
                invoker  = nestedInvoker
            };

            this.stateMachine       = new CircuitBreakerStateMachineImpl(new CircuitBreakerStateNormal(parameters));
            parameters.stateMachine = this.stateMachine;
            this.AttachToStateChangeEvent();
        }
Example #2
0
 internal CircuitBreaker(CircuitBreakerStateMachine stateMachine)
 {
     this.stateMachine = stateMachine;
     this.AttachToStateChangeEvent();
 }