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

Definido em:
build/ruby-driver-v2.19/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



337
338
339
340
341
342
343
344
345
346
347
348
349
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/serializers.rb', linha 337

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 = []
  até que buffer.Tamanho == end_size
    documentos << BSON::Documento.from_bson(buffer)
  end
  documentos
end

.serializar(buffer, valor, max_bson_size = nil, validate_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) (padrão para: nil)

    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



319
320
321
322
323
324
325
326
327
328
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/serializers.rb', linha 319

def auto.serializar(buffer, valor, max_bson_size = nada, validate_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