Módulo: Mongo::Id Privado
- Incluido en:
- supervisión, Protocolo::Mensaje, Servidor::Conexión
- Definido en:
- lib/mongo/id.rb
Overview
Este módulo es parte de una API privada. Deberías evitar usar este módulo si es posible, ya que puede ser removido o cambiado 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 cambio, deben invocar 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 es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
55 56 57 58 59 60 61 62 63 64 65 66 |
# Archivo 'lib/mongo/id.rb', línea 55 def sí mismo.incluido(klass) klass.class_variable_set(:@@id, 0) klass.class_variable_set(bloquear, Mutex (exclusión mutua).Nuevo) klass.define_singleton_method(siguiente_id) hacer klass.class_variable_get(bloquear).sincronizar hacer ID = class_variable_get(:@@id) klass.class_variable_set(:@@id, ID + 1) klass.class_variable_get(:@@id) end end end |