Module: Mongo::Protocol::Serializers::Sections::PayloadZero Private

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 0 type Section of OP_MSG.

Since:

  • 2.5.0

Constant Summary collapse

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.

Since:

  • 2.5.0

0x0
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.

Since:

  • 2.5.0

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

Class Method Summary collapse

Class Method Details

.deserialize(buffer, options = {}) ⇒ Array<BSON::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 0 of an OP_MSG from the IO stream.

Parameters:

  • buffer (BSON::ByteBuffer)

    Buffer containing the sections.

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :deserialize_as_bson (Boolean)

    Whether to perform section deserialization using BSON types instead of native Ruby types wherever possible.

Returns:

  • (Array<BSON::Document>)

    Deserialized section.

Since:

  • 2.5.0



287
288
289
290
# File 'lib/mongo/protocol/serializers.rb', line 287

def self.deserialize(buffer, options = {})
  mode = options[:deserialize_as_bson] ? :bson : nil
  BSON::Document.from_bson(buffer, **{ mode: mode })
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 0.

Parameters:

  • buffer (BSON::ByteBuffer)

    Buffer to receive the serialized Sections.

  • value (BSON::Document, Hash)

    The object to serialize.

  • max_bson_size (Fixnum) (defaults to: nil)

    The max bson size of documents in the section.

  • validating_keys (true, false) (defaults to: nil)

    Whether to validate document keys. This option is deprecated and will not be used. It will removed in version 3.0.

Returns:

  • (BSON::ByteBuffer)

    Buffer with serialized value.

Since:

  • 2.5.0



270
271
272
273
# File 'lib/mongo/protocol/serializers.rb', line 270

def self.serialize(buffer, value, max_bson_size = nil, validating_keys = nil)
  buffer.put_byte(TYPE_BYTE)
  Serializers::Document.serialize(buffer, value, max_bson_size)
end