PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / 1.2.20
Booking for Appointments and Events Calendar – Amelia v1.2.20
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / vendor / php-http / client-common / src / HttpClientPool / RoundRobinClientPool.php
ameliabooking / vendor / php-http / client-common / src / HttpClientPool Last commit date
LeastUsedClientPool.php 3 years ago RandomClientPool.php 3 years ago RoundRobinClientPool.php 3 years ago
RoundRobinClientPool.php
42 lines
1 <?php
2
3 namespace AmeliaHttp\Client\Common\HttpClientPool;
4
5 use AmeliaHttp\Client\Common\Exception\HttpClientNotFoundException;
6 use AmeliaHttp\Client\Common\HttpClientPool;
7
8 /**
9 * RoundRobinClientPool will choose the next client in the pool.
10 *
11 * @author Joel Wurtz <joel.wurtz@gmail.com>
12 */
13 final class RoundRobinClientPool extends HttpClientPool
14 {
15 /**
16 * {@inheritdoc}
17 */
18 protected function chooseHttpClient()
19 {
20 $last = current($this->clientPool);
21
22 do {
23 $client = next($this->clientPool);
24
25 if (false === $client) {
26 $client = reset($this->clientPool);
27
28 if (false === $client) {
29 throw new HttpClientNotFoundException('Cannot choose a http client as there is no one present in the pool');
30 }
31 }
32
33 // Case when there is only one and the last one has been disabled
34 if ($last === $client && $client->isDisabled()) {
35 throw new HttpClientNotFoundException('Cannot choose a http client as there is no one enabled in the pool');
36 }
37 } while ($client->isDisabled());
38
39 return $client;
40 }
41 }
42