PhpOrient\Protocols\Binary\Transaction\TxCommit::attach PHP Method

attach() public method

public attach ( Operation $operation )
$operation PhpOrient\Protocols\Binary\Abstracts\Operation
    public function attach(Operation $operation)
    {
        if ($operation instanceof RecordUpdate) {
            $operationPayload = [['_writeByte', 1], ['_writeShort', $operation->cluster_id], ['_writeLong', (string) $operation->cluster_position], ['_writeChar', $operation->record_type], ['_writeInt', $operation->record_version], ['_writeString', CSV::serialize($operation->record)]];
            if ($this->_transport->getProtocolVersion() >= 23) {
                $operationPayload[] = ['_writeBoolean', $operation->update_content];
            }
            $this->_operation_stack[] = $operationPayload;
            $this->_pre_operation_records[$operation->record->getRid()->__toString()] = $operation;
        } elseif ($operation instanceof RecordDelete) {
            $this->_operation_stack[] = [['_writeByte', 2], ['_writeShort', $operation->cluster_id], ['_writeLong', (string) $operation->cluster_position], ['_writeChar', $operation->record_type], ['_writeInt', $operation->record_version]];
        } elseif ($operation instanceof RecordCreate) {
            $this->_operation_stack[] = [['_writeByte', 3], ['_writeShort', -1], ['_writeLong', (string) $this->_temp_cluster_position_seq], ['_writeChar', $operation->record_type], ['_writeString', CSV::serialize($operation->record)]];
            $this->_pre_operation_records[(new ID(-1, $this->_temp_cluster_position_seq))->__toString()] = $operation;
            $this->_temp_cluster_position_seq--;
        } else {
            throw new PhpOrientBadMethodCallException("Wrong command type " . get_class($operation));
        }
        return $this;
    }