PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 4.6.4
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v4.6.4
4.6.6 4.6.5 4.6.4 4.6.3 4.6.2 4.6.1 4.6.0 4.5.1 4.5.0 4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / vendor / guzzlehttp / psr7 / src / BufferStream.php
surecart / vendor / guzzlehttp / psr7 / src Last commit date
Exception 1 year ago AppendStream.php 1 year ago BufferStream.php 1 year ago CachingStream.php 1 year ago DroppingStream.php 1 year ago FnStream.php 1 year ago Header.php 1 year ago HttpFactory.php 1 year ago InflateStream.php 1 year ago LazyOpenStream.php 1 year ago LimitStream.php 1 year ago Message.php 1 year ago MessageTrait.php 1 year ago MimeType.php 1 year ago MultipartStream.php 1 year ago NoSeekStream.php 1 year ago PumpStream.php 1 year ago Query.php 1 year ago Request.php 1 year ago Response.php 1 year ago Rfc7230.php 1 year ago ServerRequest.php 1 year ago Stream.php 1 year ago StreamDecoratorTrait.php 1 year ago StreamWrapper.php 1 year ago UploadedFile.php 1 year ago Uri.php 1 year ago UriComparator.php 1 year ago UriNormalizer.php 1 year ago UriResolver.php 1 year ago Utils.php 1 year ago
BufferStream.php
148 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace SureCartVendors\GuzzleHttp\Psr7;
6
7 use SureCartVendors\Psr\Http\Message\StreamInterface;
8
9 /**
10 * Provides a buffer stream that can be written to to fill a buffer, and read
11 * from to remove bytes from the buffer.
12 *
13 * This stream returns a "hwm" metadata value that tells upstream consumers
14 * what the configured high water mark of the stream is, or the maximum
15 * preferred size of the buffer.
16 */
17 final class BufferStream implements StreamInterface
18 {
19 /** @var int */
20 private $hwm;
21
22 /** @var string */
23 private $buffer = '';
24
25 /**
26 * @param int $hwm High water mark, representing the preferred maximum
27 * buffer size. If the size of the buffer exceeds the high
28 * water mark, then calls to write will continue to succeed
29 * but will return 0 to inform writers to slow down
30 * until the buffer has been drained by reading from it.
31 */
32 public function __construct(int $hwm = 16384)
33 {
34 $this->hwm = $hwm;
35 }
36
37 public function __toString(): string
38 {
39 return $this->getContents();
40 }
41
42 public function getContents(): string
43 {
44 $buffer = $this->buffer;
45 $this->buffer = '';
46
47 return $buffer;
48 }
49
50 public function close(): void
51 {
52 $this->buffer = '';
53 }
54
55 public function detach()
56 {
57 $this->close();
58
59 return null;
60 }
61
62 public function getSize(): ?int
63 {
64 return strlen($this->buffer);
65 }
66
67 public function isReadable(): bool
68 {
69 return true;
70 }
71
72 public function isWritable(): bool
73 {
74 return true;
75 }
76
77 public function isSeekable(): bool
78 {
79 return false;
80 }
81
82 public function rewind(): void
83 {
84 $this->seek(0);
85 }
86
87 public function seek($offset, $whence = SEEK_SET): void
88 {
89 throw new \RuntimeException('Cannot seek a BufferStream');
90 }
91
92 public function eof(): bool
93 {
94 return strlen($this->buffer) === 0;
95 }
96
97 public function tell(): int
98 {
99 throw new \RuntimeException('Cannot determine the position of a BufferStream');
100 }
101
102 /**
103 * Reads data from the buffer.
104 */
105 public function read($length): string
106 {
107 $currentLength = strlen($this->buffer);
108
109 if ($length >= $currentLength) {
110 // No need to slice the buffer because we don't have enough data.
111 $result = $this->buffer;
112 $this->buffer = '';
113 } else {
114 // Slice up the result to provide a subset of the buffer.
115 $result = substr($this->buffer, 0, $length);
116 $this->buffer = substr($this->buffer, $length);
117 }
118
119 return $result;
120 }
121
122 /**
123 * Writes data to the buffer.
124 */
125 public function write($string): int
126 {
127 $this->buffer .= $string;
128
129 if (strlen($this->buffer) >= $this->hwm) {
130 return 0;
131 }
132
133 return strlen($string);
134 }
135
136 /**
137 * @return mixed
138 */
139 public function getMetadata($key = null)
140 {
141 if ($key === 'hwm') {
142 return $this->hwm;
143 }
144
145 return $key ? null : [];
146 }
147 }
148