[ Index ]

PHP Cross Reference of phpBB-3.3.7-deutsch

title

Body

[close]

/vendor/guzzlehttp/psr7/src/ -> DroppingStream.php (source)

   1  <?php
   2  
   3  namespace GuzzleHttp\Psr7;
   4  
   5  use Psr\Http\Message\StreamInterface;
   6  
   7  /**
   8   * Stream decorator that begins dropping data once the size of the underlying
   9   * stream becomes too full.
  10   *
  11   * @final
  12   */
  13  class DroppingStream implements StreamInterface
  14  {
  15      use StreamDecoratorTrait;
  16  
  17      private $maxLength;
  18  
  19      /**
  20       * @param StreamInterface $stream    Underlying stream to decorate.
  21       * @param int             $maxLength Maximum size before dropping data.
  22       */
  23      public function __construct(StreamInterface $stream, $maxLength)
  24      {
  25          $this->stream = $stream;
  26          $this->maxLength = $maxLength;
  27      }
  28  
  29      public function write($string)
  30      {
  31          $diff = $this->maxLength - $this->stream->getSize();
  32  
  33          // Begin returning 0 when the underlying stream is too large.
  34          if ($diff <= 0) {
  35              return 0;
  36          }
  37  
  38          // Write the stream or a subset of the stream if needed.
  39          if (strlen($string) < $diff) {
  40              return $this->stream->write($string);
  41          }
  42  
  43          return $this->stream->write(substr($string, 0, $diff));
  44      }
  45  }


Generated: Thu Mar 24 21:31:15 2022 Cross-referenced by PHPXref 0.7.1