setType($is); if (self::IS_A_BRIGADE === $this->getType()) { $this->setBrigade($brigade); } else { $this->setBucket(stream_bucket_new($brigade, $buffer)); $bucket = $this->getBucket(); $this->setBrigade($bucket); } return; } /** * Test the end-of-bucket. * When testing, set the new bucket object. * * @return bool */ public function eob() { $this->_bucket = null; return false == $this->getBucket(); } /** * Append bucket to the brigade. * * @param \Hoa\Stream\Bucket $bucket Bucket to add. * @return void */ public function append(Bucket $bucket) { stream_bucket_append($this->getBrigade(), $bucket->getBucket()); return; } /** * Prepend bucket to the brigade. * * @param \Hoa\Stream\Bucket $bucket Bucket to add. * @return void */ public function prepend(Bucket $bucket) { stream_bucket_prepend($this->getBrigade(), $bucket->getBucket()); return; } /** * Set type. * * @param bool $type Type. Please, see self::IS_A_* constants. * @return bool */ protected function setType($type) { $old = $this->_type; $this->_type = $type; return $old; } /** * Get type. * * @return bool */ public function getType() { return $this->_type; } /** * Set bucket data. * * @param string $data Data to set. * @return string */ public function setData($data) { $old = $this->getBucket()->data; $this->getBucket()->data = $data; $this->getBucket()->datalen = strlen($this->getBucket()->data); return $old; } /** * Get bucket data. * * @return string */ public function getData() { if (null === $this->getBucket()) { return null; } return $this->getBucket()->data; } /** * Get bucket length. * * @return int */ public function getLength() { if (null === $this->getBucket()) { return 0; } return $this->getBucket()->datalen; } /** * Set the brigade. * * @param resource &$brigade Brigade to add. * @return resource */ protected function setBrigade(&$brigade) { $old = $this->_brigade; $this->_brigade = $brigade; return $old; } /** * Get the brigade. * * @return resource */ public function getBrigade() { return $this->_brigade; } /** * Set bucket. * * @param resource $bucket Bucket. * @return resource */ protected function setBucket($bucket) { $old = $this->_bucket; $this->_bucket = $bucket; return $old; } /** * Get the current bucket. * * @return mixed */ protected function getBucket() { if (null === $this->_bucket && self::IS_A_BRIGADE === $this->getType()) { $this->_bucket = stream_bucket_make_writeable($this->getBrigade()); } return $this->_bucket; } }