Classe: Mongo::Protocol::CashingHash Private

Herda:
Objeto
  • Objeto
mostrar tudo
Definido em:
build/ruby-driver-v2.19/lib/mongo/protocol/cashing_hash.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.

Um Hash que armazena em cache os resultados de #to_bson.

Recolhimento do Resumo do método de instância

Detalhes do construtor

#initialize(hash) ➤ CashingHash

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.

Retorna uma nova instância do CashingHash.



26
27
28
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/cashing_hash.rb', linha 26

def inicializar(hash)
  @hash = hash
end

Detalhes do método de instância

#bson_type 3 Objeto

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.



30
31
32
# File 'build/ruby-driver-v2.19/lib/mongo/protocol/cashing_hash.rb', linha 30

def bson_type
  Hash::BSON_TYPE
end

#to_bson(buffer = BSON::ByteBuffer.new, validate_keys = nil) ➤ BSON::ByteBuffer

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.

Armazena em cache o resultado de to_bson e o grava no buffer fornecido nas chamadas subsequentes a este método. Se esse método for originalmente chamado sem validação e, posteriormente, for chamado com validação, queremos recalcular o to_bson para trigger as validações.

Parâmetros:

  • buffer (BSON::ByteBuffer) (padrão para: BSON::ByteBuffer.new)

    O buffer BSON codificado ao qual anexar.

  • 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:

  • (BSON::ByteBuffer)

    O buffer com o objeto codificado.



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

def to_bson(buffer = BSON::ByteBuffer.Novo, validate_keys = nada)
  se !@bytes
    @bytes = @hash.to_bson(BSON::ByteBuffer.Novo).to_s
  end
  buffer.put_bytes(@bytes)
end