scratch

Subversion Repositories:
Compare Path: Rev
With Path: Rev
?path1? @ 86  →  ?path2? @ 87
/vendor/guzzlehttp/guzzle/src/Event/AbstractTransferEvent.php
@@ -0,0 +1,83 @@
<?php
 
namespace GuzzleHttp\Event;
 
use GuzzleHttp\Adapter\TransactionInterface;
use GuzzleHttp\Message\ResponseInterface;
 
/**
* Event that contains transaction statistics (time over the wire, lookup time,
* etc.).
*
* Adapters that create this event SHOULD add, at a minimum, the 'total_time'
* transfer statistic that measures the amount of time, in seconds, taken to
* complete a transfer for the current request/response cycle. Each event
* pertains to a single request/response transaction, NOT the entire
* transaction (e.g. redirects).
*
* Adapters that add transaction statistics SHOULD follow the same string
* attribute names that are provided by cURL listed at
* http://php.net/manual/en/function.curl-getinfo.php. However, not all
* adapters will have access to the advanced statistics provided by cURL. The
* most useful transfer statistics are as follows:
*
* - total_time: Total transaction time in seconds for last transfer
* - namelookup_time: Time in seconds until name resolving was complete
* - connect_time: Time in seconds it took to establish the connection
* - pretransfer_time: Time in seconds from start until just before file
* transfer begins.
* - starttransfer_time: Time in seconds until the first byte is about to be
* transferred.
* - speed_download: Average download speed, measured in bytes/second.
* - speed_upload: Average upload speed, measured in bytes/second.
*/
abstract class AbstractTransferEvent extends AbstractRequestEvent
{
private $transferInfo;
 
/**
* @param TransactionInterface $transaction Transaction
* @param array $transferInfo Transfer statistics
*/
public function __construct(
TransactionInterface $transaction,
$transferInfo = []
) {
parent::__construct($transaction);
$this->transferInfo = $transferInfo;
}
 
/**
* Get all transfer information as an associative array if no $name
* argument is supplied, or gets a specific transfer statistic if
* a $name attribute is supplied (e.g., 'total_time').
*
* @param string $name Name of the transfer stat to retrieve
*
* @return mixed|null|array
*/
public function getTransferInfo($name = null)
{
if (!$name) {
return $this->transferInfo;
}
 
return isset($this->transferInfo[$name])
? $this->transferInfo[$name]
: null;
}
 
/**
* Get the response
*
* @return ResponseInterface|null
*/
abstract public function getResponse();
 
/**
* Intercept the request and associate a response
*
* @param ResponseInterface $response Response to set
*/
abstract public function intercept(ResponseInterface $response);
}