%PDF- %PDF-
| Direktori : /home/graphicd/public_html/vebto/vendor/kreait/firebase-php/src/Firebase/Http/ |
| Current File : /home/graphicd/public_html/vebto/vendor/kreait/firebase-php/src/Firebase/Http/HttpClientOptions.php |
<?php
declare(strict_types=1);
namespace Kreait\Firebase\Http;
use Kreait\Firebase\Exception\InvalidArgumentException;
final class HttpClientOptions
{
/**
* The amount of seconds to wait while connecting to a server.
*
* Defaults to indefinitely.
*
* @var float|null
*/
private $connectTimeout;
/**
* The amount of seconds to wait while reading a streamed body.
*
* Defaults to the value of the default_socket_timeout PHP ini setting.
*
* @var float|null
*/
private $readTimeout;
/**
* The amount of seconds to wait for a full request (connect + transfer + read) to complete.
*
* Defaults to indefinitely.
*
* @var float|null
*/
private $timeout;
/**
* The proxy that all requests should be passed through.
*
* @var string|null
*/
private $proxy;
private function __construct()
{
}
public static function default(): self
{
return new self();
}
/**
* The amount of seconds to wait while connecting to a server.
*
* Defaults to indefinitely.
*/
public function connectTimeout(): ?float
{
return $this->connectTimeout;
}
/**
* @param float $value the amount of seconds to wait while connecting to a server
*/
public function withConnectTimeout(float $value): self
{
if ($value < 0) {
throw new InvalidArgumentException('The connect timeout cannot be smaller than zero.');
}
$options = clone $this;
$options->connectTimeout = $value;
return $options;
}
/**
* The amount of seconds to wait while reading a streamed body.
*
* Defaults to the value of the default_socket_timeout PHP ini setting.
*/
public function readTimeout(): ?float
{
return $this->readTimeout;
}
/**
* @param float $value the amount of seconds to wait while reading a streamed body
*/
public function withReadTimeout(float $value): self
{
if ($value < 0) {
throw new InvalidArgumentException('The read timeout cannot be smaller than zero.');
}
$options = clone $this;
$options->readTimeout = $value;
return $options;
}
/**
* The amount of seconds to wait for a full request (connect + transfer + read) to complete.
*
* Defaults to indefinitely.
*/
public function timeout(): ?float
{
return $this->timeout;
}
/**
* @param float $value the amount of seconds to wait while reading a streamed body
*/
public function withTimeout(float $value): self
{
if ($value < 0) {
throw new InvalidArgumentException('The total timeout cannot be smaller than zero.');
}
$options = clone $this;
$options->timeout = $value;
return $options;
}
/**
* The proxy that all requests should be passed through.
*/
public function proxy(): ?string
{
return $this->proxy;
}
/**
* @param string $value the proxy that all requests should be passed through
*/
public function withProxy(string $value): self
{
$options = clone $this;
$options->proxy = $value;
return $options;
}
}