Class: Mongo::Protocol::Serializers::BitVector Private
- Herda:
-
Objeto
- Objeto
- Mongo::Protocol::Serializers::BitVector
- Definido em:
- 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
-
#deserialize(buffer, _options = {}) ➤ Array<Symbol>
privado
Deserializa o vetor decodificando o símbolo de acordo com sua máscara.
-
#initialize(layout) ➤ BitVector
construtor
privado
Inicializa um BitVector com um layout.
-
#serialize(buffer, valor, _validating_keys = nil) ➤ String
privado
Serializa o vetor codificando cada símbolo de acordo com sua máscara.
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
29 30 31 32 33 34 |
# Arquivo 'lib/mongo/protocol/bit_vector.rb', linha 29 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
#deserialize(buffer, _options = {}) ➤ 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
56 57 58 59 60 61 62 63 |
# Arquivo 'lib/mongo/protocol/bit_vector.rb', linha 56 def desserializar(buffer, = {}) vetor = buffer.get_int32 flags = [] @masks.cada fazer |flag, máscara| flags << flag se máscara & vetor != 0 end flags end |
#serialize(buffer, valor, _validating_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
44 45 46 47 48 |
# Arquivo 'lib/mongo/protocol/bit_vector.rb', linha 44 def serializar(buffer, valor, _validating_keys = nada) bits = 0 valor.cada { |flag| bits |= @masks[flag] || 0 } buffer.put_int32(bits) end |