모듈: Mongo::Id Private
- 포함 항목:
- 모니터링, Protocol::Message, Server::Connection
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/id.rb
개요
이 모듈은 비공개 API의 일부입니다. 이 모듈은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
이 모듈은 클래스의 인스턴스에 대해 순차적으로 고유한 정수 ID를 생성하는 기능을 추상화합니다. 이를 포함하는 클래스에서 #next_id 메서드를 정의합니다. 구현 은 여러 스레드에서 호출되는 경우에도 ID가 고유하도록 보장합니다.
ID 가 포함된 클래스는 '@@id' 또는 '@@id_lock'에 직접 액세스해서는 안 됩니다. 대신 `#initialize`에서 `#next_id`를 호출하고 결과를 생성 중인 인스턴스에 저장해야 합니다.
클래스 메서드 요약 접기
클래스 메서드 세부 정보
.include(klass) ⇒ 객체
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
56 57 58 59 60 61 62 63 64 65 66 67 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/id.rb', 줄 56 def self.포함(class) class.class_variable_set(:@@id, 0) class.class_variable_set(:@@id_lock, 뮤텍스.신규) class.정의_싱글톤_메서드(:next_id) do class.class_variable_get(:@@id_lock).동기화 do id = class_variable_get(:@@id) class.class_variable_set(:@@id, id + 1) class.class_variable_get(:@@id) end end end |