You are here

public function BufferStream::read in Zircon Profile 8

Same name and namespace in other branches
  1. 8.0 vendor/guzzlehttp/psr7/src/BufferStream.php \GuzzleHttp\Psr7\BufferStream::read()

Reads data from the buffer.

Overrides StreamInterface::read

File

vendor/guzzlehttp/psr7/src/BufferStream.php, line 97

Class

BufferStream
Provides a buffer stream that can be written to to fill a buffer, and read from to remove bytes from the buffer.

Namespace

GuzzleHttp\Psr7

Code

public function read($length) {
  $currentLength = strlen($this->buffer);
  if ($length >= $currentLength) {

    // No need to slice the buffer because we don't have enough data.
    $result = $this->buffer;
    $this->buffer = '';
  }
  else {

    // Slice up the result to provide a subset of the buffer.
    $result = substr($this->buffer, 0, $length);
    $this->buffer = substr($this->buffer, $length);
  }
  return $result;
}