public function write()

in src/Apache/Ignite/Data/BinaryObject.php [326:362]


    public function write(BinaryCommunicator $communicator, MessageBuffer $buffer): void
    {
        if ($this->buffer && !$this->modified) {
            $buffer->writeBuffer($this->buffer, $this->startPos, $this->length);
        } else {
            $this->typeBuilder->finalize($communicator);
            $this->startPos = $buffer->getPosition();
            $buffer->setPosition($this->startPos + BinaryObject::HEADER_LENGTH);
            $this->hasSchema = count($this->fields) > 0;
            if ($this->hasSchema) {
                // write fields
                $field = null;
                foreach ($this->fields as $field) {
                    $field->writeValue($communicator, $buffer, ($this->typeBuilder->getField($field->getId()))->getTypeCode());
                }
                $this->schemaOffset = $buffer->getPosition() - $this->startPos;
                $this->offsetType = $field->getOffsetType($this->startPos);
                // write schema
                foreach ($this->fields as $field) {
                    $field->writeOffset($buffer, $this->startPos, $this->offsetType);
                }
            } else {
                $this->schemaOffset = 0;
            }
            $this->length = $buffer->getPosition() - $this->startPos;
            $this->buffer = $buffer;
            // write header
            $this->writeHeader();
            $this->buffer->setPosition($this->startPos + $this->length);
            $this->modified = false;
        }

        if (Logger::isDebug()) {
            Logger::logDebug('BinaryObject::write');
            Logger::logBuffer($this->buffer, $this->startPos, $this->length);
        }
    }