krz/vox-populi
A Tumblr web client.
clone: git clone https://gitbay.org/krz/vox-populi.git
main: vendor/guzzlehttp/guzzle/src/TransferStats.php · raw
1<?php
2namespace GuzzleHttp;
3
4use Psr\Http\Message\RequestInterface;
5use Psr\Http\Message\ResponseInterface;
6use Psr\Http\Message\UriInterface;
7
8/**
9 * Represents data at the point after it was transferred either successfully
10 * or after a network error.
11 */
12final class TransferStats
13{
14 private $request;
15 private $response;
16 private $transferTime;
17 private $handlerStats;
18 private $handlerErrorData;
19
20 /**
21 * @param RequestInterface $request Request that was sent.
22 * @param ResponseInterface|null $response Response received (if any)
23 * @param float|null $transferTime Total handler transfer time.
24 * @param mixed $handlerErrorData Handler error data.
25 * @param array $handlerStats Handler specific stats.
26 */
27 public function __construct(
28 RequestInterface $request,
29 ResponseInterface $response = null,
30 $transferTime = null,
31 $handlerErrorData = null,
32 $handlerStats = []
33 ) {
34 $this->request = $request;
35 $this->response = $response;
36 $this->transferTime = $transferTime;
37 $this->handlerErrorData = $handlerErrorData;
38 $this->handlerStats = $handlerStats;
39 }
40
41 /**
42 * @return RequestInterface
43 */
44 public function getRequest()
45 {
46 return $this->request;
47 }
48
49 /**
50 * Returns the response that was received (if any).
51 *
52 * @return ResponseInterface|null
53 */
54 public function getResponse()
55 {
56 return $this->response;
57 }
58
59 /**
60 * Returns true if a response was received.
61 *
62 * @return bool
63 */
64 public function hasResponse()
65 {
66 return $this->response !== null;
67 }
68
69 /**
70 * Gets handler specific error data.
71 *
72 * This might be an exception, a integer representing an error code, or
73 * anything else. Relying on this value assumes that you know what handler
74 * you are using.
75 *
76 * @return mixed
77 */
78 public function getHandlerErrorData()
79 {
80 return $this->handlerErrorData;
81 }
82
83 /**
84 * Get the effective URI the request was sent to.
85 *
86 * @return UriInterface
87 */
88 public function getEffectiveUri()
89 {
90 return $this->request->getUri();
91 }
92
93 /**
94 * Get the estimated time the request was being transferred by the handler.
95 *
96 * @return float|null Time in seconds.
97 */
98 public function getTransferTime()
99 {
100 return $this->transferTime;
101 }
102
103 /**
104 * Gets an array of all of the handler specific transfer data.
105 *
106 * @return array
107 */
108 public function getHandlerStats()
109 {
110 return $this->handlerStats;
111 }
112
113 /**
114 * Get a specific handler statistic from the handler by name.
115 *
116 * @param string $stat Handler specific transfer stat to retrieve.
117 *
118 * @return mixed|null
119 */
120 public function getHandlerStat($stat)
121 {
122 return isset($this->handlerStats[$stat])
123 ? $this->handlerStats[$stat]
124 : null;
125 }
126}