BlockCachedSourceStream implements SourceStream
Serves read() from the last two fixed-size blocks it fetched, so many small reads that walk a region forward - a scan probing candidate positions - cost one inner read per block instead of one per call.
Interfaces
Methods
- __construct() : mixed
- close() : void
- content() : string
- isOpen() : bool
- iterate() : Generator<string|int, string>
- path() : Path
- read() : string
- readLines() : Generator<string|int, string>
- Yields the stream's lines with the separator stripped: a 0-byte stream yields nothing, a separator that ends the stream opens no further line, and every other empty line is yielded as ''. The separator is matched byte for byte; no "\r" is stripped. "x\ny\n" -> ["x","y"], "x\n\ny" -> ["x","","y"], "x\n\n" -> ["x",""], "x\r\ny" -> ["x\r","y"], "" -> [].
- size() : null|int
Methods
__construct()
public
__construct(SourceStream $stream[, int $blockSize = 1 << 16 ]) : mixed
Parameters
- $stream : SourceStream
- $blockSize : int = 1 << 16
close()
public
close() : void
content()
public
content() : string
Return values
stringisOpen()
public
isOpen() : bool
Return values
booliterate()
public
iterate([int $length = 1 ]) : Generator<string|int, string>
Parameters
- $length : int = 1
-
number of bytes to read from the stream
Return values
Generator<string|int, string>path()
public
path() : Path
Return values
Pathread()
public
read(int $length, int $offset) : string
Parameters
- $length : int
-
number of bytes to read from the stream
- $offset : int
-
a negative offset counts from the end and bypasses the cache
Return values
stringreadLines()
Yields the stream's lines with the separator stripped: a 0-byte stream yields nothing, a separator that ends the stream opens no further line, and every other empty line is yielded as ''. The separator is matched byte for byte; no "\r" is stripped. "x\ny\n" -> ["x","y"], "x\n\ny" -> ["x","","y"], "x\n\n" -> ["x",""], "x\r\ny" -> ["x\r","y"], "" -> [].
public
readLines([string $separator = "\n" ][, int|null $length = null ]) : Generator<string|int, string>
Parameters
- $separator : string = "\n"
-
multi-byte included
- $length : int|null = null
-
bytes read per step - a read-chunk hint, never a cap on line length; null lets the implementation choose
Return values
Generator<string|int, string>size()
public
size() : null|int
Return values
null|int —The size of the stream in bytes