Módulo: Mongo::Id Privado
- Incluido en:
- supervisión, Protocolo::Mensaje, Servidor::Conexión
- Definido en:
- lib/mongo/id.rb
Overview
Este módulo forma parte de una API privada. Debe evitar su uso siempre que sea posible, ya que podría eliminarse o modificarse en el futuro.
Este módulo abstrae la funcionalidad para generar IDs enteros únicos secuenciales para instancias de la clase. Define el método #next_id en la clase que lo incluye. La implementación garantiza que los ID serán únicos incluso cuando se llamen desde varios hilos.
Las clases que incluyen Id no deben acceder directamente a ‘@@id’ o ‘@@id_lock’; en su lugar, deben llamar a `#next_id` en `#initialize` y guardar el resultado en la instancia que se está creando.
Resumen del método de clase colapsar
- .included(klass) ⇒ objeto privado
Detalles del método de clase
.incluido(klass) ⇒ objeto
Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.
56 57 58 59 60 61 62 63 64 65 66 67 |
# Archivo 'lib/mongo/id.rb', línea 56 def sí mismo.incluido(klass) klass.conjunto_de_variables_de_clase(:@@id, 0) klass.conjunto_de_variables_de_clase(:@@id_lock, Mutex (exclusión mutua).Nuevo) klass.definir_método_singleton(siguiente_id) hacer klass.class_variable_get(:@@id_lock).sincronizar hacer ID = class_variable_get(:@@id) klass.conjunto_de_variables_de_clase(:@@id, ID + 1) klass.class_variable_get(:@@id) end end end |