Módulo: Mongo::Id Private
- 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 identificadores enteros únicos y secuenciales para las instancias de la clase. Define el método #next_id en la clase que lo incluye. La implementación garantiza que los identificadores sean únicos incluso al ser llamados desde varios subprocesos.
Las clases que incluyen Id no deben acceder a '@@id` o `@@id_lock` directamente; en su lugar, deben llamar a `#next_id` en `#initialize` y guardar el resultado en la instancia que se está creando.
Colapso delresumen del método de clase
- .included(klass) ⇒ objeto privada
Detalles del método de clase
.incluido(clase) ⇒ 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 yo.incluido(klass) klass.conjunto_de_variables_de_clase(:@@identificación, 0) klass.conjunto_de_variables_de_clase(:@@id_lock, Mutex.Nuevo) klass.definir_método_singleton(:siguiente_id) hacer klass.obtención de variable de clase(:@@id_lock).sincronizar hacer ID. = obtención de variable de clase(:@@identificación) klass.conjunto_de_variables_de_clase(:@@identificación, ID. + 1) klass.obtención de variable de clase(:@@identificación) end end end |