Class: Mongo::Protocol::Serializers::BitVector Private

Hereda:
Objeto
  • Objeto
Mostrar todo
Definido en:
lib/mongo/protocolo/bit_vector.rb

Overview

Esta clase forma parte de una API privada. Evita usar esta clase si es posible, ya que puede ser eliminada o modificada en el futuro.

Clase utilizada para definir un vector de bits para un mensaje del protocolo de conexión de MongoDB.

Define la estrategia de serialización al iniciar.

Resumen del método de instancia colapsar

Detalles del Constructor

#inicializar(diseño) ⇒ BitVector

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.

Inicializa un BitVector con una disposición

Parámetros:

  • diseño (arreglo<Symbol>)

    el arreglo de campos en el vector de bits



29
30
31
32
33
34
# Archivo 'lib/mongo/protocol/bit_vector.rb', línea 29

def inicializar(diseño)
  @masks = {}
  diseño.each_with_index hacer |Campo, index|
    @masks[Campo] = 2**index si Campo
  end
end

Detalles del método de instancia

#deserializar(buffer, _options = {}) ⇒ arreglo<Símbolo>

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 el vector decodificando el símbolo según su máscara

Parámetros:

  • buffer (string)

    Búfer que contiene el vector que se va a deserializar.

  • opciones (encriptada)

    Este método actualmente no acepta ninguna opción.

Devuelve:

  • (arreglo<Symbol>)

    Banderas contenidas en el vector



56
57
58
59
60
61
62
63
# Archivo 'lib/mongo/protocol/bit_vector.rb', línea 56

def deserializar(buffer, _opciones = {})
  vector = buffer.get_int32
  flags = []
  @masks.cada hacer |flag, mask|
    flags << flag si mask & vector != 0
  end
  flags
end

#serializar(buffer, value, _validating_keys = nil) ⇒ String

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 el vector codificando cada símbolo según su máscara

Parámetros:

  • buffer (string)

    Buffer para recibir el vector serializado

  • Valor (arreglo<Symbol>)

    Arreglo de Banderas para la Codificación

  • validating_keys (true, false)

    Si las claves deben validarse al serializar. Esta opción está obsoleta y no se utilizará. Será eliminado en la versión 3.0.

Devuelve:

  • (string)

    Buffer que recibió el vector serializado



44
45
46
47
48
# Archivo 'lib/mongo/protocol/bit_vector.rb', línea 44

def serializar(buffer, Valor, _validating_keys = nulo)
  bits = 0
  Valor.cada { |flag| bits |= @masks[flag] || 0 }
  buffer.put_int32(bits)
end