Skip to content

PhpOrient Protocols Binary Operations Command

Domenico Lupinetti edited this page Jan 1, 2015 · 4 revisions

PhpOrient\Protocols\Binary\Operations\Command

COMMAND_OP

Executes remote commands:


Request:
    - (mode:byte)(class-name:string)(command-payload-length:int)(command-payload)

Response:
    - synchronous commands:  [(sync-result-type:byte)[(sync-result-content:?)]]+
    - asynchronous commands: [(async-result-type:byte)[(async-result-content:?)]*](pre-fetched-record-size.md)[(pre-fetched-record)]*+

Where the request:

  • mode can be 'a' for asynchronous mode and 's' for synchronous mode
  • class-name is the class name of the command implementation. There are short form for the most common commands:
    • 'q' ) stands for query as idempotent command. It's like passing com.orientechnologies.orient.core.sql.query.OSQLSynchQuery
    • 'c' ) stands for command as non-idempotent command (insert, update, etc). It's like passing com.orientechnologies.orient.core.sql.OCommandSQL
    • 's' ) stands for script. It's like passing com.orientechnologies.orient.core.command.script.OCommandScript . Script commands by using any supported server-side scripting like Javascript command. Since v1.0.
    • 'any other values' ) is the class name. The command will be created via reflection using the default constructor and invoking the fromStream() method against it
  • command-payload is the command's serialized payload (see Network-Binary-Protocol-Commands)

Response is different for synchronous and asynchronous request:

  • synchronous:
  • sync-result-type can be:
    • 'n', means null result
    • 'r', means single record returned
    • 'l', collection of records. The format is:
      • an integer to indicate the collection size
      • all the records one by one
    • 'a', serialized result, a byte[] is sent
  • sync-result-content, can only be a record
  • pre-fetched-record-size, as the number of pre-fetched records not directly part of the result set but joined to it by fetching
  • pre-fetched-record as the pre-fetched record content
  • asynchronous:
  • async-result-type can be:
    • 0: no records remain to be fetched
    • 1: a record is returned as a resultset
    • 2: a record is returned as pre-fetched to be loaded in client's cache only. It's not part of the result set but the client knows that it's available for later access
  • async-result-content, can only be a record

Properties

$opCode

    protected integer $opCode
  • Visibility: protected

$_mod_byte

    protected string $_mod_byte = 's'
  • Visibility: protected

$command

    public string $command = \PhpOrient\Protocols\Common\Constants::QUERY_SYNC
  • Visibility: public

$query

    public string $query = ''
  • Visibility: public

$limit

    public integer $limit = 20
  • Visibility: public

$fetch_plan

    public string $fetch_plan = '*:0'
  • Visibility: public

$_socket

    protected \PhpOrient\Protocols\Binary\OrientSocket $_socket
  • Visibility: protected

$_writeStack

    protected array $_writeStack = array()

Stack of elements to compile

  • Visibility: protected

$_input_buffer

    protected string $_input_buffer
  • Visibility: protected

$_output_buffer

    protected string $_output_buffer
  • Visibility: protected

$_transport

    protected \PhpOrient\Protocols\Binary\SocketTransport $_transport
  • Visibility: protected

$_callback

    public \Closure $_callback
  • Visibility: public

Methods

_write

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_write()
Write the data to the socket.

_read

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_read()
Read the response from the socket.

_checkConditions

    null|void PhpOrient\Protocols\Binary\Abstracts\Operation::_checkConditions(\PhpOrient\Protocols\Binary\SocketTransport $transport)
Arguments

__construct

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::__construct(\PhpOrient\Protocols\Binary\SocketTransport $_transport)
Class constructor
Arguments

_writeHeader

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeHeader()
Write the request header.

_readHeader

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_readHeader()
Read the response header.

prepare

    \PhpOrient\Protocols\Binary\Abstracts\Operation PhpOrient\Protocols\Binary\Abstracts\Operation::prepare()
Build the operation payload

send

    \PhpOrient\Protocols\Binary\Abstracts\Operation PhpOrient\Protocols\Binary\Abstracts\Operation::send()
Send message to orient server

_dump_streams

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_dump_streams()
Log of input/output stream

getResponse

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::getResponse()
Get Response from Server

_writeByte

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeByte(integer $value)
Write a byte to the socket.
Arguments
  • $value integer

_readByte

    integer PhpOrient\Protocols\Binary\Abstracts\Operation::_readByte()
Read a byte from the socket.

_writeChar

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeChar(string $value)
Write a character to the socket.
Arguments
  • $value string

_readChar

    integer PhpOrient\Protocols\Binary\Abstracts\Operation::_readChar()
Read a character from the socket.

_writeBoolean

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeBoolean(boolean $value)
Write a boolean to the socket.
Arguments
  • $value boolean

_readBoolean

    boolean PhpOrient\Protocols\Binary\Abstracts\Operation::_readBoolean()
Read a boolean from the socket.

_writeShort

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeShort(integer $value)
Write a short to the socket.
Arguments
  • $value integer

_readShort

    integer PhpOrient\Protocols\Binary\Abstracts\Operation::_readShort()
Read a short from the socket.

_writeInt

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeInt(integer $value)
Write an integer to the socket.
Arguments
  • $value integer

_readInt

    integer PhpOrient\Protocols\Binary\Abstracts\Operation::_readInt()
Read an integer from the socket.

_writeLong

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeLong(integer $value)
Write a long to the socket.
Arguments
  • $value integer

_readLong

    integer PhpOrient\Protocols\Binary\Abstracts\Operation::_readLong()
Read a long from the socket.

_writeString

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeString(string $value)
Write a string to the socket.
Arguments
  • $value string

_readString

    string|null PhpOrient\Protocols\Binary\Abstracts\Operation::_readString()
Read a string from the socket.

_writeBytes

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_writeBytes(string $value)
Write bytes to the socket.
Arguments
  • $value string

_readBytes

    string|null PhpOrient\Protocols\Binary\Abstracts\Operation::_readBytes()
Read bytes from the socket.

_readError

    \PhpOrient\Exceptions\PhpOrientException PhpOrient\Protocols\Binary\Abstracts\Operation::_readError()
Read an error from the remote server and turn it into an exception.

_readSerialized

    mixed PhpOrient\Protocols\Binary\Abstracts\Operation::_readSerialized()
Read a serialized object from the remote server.

_readRecord

    array PhpOrient\Protocols\Binary\Abstracts\Operation::_readRecord()
The format depends if a RID is passed or an entire

record with its content.

In case of null record then -2 as short is passed.

In case of RID -3 is passes as short and then the RID: (-3:short)(cluster-id:short)(cluster-position:long).

In case of record: (0:short)(record-type:byte)(cluster-id:short) (cluster-position:long)(record-version:int)(record-content:bytes)

_read_prefetch_record

    array<mixed,\PhpOrient\Protocols\Binary\Data\Record> PhpOrient\Protocols\Binary\Abstracts\Operation::_read_prefetch_record()
Read pre-fetched and async Records

_read_sync

    array|null PhpOrient\Protocols\Binary\Abstracts\Operation::_read_sync()
Read sync command payloads

configure

    \PhpOrient\Protocols\Common\ConfigurableInterface PhpOrient\Protocols\Common\ConfigurableInterface::configure(array $options)
Configure the object.
Arguments
  • $options array

    The options for the object.

fromConfig

    static PhpOrient\Protocols\Binary\Abstracts\Operation::fromConfig(array $options)
Return a new class instance configured from the given options.
Arguments
  • $options array

    The options for the newly created class instance.

Clone this wiki locally