PluginProbe
WCPOS – Point of Sale (POS) plugin for WooCommerce / 1.10.20
WCPOS – Point of Sale (POS) plugin for WooCommerce v1.10.20
1.10.20 1.10.19 1.10.18 1.10.17 1.10.16 1.10.15 1.10.13 1.10.14 1.10.12 1.10.11 1.10.10 1.10.9 1.10.8 untagged-3d9b7ccddc54df87c672 1.10.7 1.10.6 1.10.5 1.10.3 1.10.4 1.10.2 1.10.1 1.10.0 1.9.17 1.9.15 1.9.16 All 164 releases
woocommerce-pos / vendor_prefixed / guzzlehttp / psr7 / src / DroppingStream.php

DroppingStream.php in WCPOS – Point of Sale (POS) plugin for WooCommerce 1.10.20, at vendor_prefixed/guzzlehttp/psr7/src/DroppingStream.php

40 lines 1.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare (strict_types=1);
4 namespace WCPOS\Vendor\GuzzleHttp\Psr7;
5
6 use WCPOS\Vendor\Psr\Http\Message\StreamInterface;
7 /**
8 * Stream decorator that begins dropping data once the size of the underlying
9 * stream becomes too full.
10 */
11 final class DroppingStream implements StreamInterface
12 {
13 use StreamDecoratorTrait;
14 use NonSerializableStreamTrait;
15 private int $maxLength;
16 private StreamInterface $stream;
17 /**
18 * @param StreamInterface $stream Underlying stream to decorate.
19 * @param int $maxLength Maximum size before dropping data.
20 */
21 public function __construct(StreamInterface $stream, int $maxLength)
22 {
23 $this->stream = $stream;
24 $this->maxLength = Integers::assertNonNegativeInteger($maxLength, 'Maximum length');
25 }
26 public function write(string $string) : int
27 {
28 $diff = $this->maxLength - $this->stream->getSize();
29 // Begin returning 0 when the underlying stream is too large.
30 if ($diff <= 0) {
31 return 0;
32 }
33 // Write the stream or a subset of the stream if needed.
34 if (\strlen($string) < $diff) {
35 return $this->stream->write($string);
36 }
37 return $this->stream->write(\substr($string, 0, $diff));
38 }
39 }
40