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

Definido en:
lib/mongo/protocol/serializers.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

Resumen del método de clase colapsar

Detalles del método de clase

.deserializar(buffer) ⇒ arreglo<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 del flujo de IO.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Búfer que contiene las secciones.

Devuelve:

  • (arreglo<BSON::Document>)

    Sección deserializada.

Aumenta:

  • (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 sí mismo.deserializar(buffer)
  propagar NotImplementedError

  tamaño inicial = buffer.longitud
  section_size = buffer.get_int32 # Obtener el tamaño
  end_size = tamaño inicial - section_size
  buffer.obtener_cstring # obtener el identificador
  Documentos = []
  hasta buffer.longitud == end_size
    Documentos << BSON::Documento.from_bson(buffer)
  end
  Documentos
end

.serializar(buffer, value, max_bson_size = nil, validating_keys = nil) ⇒ 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 contenido 1.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Búfer 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 bson de los documentos en la sección.

  • validating_keys (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)

    Búfer 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 sí mismo.serializar(buffer, Valor, tamaño máximo de bson = nulo, validating_keys = nulo)
  buffer.put_byte(TIPO_BYTE)
  Inicio = buffer.longitud
  buffer.put_int32(0) # aguantar para el tamaño
  buffer.poner_cstring(Valor[:identifier])
  Valor[secuencia:].cada hacer |Documento|
    Documento.serializar(buffer, Documento, tamaño máximo de bson)
  end
  buffer.reemplazar_int32(Inicio, buffer.longitud - Inicio)
end