Class: Mongo::Protocol::Serializers::BitVector Private
- Herda:
-
Objeto
- Objeto
- Mongo::Protocol::Serializers::BitVector
- 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
-
#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, validate_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
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
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, = {}) 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
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 |