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

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

Overview

Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado en el futuro.

Estrategia de serialización del protocolo de conexión de MongoDB para una sección de OP_MSG.

Serializa y deserializa una lista de Secciones.

Desde:

  • 2.5.0

Definido bajo Namespace

Modules: PayloadOne, PayloadZero

Resumen del método de clase colapsar

Detalles del método de clase

.deserialize(buffer, options = {}) ⇒ arreglo<BSON::Document>

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Deserializa una sección de un OP_MSG del flujo IO.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Búfer que contiene las secciones.

  • opciones (encriptada) (por defecto a: {})

Opciones Hash (options):

  • :deserialize_as_bson (booleano)

    Si realizar la deserialización de la sección utilizando BSON types en lugar de tipos nativos de Ruby siempre que sea posible.

Devuelve:

  • (arreglo<BSON::Document>)

    Secciones deserializadas.

Desde:

  • 2.5.0



208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
# Archivo 'lib/mongo/protocolo/serializers.rb', línea 208

def sí mismo.deserializar(buffer, opciones = {})
  end_length = ((@flag_bits & Msg::FLAGS.index(¿Valor de suma de comprobación presente?)) == 1) ? 32 : 0
  Secciones = []
  hasta buffer.longitud == end_length
    caso byte = buffer.obtener_byte
    cuando PayloadZero::BYTE_TIPO
      Secciones << PayloadZero.deserializar(buffer, opciones)
    cuando PayloadOne::BYTE_TIPO
      Secciones += PayloadOne.deserializar(buffer, opciones)
    else
      propagar Error::UnknownPayloadType.Nuevo(byte)
    end
  end
  Secciones
end

.serializar(buffer, value, max_bson_size = nil, _validating_keys = nil) ⇒ BSON::ByteBuffer

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Serializa las secciones de un OP_MSG, tipo de carga útil 0 o 1.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Búfer para recibir las Secciones serializadas.

  • Valor (Array<Hash, BSON::Document>)

    Las secciones que se van a serializar.

  • tamaño_máximo_bson (Fixnum) (valor por defecto: nil)

    El tamaño máximo de bson de documentos en las secciones.

  • validating_keys (true, false)

    Si se deben validar las claves de documento. Esta opción está obsoleta y no se utilizará. Será eliminado en la versión 3.0.

Devuelve:

  • (BSON::ByteBuffer)

    Búfer con valor serializado.

Desde:

  • 2.5.0



181
182
183
184
185
186
187
188
189
190
191
192
193
194
# Archivo 'lib/mongo/protocolo/serializers.rb', línea 181

def sí mismo.serializar(buffer, Valor, tamaño_máximo_bson = nulo, _validating_keys = nulo)
  Valor.cada hacer |sección|
    caso sección[Tipo]
    cuando PayloadZero::Tipo
      PayloadZero.serializar(buffer, sección[:payload], tamaño_máximo_bson)
    cuando nulo
      PayloadZero.serializar(buffer, sección[:payload], tamaño_máximo_bson)
    cuando PayloadOne::Tipo
      PayloadOne.serializar(buffer, sección[:payload], tamaño_máximo_bson)
    else
      propagar Error::UnknownPayloadType.Nuevo(sección[Tipo])
    end
  end
end

.size_limited?true

Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.

Si puede haber un límite de tamaño en este tipo después de la serialización.

Devuelve:

  • (cierto)

    Los documentos pueden tener un tamaño limitado durante la serialización.

Desde:

  • 2.5.0



229
230
231
# Archivo 'lib/mongo/protocolo/serializers.rb', línea 229

def sí mismo.¿size_limited?
  true
end