public static function deserialize($string_object, $class_name)
 {
     $transport = new TMemoryBuffer();
     $protocol = new TBinaryProtocolAccelerated($transport);
     if (function_exists('thrift_protocol_read_binary')) {
         $protocol->writeMessageBegin('', TMessageType::REPLY, 0);
         $transport->write($string_object);
         return thrift_protocol_read_binary($protocol, $class_name, $protocol->isStrictRead());
     } else {
         $transport->write($string_object);
         $object = new $class_name();
         $object->read($protocol);
         return $object;
     }
 }
Example #2
0
 public static function deserialize($string_object, $class_name)
 {
     $transport = new TMemoryBuffer();
     $protocol = new TBinaryProtocolAccelerated($transport);
     if (function_exists('thrift_protocol_read_binary')) {
         // NOTE (t.heintz) TBinaryProtocolAccelerated internally wraps our TMemoryBuffer in a
         // TBufferedTransport, so we have to retrieve it again or risk losing data when writing
         // less than 512 bytes to the transport (see the comment there as well).
         // @see THRIFT-1579
         $protocol->writeMessageBegin('', TMessageType::REPLY, 0);
         $protocolTransport = $protocol->getTransport();
         $protocolTransport->write($string_object);
         $protocolTransport->flush();
         return thrift_protocol_read_binary($protocol, $class_name, $protocol->isStrictRead());
     } else {
         $transport->write($string_object);
         $object = new $class_name();
         $object->read($protocol);
         return $object;
     }
 }