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

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 OP_MSG.

Serializa y deserializa una lista de secciones.

Desde:

  • 2.5.0

Definido en el espacio de nombres

Modules: Carga útil uno, cargaútil cero

Colapso delresumen del método de clase

Detalles del método de clase

.deserializar(buffer,opciones = {}) ⇒ 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 de un OP_MSG de la secuencia IO.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Buffer que contiene las secciones.

  • opciones (Hash) (predeterminado: {})

Opciones Hash(opciones):

  • :deserializar_como_bson (Booleano)

    Si se debe realizar la deserialización de secciones utilizando tipos BSON en lugar de tipos nativos de Ruby siempre que sea posible.

Devuelve:

  • (Matriz<BSON::Document>)

    Secciones deserializadas.

Desde:

  • 2.5.0



219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# Archivo 'lib/mongo/protocol/serializers.rb', línea 219

def yo.deserializar(buffer, opciones = {})
  longitud final = (@flag_bits Y Msg::FLAGS.index(:suma de comprobación_presente)) == 1 ? 32 : 0
  secciones = []
  hasta buffer.longitud == longitud final
    caso byte = buffer.obtener_byte
    Cuando Carga útil cero::TIPO_BYTE
      secciones << Carga útil cero.deserializar(buffer, opciones)
    Cuando Carga útil uno::TIPO_BYTE
      secciones += Carga útil uno.deserializar(buffer, opciones)
    else
      propagar Error::Tipo de carga útil desconocido.Nuevo(byte)
    end
  end
  secciones
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 las secciones de un OP_MSG, tipo de carga útil 0 o 1.

Parámetros:

  • buffer (BSON::ByteBuffer)

    Buffer para recibir las Secciones serializadas.

  • valor (Matriz<Hash, BSON::Documento>)

    Las secciones que serán serializadas.

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

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

  • 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



192
193
194
195
196
197
198
199
200
201
202
203
204
205
# Archivo 'lib/mongo/protocol/serializers.rb', línea 192

def yo.fabricar en serie(buffer, valor, tamaño máximo de bson = nulo, validando_claves = nulo)
  valor.cada hacer |sección|
    caso sección[:tipo]
    Cuando Carga útil cero::TIPO
      Carga útil cero.fabricar en serie(buffer, sección[:carga útil], tamaño máximo de bson)
    Cuando nulo
      Carga útil cero.fabricar en serie(buffer, sección[:carga útil], tamaño máximo de bson)
    Cuando Carga útil uno::TIPO
      Carga útil uno.fabricar en serie(buffer, sección[:carga útil], tamaño máximo de bson)
    else
      propagar Error::Tipo de carga útil desconocido.Nuevo(sección[:tipo])
    end
  end
end

.tamaño_limitado?verdadero

Este método forma parte de una API privada. Debe evitarlo 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:

  • (verdadero) -

    Los documentos pueden tener un tamaño limitado al momento de la serialización.

Desde:

  • 2.5.0



240
241
242
# Archivo 'lib/mongo/protocol/serializers.rb', línea 240

def yo.¿size_limited?
  true
end