����JFIF��x�x����'
Server IP : 78.140.185.180 / Your IP : 3.131.93.117 Web Server : LiteSpeed System : Linux cpanel13.v.fozzy.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : builderbox ( 1072) PHP Version : 7.3.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/builderbox/public_html/vendor/php-http/client-common/src/HttpClientPool/ |
Upload File : |
<?php declare(strict_types=1); namespace Http\Client\Common\HttpClientPool; use Http\Client\Common\Exception\HttpClientNotFoundException; use Http\Client\Common\HttpClientPool as HttpClientPoolInterface; use Http\Client\HttpAsyncClient; use Psr\Http\Client\ClientInterface; use Psr\Http\Message\RequestInterface; use Psr\Http\Message\ResponseInterface; /** * A http client pool allows to send requests on a pool of different http client using a specific strategy (least used, * round robin, ...). */ abstract class HttpClientPool implements HttpClientPoolInterface { /** * @var HttpClientPoolItem[] */ protected $clientPool = []; /** * Add a client to the pool. * * @param ClientInterface|HttpAsyncClient $client */ public function addHttpClient($client): void { // no need to check for HttpClientPoolItem here, since it extends the other interfaces if (!$client instanceof ClientInterface && !$client instanceof HttpAsyncClient) { throw new \TypeError( sprintf('%s::addHttpClient(): Argument #1 ($client) must be of type %s|%s, %s given', self::class, ClientInterface::class, HttpAsyncClient::class, get_debug_type($client)) ); } if (!$client instanceof HttpClientPoolItem) { $client = new HttpClientPoolItem($client); } $this->clientPool[] = $client; } /** * Return an http client given a specific strategy. * * @throws HttpClientNotFoundException When no http client has been found into the pool * * @return HttpClientPoolItem Return a http client that can do both sync or async */ abstract protected function chooseHttpClient(): HttpClientPoolItem; /** * {@inheritdoc} */ public function sendAsyncRequest(RequestInterface $request) { return $this->chooseHttpClient()->sendAsyncRequest($request); } /** * {@inheritdoc} */ public function sendRequest(RequestInterface $request): ResponseInterface { return $this->chooseHttpClient()->sendRequest($request); } }