Módulo: Mongo::Protocol::Serializers::Sections::PayloadOne Private

Definido em:
lib/mongo/protocol/serializers.rb

Visão geral

Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.

Estratégia de serialização do protocolo de conexão do MongoDB para uma seção do tipo carga útil 1 de OP_MSG.

Desde:

  • 2.5.0

Colapsode resumo constante

TYPE =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

O identificador de bytes para este tipo de carga útil.

Desde:

  • 2.5.0

0x1
TYPE_BYTE =

Essa constante faz parte de uma API privada. Você deve evitar usar essa constante, se possível, pois ela pode ser removida ou alterada no futuro.

O byte correspondente a este tipo de carga útil.

Desde:

  • 2.5.0

Tipo.chr.force_encoding(BSON::Binário).congelar

Recolhimento do Resumo do método de classe

Detalhes do método de classe

.desserializar(buffer) ➤ Array<BSON::Document>

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Deserializa uma seção do tipo de carga útil 1 de um OP_MSG do fluxo IO.

Parâmetros:

  • buffer (BSON::ByteBuffer)

    Buffer contendo as seções.

Retorna:

  • (Array<BSON::Document>)

    Seção desserializada.

Aumenta:

  • (NotImplementedError)

Desde:

  • 2.5.0



324
325
326
327
328
329
330
331
332
333
334
# Arquivo 'lib/mongo/protocol/serializers.rb', linha 324

def auto.desserializar(buffer)
  aumentar NotImplementedError

  start_size = buffer.Tamanho
  section_size = buffer.get_int32 # obter o tamanho
  end_size = start_size - section_size
  buffer.get_cstring # obter o identificador
  documentos = []
  documentos << BSON::Documento.from_bson(buffer) até que buffer.Tamanho == end_size
  documentos
end

.serializar(buffer, valor, max_bson_size = nil, _validating_keys = nil) ➤ BSON::ByteBuffer

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Serializa uma seção de um OP_MSG, tipo de carga útil 1.

Parâmetros:

  • buffer (BSON::ByteBuffer)

    Buffer para receber as seções serializadas.

  • valor (BSON::Document, Hash)

    O objeto a ser serializado.

  • max_bson_size (Fixnum) (padrão para: nil)

    O tamanho máximo de BSON dos documentos na seção.

  • validate_keys (verdadeiro, falso)

    Se deve validar as chaves do documento . Esta opção é preterida e não será utilizada. Ele será removido na versão 3.0.

Retorna:

  • (BSON::ByteBuffer)

    Buffer com valor serializado.

Desde:

  • 2.5.0



306
307
308
309
310
311
312
313
314
315
# Arquivo 'lib/mongo/protocol/serializers.rb', linha 306

def auto.serializar(buffer, valor, max_bson_size = nada, _validating_keys = nada)
  buffer.put_byte(TYPE_BYTE)
  iniciar = buffer.Tamanho
  buffer.put_int32(0) # espera pelo tamanho
  buffer.put_cstring(valor[:identifier])
  valor[:sequence].cada fazer |documento|
    Documento.serializar(buffer, documento, max_bson_size)
  end
  buffer.replace_int32(iniciar, buffer.Tamanho - iniciar)
end