PATH:
home
/
lab2454c
/
incforce.com
/
wp-content
/
plugins
/
easy-wp-smtp
/
vendor_prefixed
/
guzzlehttp
/
guzzle
/
src
<?php namespace EasyWPSMTP\Vendor\GuzzleHttp; use EasyWPSMTP\Vendor\GuzzleHttp\Promise\PromiseInterface; use EasyWPSMTP\Vendor\GuzzleHttp\Promise\RejectedPromise; use EasyWPSMTP\Vendor\GuzzleHttp\Psr7; use EasyWPSMTP\Vendor\Psr\Http\Message\RequestInterface; use EasyWPSMTP\Vendor\Psr\Http\Message\ResponseInterface; /** * Middleware that retries requests based on the boolean result of * invoking the provided "decider" function. */ class RetryMiddleware { /** @var callable */ private $nextHandler; /** @var callable */ private $decider; /** @var callable */ private $delay; /** * @param callable $decider Function that accepts the number of retries, * a request, [response], and [exception] and * returns true if the request is to be * retried. * @param callable $nextHandler Next handler to invoke. * @param callable $delay Function that accepts the number of retries * and [response] and returns the number of * milliseconds to delay. */ public function __construct(callable $decider, callable $nextHandler, callable $delay = null) { $this->decider = $decider; $this->nextHandler = $nextHandler; $this->delay = $delay ?: __CLASS__ . '::exponentialDelay'; } /** * Default exponential backoff delay function. * * @param int $retries * * @return int milliseconds. */ public static function exponentialDelay($retries) { return (int) \pow(2, $retries - 1) * 1000; } /** * @param RequestInterface $request * @param array $options * * @return PromiseInterface */ public function __invoke(\EasyWPSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options) { if (!isset($options['retries'])) { $options['retries'] = 0; } $fn = $this->nextHandler; return $fn($request, $options)->then($this->onFulfilled($request, $options), $this->onRejected($request, $options)); } /** * Execute fulfilled closure * * @return mixed */ private function onFulfilled(\EasyWPSMTP\Vendor\Psr\Http\Message\RequestInterface $req, array $options) { return function ($value) use($req, $options) { if (!\call_user_func($this->decider, $options['retries'], $req, $value, null)) { return $value; } return $this->doRetry($req, $options, $value); }; } /** * Execute rejected closure * * @return callable */ private function onRejected(\EasyWPSMTP\Vendor\Psr\Http\Message\RequestInterface $req, array $options) { return function ($reason) use($req, $options) { if (!\call_user_func($this->decider, $options['retries'], $req, null, $reason)) { return \EasyWPSMTP\Vendor\GuzzleHttp\Promise\rejection_for($reason); } return $this->doRetry($req, $options); }; } /** * @return self */ private function doRetry(\EasyWPSMTP\Vendor\Psr\Http\Message\RequestInterface $request, array $options, \EasyWPSMTP\Vendor\Psr\Http\Message\ResponseInterface $response = null) { $options['delay'] = \call_user_func($this->delay, ++$options['retries'], $response); return $this($request, $options); } }
[-] RetryMiddleware.php
[edit]
[-] RedirectMiddleware.php
[edit]
[+]
..
[+]
Exception
[-] UriTemplate.php
[edit]
[-] Utils.php
[edit]
[-] Client.php
[edit]
[+]
Handler
[-] PrepareBodyMiddleware.php
[edit]
[-] functions_include.php
[edit]
[-] MessageFormatter.php
[edit]
[-] TransferStats.php
[edit]
[-] Middleware.php
[edit]
[-] HandlerStack.php
[edit]
[+]
Cookie
[-] functions.php
[edit]
[-] RequestOptions.php
[edit]
[-] ClientInterface.php
[edit]
[-] Pool.php
[edit]