HEX
Server: Apache
System: Linux srv13.cpanelhost.cl 3.10.0-962.3.2.lve1.5.38.el7.x86_64 #1 SMP Thu Jun 18 05:28:41 EDT 2020 x86_64
User: cca63905 (4205)
PHP: 7.3.20
Disabled: NONE
Upload Files
File: //proc/self/cwd/nueva/vendor/prestashop/circuit-breaker/src/Contract/CircuitBreakerInterface.php
<?php

namespace PrestaShop\CircuitBreaker\Contract;

/**
 * A circuit breaker is used to provide
 * an alternative response when a tiers service
 * is unreachable.
 */
interface CircuitBreakerInterface
{
    /**
     * @return string the circuit breaker state
     */
    public function getState();

    /**
     * The function that execute the service.
     *
     * @param string $service the service to call
     * @param array $parameters the parameters for the request
     * @param callable|null $fallback if the service is unavailable, rely on the fallback
     *
     * @return string
     */
    public function call($service, array $parameters = [], callable $fallback = null);

    /**
     * @return bool checks if the circuit breaker is open
     */
    public function isOpened();

    /**
     * @return bool checks if the circuit breaker is half open
     */
    public function isHalfOpened();

    /**
     * @return bool checks if the circuit breaker is closed
     */
    public function isClosed();
}