/**
  * {@inheritdoc}
  */
 public function parseResponseBuffer($buffer)
 {
     phpiredis_reader_feed($reader = $this->reader, $buffer);
     while (phpiredis_reader_get_state($reader) === PHPIREDIS_READER_STATE_COMPLETE) {
         $this->state->process(phpiredis_reader_get_reply($reader));
     }
 }
示例#2
0
 /**
  * Feeds phpredis' reader resource with the data read from the network.
  *
  * @param resource $resource Reader resource.
  * @param string $buffer Buffer with the reply read from the network.
  * @return int
  */
 protected function feedReader($resource, $buffer)
 {
     phpiredis_reader_feed($this->_reader, $buffer);
     return strlen($buffer);
 }
示例#3
0
 /**
  * {@inheritdoc}
  */
 public function read()
 {
     $socket = $this->getResource();
     $reader = $this->reader;
     while (PHPIREDIS_READER_STATE_INCOMPLETE === ($state = phpiredis_reader_get_state($reader))) {
         if (@socket_recv($socket, $buffer, 4096, 0) === false || $buffer === '' || $buffer === null) {
             $this->emitSocketError();
         }
         phpiredis_reader_feed($reader, $buffer);
     }
     if ($state === PHPIREDIS_READER_STATE_COMPLETE) {
         return phpiredis_reader_get_reply($reader);
     } else {
         $this->onProtocolError(phpiredis_reader_get_error($reader));
         return;
     }
 }
 /**
  * {@inheritdoc}
  */
 public function read()
 {
     $socket = $this->getResource();
     $reader = $this->reader;
     while (PHPIREDIS_READER_STATE_INCOMPLETE === ($state = phpiredis_reader_get_state($reader))) {
         $buffer = stream_socket_recvfrom($socket, 4096);
         if ($buffer === false || $buffer === '') {
             $this->onConnectionError('Error while reading bytes from the server');
         }
         phpiredis_reader_feed($reader, $buffer);
     }
     if ($state === PHPIREDIS_READER_STATE_COMPLETE) {
         return phpiredis_reader_get_reply($reader);
     } else {
         $this->onProtocolError(phpiredis_reader_get_error($reader));
     }
 }
 /**
  * {@inheritdoc}
  */
 public function read()
 {
     $buffer = stream_socket_recvfrom($this->getResource(), 4096);
     if ($buffer === false || $buffer === '') {
         return $this->onError(new ConnectionException($this, 'Error while reading bytes from the server'));
     }
     phpiredis_reader_feed($reader = $this->reader, $buffer);
     while (phpiredis_reader_get_state($reader) === PHPIREDIS_READER_STATE_COMPLETE) {
         $this->state->process(phpiredis_reader_get_reply($reader));
     }
 }