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