PayloadOne — Documentation by YARD 0.9.37 (original) (raw)

Module: Mongo::Protocol::Serializers::Sections::PayloadOnePrivate

Defined in:

lib/mongo/protocol/serializers.rb

Overview

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

MongoDB wire protocol serialization strategy for a payload 1 type Section of OP_MSG.

Constant Summarycollapse

TYPE =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

The byte identifier for this payload type.

0x1

TYPE_BYTE =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

The byte corresponding to this payload type.

TYPE.chr.force_encoding(BSON::BINARY).freeze

Class Method Summarycollapse

Class Method Details

.deserialize(buffer) ⇒ ArrayBSON::Document

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Deserializes a section of payload type 1 of an OP_MSG from the IO stream.

337 338 339 340 341 342 343 344 345 346 347 348 349 # File 'lib/mongo/protocol/serializers.rb', line 337 def self.deserialize(buffer) raise NotImplementedError start_size = buffer.length section_size = buffer.get_int32 end_size = start_size - section_size buffer.get_cstring documents = [] until buffer.length == end_size documents << BSON::Document.from_bson(buffer) end documents end

.serialize(buffer, value, max_bson_size = nil, validating_keys = nil) ⇒ BSON::ByteBuffer

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Serializes a section of an OP_MSG, payload type 1.

| 319 320 321 322 323 324 325 326 327 328 | # File 'lib/mongo/protocol/serializers.rb', line 319 def self.serialize(buffer, value, max_bson_size = nil, validating_keys = nil) buffer.put_byte(TYPE_BYTE) start = buffer.length buffer.put_int32(0) buffer.put_cstring(value[:identifier]) value[:sequence].each do |document| Document.serialize(buffer, document, max_bson_size) end buffer.replace_int32(start, buffer.length - start) end | | --------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |