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. Debe evitar usarla siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.

Clase utilizada para definir un vector de bits para un mensaje de protocolo de cable MongoDB.

Define la estrategia de serialización durante la inicialización.

Colapso del resumen del método de instancia

Detalles del constructor

#inicializar(diseño) ⇒ BitVector

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Inicializa un BitVector con un diseño

Parámetros:

  • disposición (arreglo<Symbol>)

    la matriz de campos en el vector de bits



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

def inicializar(disposición)
  @masks = {}
  disposición.cada_con_índice hacer |Campo, index|
    @masks[Campo] = 2**index Si Campo
  end
end

Detalles del método de instancia

#deserializar(buffer, opciones = {}) ⇒ Array<Símbolo>

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

Parámetros:

  • buffer (Cadena) -

    Búfer que contiene el vector a deserializar.

  • opciones (Hash) (predeterminado: {})

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

Devuelve:

  • (arreglo<Symbol>)

    Banderas contenidas en el vector



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

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

#serializar(buffer, valor, claves_de_validación = nulo) ⇒ Cadena

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

Parámetros:

  • buffer (Cadena) -

    Buffer para recibir el vector serializado

  • valor (arreglo<Symbol>)

    Matriz de banderas para codificar

  • validando_claves (verdadero,falso) (predeterminado: nulo)

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

Devuelve:

  • (Cadena) -

    Buffer que recibió el vector serializado



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

def fabricar en serie(buffer, valor, validando_claves = nulo)
  los bits = 0
  valor.cada { |flag| los bits |= (@masks[flag] || 0) }
  buffer.put_int32(los bits)
end