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

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/protocol/bit_vector.rb

Visão geral

Esta classe faz parte de uma API privada. Evite usar essa classe, se possível, pois ela pode ser removida ou alterada no futuro.

Classe usada para definir um bitvector para uma mensagem de protocolo de fio MongoDB.

Define a estratégia de serialização na inicialização.

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(layout) ➤ BitVector

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Inicializa um BitVector com um layout

Parâmetros:

  • layout (Array <Símbolo>)

    a array de campos no vetor de bits



31
32
33
34
35
36
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/bit_vector.rb', linha 31

def inicializar(layout)
  @masks = {}
  layout.cada_com_index fazer |Campo, index|
    @masks[Campo] = 2**index se Campo
  end
end

Detalhes do método de instância

#deserializar(buffer, opções = {}) ➤ Array <Símbolo>

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Deserializa o vetor decodificando o símbolo de acordo com sua máscara

Parâmetros:

  • buffer (string)

    Buffer contendo o vetor a ser desserializado.

  • opções (Hash) (padrão para: {})

    Atualmente, este método não aceita nenhuma opção.

Retorna:

  • (Array <Símbolo>)

    Sinalizadores contidos no vetor



58
59
60
61
62
63
64
65
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/bit_vector.rb', linha 58

def desserializar(buffer, opções = {})
  vetor = buffer.get_int32
  flags = []
  @masks.cada fazer |flag, máscara|
    flags << flag se máscara & vetor != 0
  end
  flags
end

#serialize(buffer, valor, validate_keys = nil) ➤ string

Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.

Serializa o vetor codificando cada símbolo de acordo com sua máscara

Parâmetros:

  • buffer (string)

    Buffer para receber o vetor serializado

  • valor (Array <Símbolo>)

    Array de sinalizadores para codificar

  • validate_keys (verdadeiro, falso) (padrão para: nil)

    Se as chaves devem ser validadas ao serializar. Esta opção é preterida e não será utilizada. Ele será removido na versão 3.0.

Retorna:

  • (string)

    Buffer que recebeu o vetor serializado



46
47
48
49
50
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/bit_vector.rb', linha 46

def serializar(buffer, valor, validate_keys = nada)
  bits = 0
  valor.cada { |flag| bits |= (@masks[flag] || 0) }
  buffer.put_int32(bits)
end