Verzeichnisstruktur phpBB-3.2.0


Veröffentlicht
06.01.2017

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

BufferStream.php

Zuletzt modifiziert: 09.10.2024, 12:56 - Dateigröße: 2.90 KiB


001  <?php
002  namespace GuzzleHttp\Stream;
003   
004  use GuzzleHttp\Stream\Exception\CannotAttachException;
005   
006  /**
007   * Provides a buffer stream that can be written to to fill a buffer, and read
008   * from to remove bytes from the buffer.
009   *
010   * This stream returns a "hwm" metadata value that tells upstream consumers
011   * what the configured high water mark of the stream is, or the maximum
012   * preferred size of the buffer.
013   *
014   * @package GuzzleHttp\Stream
015   */
016  class BufferStream implements StreamInterface
017  {
018      private $hwm;
019      private $buffer = '';
020   
021      /**
022       * @param int $hwm High water mark, representing the preferred maximum
023       *                 buffer size. If the size of the buffer exceeds the high
024       *                 water mark, then calls to write will continue to succeed
025       *                 but will return false to inform writers to slow down
026       *                 until the buffer has been drained by reading from it.
027       */
028      public function __construct($hwm = 16384)
029      {
030          $this->hwm = $hwm;
031      }
032   
033      public function __toString()
034      {
035          return $this->getContents();
036      }
037   
038      public function getContents()
039      {
040          $buffer = $this->buffer;
041          $this->buffer = '';
042   
043          return $buffer;
044      }
045   
046      public function close()
047      {
048          $this->buffer = '';
049      }
050   
051      public function detach()
052      {
053          $this->close();
054      }
055   
056      public function attach($stream)
057      {
058          throw new CannotAttachException();
059      }
060   
061      public function getSize()
062      {
063          return strlen($this->buffer);
064      }
065   
066      public function isReadable()
067      {
068          return true;
069      }
070   
071      public function isWritable()
072      {
073          return true;
074      }
075   
076      public function isSeekable()
077      {
078          return false;
079      }
080   
081      public function seek($offset, $whence = SEEK_SET)
082      {
083          return false;
084      }
085   
086      public function eof()
087      {
088          return strlen($this->buffer) === 0;
089      }
090   
091      public function tell()
092      {
093          return false;
094      }
095   
096      /**
097       * Reads data from the buffer.
098       */
099      public function read($length)
100      {
101          $currentLength = strlen($this->buffer);
102   
103          if ($length >= $currentLength) {
104              // No need to slice the buffer because we don't have enough data.
105              $result = $this->buffer;
106              $this->buffer = '';
107          } else {
108              // Slice up the result to provide a subset of the buffer.
109              $result = substr($this->buffer, 0, $length);
110              $this->buffer = substr($this->buffer, $length);
111          }
112   
113          return $result;
114      }
115   
116      /**
117       * Writes data to the buffer.
118       */
119      public function write($string)
120      {
121          $this->buffer .= $string;
122   
123          if (strlen($this->buffer) >= $this->hwm) {
124              return false;
125          }
126   
127          return strlen($string);
128      }
129   
130      public function getMetadata($key = null)
131      {
132          if ($key == 'hwm') {
133              return $this->hwm;
134          }
135   
136          return $key ? null : [];
137      }
138  }
139