PluginProbe
Media Cloud Sync / 1.3.11
Media Cloud Sync v1.3.11
1.4.0 1.3.12 1.3.11 1.3.10 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.2.0 1.2.10 1.2.11 1.2.12 1.2.13 1.2.2 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 All 34 releases
media-cloud-sync / includes / sdk / s3 / GuzzleHttp / Handler / Proxy.php

Proxy.php in Media Cloud Sync 1.3.11, at includes/sdk/s3/GuzzleHttp/Handler/Proxy.php

50 lines 2.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Dudlewebs\WPMCS\s3\GuzzleHttp\Handler;
4
5 use Dudlewebs\WPMCS\s3\GuzzleHttp\Promise\PromiseInterface;
6 use Dudlewebs\WPMCS\s3\GuzzleHttp\RequestOptions;
7 use Dudlewebs\WPMCS\s3\Psr\Http\Message\RequestInterface;
8 /**
9 * Provides basic proxies for handlers.
10 *
11 * @final
12 */
13 class Proxy
14 {
15 /**
16 * Sends synchronous requests to a specific handler while sending all other
17 * requests to another handler.
18 *
19 * @param callable(RequestInterface, array): PromiseInterface $default Handler used for normal responses
20 * @param callable(RequestInterface, array): PromiseInterface $sync Handler used for synchronous responses.
21 *
22 * @return callable(RequestInterface, array): PromiseInterface Returns the composed handler.
23 */
24 public static function wrapSync(callable $default, callable $sync) : callable
25 {
26 return static function (RequestInterface $request, array $options) use($default, $sync) : PromiseInterface {
27 return empty($options[RequestOptions::SYNCHRONOUS]) ? $default($request, $options) : $sync($request, $options);
28 };
29 }
30 /**
31 * Sends streaming requests to a streaming compatible handler while sending
32 * all other requests to a default handler.
33 *
34 * This, for example, could be useful for taking advantage of the
35 * performance benefits of curl while still supporting true streaming
36 * through the StreamHandler.
37 *
38 * @param callable(RequestInterface, array): PromiseInterface $default Handler used for non-streaming responses
39 * @param callable(RequestInterface, array): PromiseInterface $streaming Handler used for streaming responses
40 *
41 * @return callable(RequestInterface, array): PromiseInterface Returns the composed handler.
42 */
43 public static function wrapStreaming(callable $default, callable $streaming) : callable
44 {
45 return static function (RequestInterface $request, array $options) use($default, $streaming) : PromiseInterface {
46 return empty($options['stream']) ? $default($request, $options) : $streaming($request, $options);
47 };
48 }
49 }
50