*/ /** * A memory buffer is a tranpsort that simply reads from and writes to an * in-memory string buffer. Anytime you call write on it, the data is simply * placed into a buffer, and anytime you call read, data is read from that * buffer. * * @package thrift.transport * @author Levy Klots */ class TMemoryBuffer extends TTransport { /** * Constructor. Optionally pass an initial value * for the buffer. */ public function __construct($buf = '') { $this->buf_ = $buf; } protected $buf_ = ''; public function isOpen() { return true; } public function open() {} public function close() {} public function write($buf) { $this->buf_ .= $buf; } public function read($len) { if (strlen($this->buf_) === 0) { throw new TTransportException('TMemoryBuffer: Could not read ' . $len . ' bytes from buffer.', TTransportException::UNKNOWN); } if (strlen($this->buf_) <= $len) { $ret = $this->buf_; $this->buf_ = ''; return $ret; } $ret = substr($this->buf_, 0, $len); $this->buf_ = substr($this->buf_, $len); return $ret; } function getBuffer() { return $this->buf_; } public function available() { return strlen($this->buf_); } } ?>