class SeekableFileContent
Default implementation for file contents based on simple strings.
@since 1.3.0
Hierarchy
- class \org\bovigo\vfs\content\SeekableFileContent implements \org\bovigo\vfs\content\FileContent
Expanded class hierarchy of SeekableFileContent
File
-
vendor/
mikey179/ vfsstream/ src/ main/ php/ org/ bovigo/ vfs/ content/ SeekableFileContent.php, line 16
Namespace
org\bovigo\vfs\contentView source
abstract class SeekableFileContent implements FileContent {
/**
* current position within content
*
* @type int
*/
private $offset = 0;
/**
* reads the given amount of bytes from content
*
* @param int $count
* @return string
*/
public function read($count) {
$data = $this->doRead($this->offset, $count);
$this->offset += $count;
return $data;
}
/**
* actual reading of given byte count starting at given offset
*
* @param int $offset
* @param int $count
*/
protected abstract function doRead($offset, $count);
/**
* seeks to the given offset
*
* @param int $offset
* @param int $whence
* @return bool
*/
public function seek($offset, $whence) {
$newOffset = $this->offset;
switch ($whence) {
case SEEK_CUR:
$newOffset += $offset;
break;
case SEEK_END:
$newOffset = $this->size() + $offset;
break;
case SEEK_SET:
$newOffset = $offset;
break;
default:
return false;
}
if ($newOffset < 0) {
return false;
}
$this->offset = $newOffset;
return true;
}
/**
* checks whether pointer is at end of file
*
* @return bool
*/
public function eof() {
return $this->size() <= $this->offset;
}
/**
* writes an amount of data
*
* @param string $data
* @return int amount of written bytes
*/
public function write($data) {
$dataLength = strlen($data);
$this->doWrite($data, $this->offset, $dataLength);
$this->offset += $dataLength;
return $dataLength;
}
/**
* actual writing of data with specified length at given offset
*
* @param string $data
* @param int $offset
* @param int $length
*/
protected abstract function doWrite($data, $offset, $length);
/**
* for backwards compatibility with vfsStreamFile::bytesRead()
*
* @return int
* @deprecated
*/
public function bytesRead() {
return $this->offset;
}
/**
* for backwards compatibility with vfsStreamFile::readUntilEnd()
*
* @return string
* @deprecated
*/
public function readUntilEnd() {
return substr($this->content(), $this->offset);
}
}
Members
Title Sort descending | Modifiers | Object type | Summary | Overriden Title | Overrides |
---|---|---|---|---|---|
FileContent::content | public | function | returns actual content | 2 | |
FileContent::size | public | function | returns size of content | 2 | |
FileContent::truncate | public | function | Truncates a file to a given length | 2 | |
SeekableFileContent::$offset | private | property | current position within content | ||
SeekableFileContent::bytesRead | public | function | for backwards compatibility with vfsStreamFile::bytesRead() | ||
SeekableFileContent::doRead | abstract protected | function | actual reading of given byte count starting at given offset | 2 | |
SeekableFileContent::doWrite | abstract protected | function | actual writing of data with specified length at given offset | 2 | |
SeekableFileContent::eof | public | function | checks whether pointer is at end of file | Overrides FileContent::eof | |
SeekableFileContent::read | public | function | reads the given amount of bytes from content | Overrides FileContent::read | |
SeekableFileContent::readUntilEnd | public | function | for backwards compatibility with vfsStreamFile::readUntilEnd() | ||
SeekableFileContent::seek | public | function | seeks to the given offset | Overrides FileContent::seek | |
SeekableFileContent::write | public | function | writes an amount of data | Overrides FileContent::write |