/** * {@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)); } }
/** * {@inheritdoc} */ public function executeCommand(ICommand $command) { $resource = $this->_resource; $commandId = $this->getCommandId($command); if ($arguments = $command->getArguments()) { $arguments = implode('/', array_map('urlencode', $arguments)); $serializedCommand = "{$commandId}/{$arguments}.raw"; } else { $serializedCommand = "{$commandId}.raw"; } curl_setopt($resource, CURLOPT_POSTFIELDS, $serializedCommand); if (curl_exec($resource) === false) { $error = curl_error($resource); $errno = curl_errno($resource); throw new ConnectionException($this, trim($error), $errno); } $readerState = phpiredis_reader_get_state($this->_reader); if ($readerState === PHPIREDIS_READER_STATE_COMPLETE) { $reply = phpiredis_reader_get_reply($this->_reader); if ($reply instanceof IReplyObject) { return $reply; } return $command->parseResponse($reply); } else { $error = phpiredis_reader_get_error($this->_reader); throw new ProtocolException($this, $error); } }
/** * {@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 executeCommand(CommandInterface $command) { $resource = $this->resource; $commandId = $this->getCommandId($command); if ($arguments = $command->getArguments()) { $arguments = implode('/', array_map('urlencode', $arguments)); $serializedCommand = "{$commandId}/{$arguments}.raw"; } else { $serializedCommand = "{$commandId}.raw"; } curl_setopt($resource, CURLOPT_POSTFIELDS, $serializedCommand); if (curl_exec($resource) === false) { $error = curl_error($resource); $errno = curl_errno($resource); throw new ConnectionException($this, trim($error), $errno); } if (phpiredis_reader_get_state($this->reader) !== PHPIREDIS_READER_STATE_COMPLETE) { throw new ProtocolException($this, phpiredis_reader_get_error($this->reader)); } return phpiredis_reader_get_reply($this->reader); }
/** * {@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)); } }