buffer_ = ''; $this->len_ = 0; } function __destruct() { if (0 < $this->len_) { fprintf(STDERR, "%s: %d bytes unused\n", __METHOD__, $this->len_); } } function len() { return $this->len_; } function strpos($str) { return strpos($this->buffer_, $str); } function append($str) { $this->buffer_ .= $str; $this->len_ += strlen($str); } function get($n = NULL) { if (is_null($n)) { $n = $this->len_; } if ($this->len_ < $n) { fprintf(STDERR, "%s:%s: short buffer: requested=%d available=%d\n", __CLASS__, __FUNCTION__, $n, $this->len_); $n = $this->len_; } $rtn = substr($this->buffer_, 0, $n); $this->buffer_ = substr($this->buffer_, $n); $this->len_ = strlen($this->buffer_); return $rtn; } } // End of file