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

Definido en:
lib/mongo/protocolo/serializadores.rb

Overview

Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Estrategia de serialización del protocolo de cable MongoDB para una sección de carga útil tipo 1 de OP_MSG.

Desde:

  • 2.5.0

Colapso delresumen constante

TIPO =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El identificador de byte para este tipo de carga útil.

Desde:

  • 2.5.0

0 x 1
TIPO_BYTE =

Esta constante forma parte de una API privada. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

El byte correspondiente a este tipo de carga útil.

Desde:

  • 2.5.0

TIPO.chr.codificación forzada(BSON::BINARIO).freeze

Colapso delresumen del método de clase

Detalles del método de clase

.deserializar(buffer) ⇒ Array<BSON::Document>

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Deserializa una sección del tipo de carga útil 1 de un OP_MSG de la secuencia IO.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Buffer que contiene las secciones.

Devuelve:

  • (Matriz<BSON::Document>)

    Sección deserializada.

Aumentos:

  • (NotImplementedError)

Desde:

  • 2.5.0



337
338
339
340
341
342
343
344
345
346
347
348
349
# Archivo 'lib/mongo/protocol/serializers.rb', línea 337

def yo.deserializar(buffer)
  propagar NotImplementedError

  tamaño inicial = buffer.longitud
  tamaño de sección = buffer.get_int32 # obtener el tamaño
  tamaño final = tamaño inicial - tamaño de sección
  buffer.obtener_cstring # obtener el identificador
  Documentos = []
  hasta buffer.longitud == tamaño final
    Documentos << BSON::Documento.de_bson(buffer)
  end
  Documentos
end

.serializar(buffer, valor, tamaño_máximo_bson = nulo, claves_de_validación = nulo) ⇒ BSON::ByteBuffer

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Serializa una sección de un OP_MSG, tipo de carga útil 1.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Buffer para recibir las Secciones serializadas.

  • valor (BSON::Documento, Hash)

    El objeto a serializar.

  • tamaño máximo de bson (Fixnum) (predeterminado: nulo)

    El tamaño máximo de bson de los documentos en la sección.

  • validando_claves (verdadero,falso) (predeterminado: nulo)

    Si se validan las claves del documento. Esta opción está obsoleta y no se utilizará. Se eliminará en la versión 3.0.

Devuelve:

  • (BSON::ByteBuffer)

    Buffer con valor serializado.

Desde:

  • 2.5.0



319
320
321
322
323
324
325
326
327
328
# Archivo 'lib/mongo/protocol/serializers.rb', línea 319

def yo.fabricar en serie(buffer, valor, tamaño máximo de bson = nulo, validando_claves = nulo)
  buffer.put_byte(TIPO_BYTE)
  Inicio = buffer.longitud
  buffer.put_int32(0) # mantener pulsado para el tamaño
  buffer.poner_cstring(valor[:identifier])
  valor[:secuencia].cada hacer |Documento|
    Documento.fabricar en serie(buffer, Documento, tamaño máximo de bson)
  end
  buffer.reemplazar_int32(Inicio, buffer.longitud - Inicio)
end