TProtocolDecorator forwards all requests to an enclosed * TProtocol instance, providing a way to author concise * concrete decorator subclasses. While it has no abstract methods, it * is marked abstract as a reminder that by itself, it does not modify * the behaviour of the enclosed TProtocol. * * @package Thrift\Protocol */ abstract class TProtocolDecorator extends TProtocol { /** * Instance of protocol, to which all operations will be forwarded. * * @var TProtocol */ private $concreteProtocol_; /** * Constructor of TProtocolDecorator class. * Encloses the specified protocol. * * @param TProtocol $protocol All operations will be forward to this instance. Must be non-null. */ protected function __construct(TProtocol $protocol) { parent::__construct($protocol->getTransport()); $this->concreteProtocol_ = $protocol; } /** * Writes the message header. * * @param string $name Function name * @param int $type message type TMessageType::CALL or TMessageType::REPLY * @param int $seqid The sequence id of this message */ public function writeMessageBegin($name, $type, $seqid) { return $this->concreteProtocol_->writeMessageBegin($name, $type, $seqid); } /** * Closes the message. */ public function writeMessageEnd() { return $this->concreteProtocol_->writeMessageEnd(); } /** * Writes a struct header. * * @param string $name Struct name * * @throws TException on write error * @return int How many bytes written */ public function writeStructBegin($name) { return $this->concreteProtocol_->writeStructBegin($name); } /** * Close a struct. * * @throws TException on write error * @return int How many bytes written */ public function writeStructEnd() { return $this->concreteProtocol_->writeStructEnd(); } public function writeFieldBegin($fieldName, $fieldType, $fieldId) { return $this->concreteProtocol_->writeFieldBegin($fieldName, $fieldType, $fieldId); } public function writeFieldEnd() { return $this->concreteProtocol_->writeFieldEnd(); } public function writeFieldStop() { return $this->concreteProtocol_->writeFieldStop(); } public function writeMapBegin($keyType, $valType, $size) { return $this->concreteProtocol_->writeMapBegin($keyType, $valType, $size); } public function writeMapEnd() { return $this->concreteProtocol_->writeMapEnd(); } public function writeListBegin($elemType, $size) { return $this->concreteProtocol_->writeListBegin($elemType, $size); } public function writeListEnd() { return $this->concreteProtocol_->writeListEnd(); } public function writeSetBegin($elemType, $size) { return $this->concreteProtocol_->writeSetBegin($elemType, $size); } public function writeSetEnd() { return $this->concreteProtocol_->writeSetEnd(); } public function writeBool($bool) { return $this->concreteProtocol_->writeBool($bool); } public function writeByte($byte) { return $this->concreteProtocol_->writeByte($byte); } public function writeI16($i16) { return $this->concreteProtocol_->writeI16($i16); } public function writeI32($i32) { return $this->concreteProtocol_->writeI32($i32); } public function writeI64($i64) { return $this->concreteProtocol_->writeI64($i64); } public function writeDouble($dub) { return $this->concreteProtocol_->writeDouble($dub); } public function writeString($str) { return $this->concreteProtocol_->writeString($str); } /** * Reads the message header * * @param string $name Function name * @param int $type message type TMessageType::CALL or TMessageType::REPLY * @param int $seqid The sequence id of this message */ public function readMessageBegin(&$name, &$type, &$seqid) { return $this->concreteProtocol_->readMessageBegin($name, $type, $seqid); } /** * Read the close of message */ public function readMessageEnd() { return $this->concreteProtocol_->readMessageEnd(); } public function readStructBegin(&$name) { return $this->concreteProtocol_->readStructBegin($name); } public function readStructEnd() { return $this->concreteProtocol_->readStructEnd(); } public function readFieldBegin(&$name, &$fieldType, &$fieldId) { return $this->concreteProtocol_->readFieldBegin($name, $fieldType, $fieldId); } public function readFieldEnd() { return $this->concreteProtocol_->readFieldEnd(); } public function readMapBegin(&$keyType, &$valType, &$size) { $this->concreteProtocol_->readMapBegin($keyType, $valType, $size); } public function readMapEnd() { return $this->concreteProtocol_->readMapEnd(); } public function readListBegin(&$elemType, &$size) { $this->concreteProtocol_->readListBegin($elemType, $size); } public function readListEnd() { return $this->concreteProtocol_->readListEnd(); } public function readSetBegin(&$elemType, &$size) { return $this->concreteProtocol_->readSetBegin($elemType, $size); } public function readSetEnd() { return $this->concreteProtocol_->readSetEnd(); } public function readBool(&$bool) { return $this->concreteProtocol_->readBool($bool); } public function readByte(&$byte) { return $this->concreteProtocol_->readByte($byte); } public function readI16(&$i16) { return $this->concreteProtocol_->readI16($i16); } public function readI32(&$i32) { return $this->concreteProtocol_->readI32($i32); } public function readI64(&$i64) { return $this->concreteProtocol_->readI64($i64); } public function readDouble(&$dub) { return $this->concreteProtocol_->readDouble($dub); } public function readString(&$str) { return $this->concreteProtocol_->readString($str); } }