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

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

Serializa y deserializa una lista de Secciones.

Desde:

  • 2.5.0

Definido bajo Namespace

Modules: Carga útil uno, cargaútil cero

Resumen del método de clase colapsar

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)

    Búfer que contiene las secciones.

  • opciones (Hash) (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



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 sí mismo.deserializar(buffer, opciones = {})
  longitud final = (@flag_bits Y Msg::FLAGS.index(¿Valor de 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, 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 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 (Matriz<Hash, BSON::Documento>)

    Las secciones que se van a serializar.

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

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

  • 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



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

def sí mismo.serializar(buffer, Valor, tamaño máximo de bson = nulo, validating_keys = nulo)
  Valor.cada hacer |sección|
    caso sección[Tipo]
    Cuando Carga útil cero::Tipo
      Carga útil cero.serializar(buffer, sección[:payload], tamaño máximo de bson)
    Cuando nulo
      Carga útil cero.serializar(buffer, sección[:payload], tamaño máximo de bson)
    Cuando Carga útil uno::Tipo
      Carga útil uno.serializar(buffer, sección[:payload], tamaño máximo de bson)
    else
      propagar Error::Tipo de carga útil desconocido.Nuevo(sección[Tipo])
    end
  end
end

.size_limited?true

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:

  • (cierto)

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

Desde:

  • 2.5.0



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

def sí mismo.¿size_limited?
  true
end