Módulo: Mongo::Id Private
- Incluído em:
- Monitoramento, Protocol::Message, Server::Connection
- Definido em:
- build/ruby-driver-v2.19/lib/mongo/id.rb
Visão geral
Este módulo faz parte de uma API privada. Você deve evitar usar este módulo, se possível, pois ele pode ser removido ou alterado no futuro.
Este módulo abstrai a funcionalidade para gerar IDs inteiros únicos sequenciais para instâncias da classe. Define o método #next_id na classe que o inclui. A implementação garante que os IDs sejam exclusivos mesmo quando chamados de vários threads.
As classes que incluem ID não devem acessar '@@id' ou `@@id_lock' diretamente; em vez disso, eles devem chamar `#next_id' em `#initialize' e salvar o resultado na instância que está sendo criada.
Recolhimento do Resumo do método de classe
- .include(klass) ➤ Objeto privado
Detalhes do método de classe
.include(klass) ➤ 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.
56 57 58 59 60 61 62 63 64 65 66 67 |
# File 'build/ruby-driver-v2.19/lib/mongo/id.rb', linha 56 def auto.incluído(classe) classe.class_variable_set(:@@id, 0) classe.class_variable_set(:@@id_lock, Mutex.Novo) classe.define_singleton_method(:next_id) fazer classe.class_variable_get(:@@id_lock).sincronizar fazer id = class_variable_get(:@@id) classe.class_variable_set(:@@id, id + 1) classe.class_variable_get(:@@id) end end end |