模块:Mongo::Id Private
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/id.rb
Overview
该模块是私有 API 的一部分。 您应尽可能避免使用此模块,因为它将来可能会被删除或更改。
该模块抽象了为类的实例生成连续唯一整数 ID 的功能。 它在包含它的类上定义了方法 #next_id。 该实施确保即使从多个线程调用时,ID 也是唯一的。
包含ID的类不应直接访问“@@id”或“@@id_lock”;相反,他们应该在 `#initialize` 中调用 `#next_id` 并将结果保存在正在创建的实例中。
类方法摘要折叠
- 。 included (klass) ⇒ 对象 private
类方法详细信息
。 included (klass) ⇒对象
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
56 57 58 59 60 61 62 63 64 65 66 67 |
# File ' 构建/ruby-driver-v2.19/lib/ mongo /id.rb', 第56行 def self.包含(klass) klass.class_variable_set(:@@id, 0) klass.class_variable_set(:@@id_lock, 互斥锁.new) klass.define_singleton_method(:next_id) do klass.class_variable_get(:@@id_lock).同步 do id = class_variable_get(:@@id) klass.class_variable_set(:@@id, id + 1) klass.class_variable_get(:@@id) end end end |