Class: Mongo::Protocol::Serializers::BitVector Private
- 상속:
-
객체
- 객체
- Mongo::Protocol::Serializers::BitVector
- 다음에 정의됨:
- 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/bit_vector.rb
개요
이 클래스는 비공개 API의 일부입니다. 이 클래스는 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
MongoDB 유선 프로토콜 메시지에 대한 비트벡터를 정의하는 데 사용되는 클래스입니다.
초기화 시 직렬화 전략을 정의합니다.
인스턴스 메서드 요약 접기
-
#역직렬화(버퍼, 옵션 = {}) ⇒ Array<Symbol>
비공개
마스크에 따라 기호를 디코딩하여 벡터를 역직렬화합니다.
-
#initialize(layout) ⇒ BitVector
생성자
비공개
레이아웃을 사용하여 BitVector를 초기화합니다.
-
#직렬화(버퍼, 값, validating_keys = nil) ⇒ string
비공개
마스크에 따라 각 심볼을 인코딩하여 벡터를 직렬화합니다.
생성자 세부 정보
#initialize(layout) ⇒ BitVector
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
레이아웃을 사용하여 BitVector를 초기화합니다.
31 32 33 34 35 36 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/bit_vector.rb', 줄 31 def 초기화(레이아웃) @masks = {} 레이아웃.each_with_index do |필드, index| @masks[필드] = 2**index 만약 필드 end end |
인스턴스 메서드 세부 정보
#역직렬화(버퍼, 옵션 = {}) ⇒ Array<기호>
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
마스크에 따라 기호를 디코딩하여 벡터를 역직렬화합니다.
58 59 60 61 62 63 64 65 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/bit_vector.rb', 줄 58 def 역직렬화(buffer, = {}) 벡터 = buffer.get_int32 flags = [] @masks.각 do |flag, 마스크| flags << flag 만약 마스크 & 벡터 != 0 end flags end |
#직렬화(버퍼, 값, validating_keys = nil) ⇒ string
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
마스크에 따라 각 기호를 인코딩하여 벡터를 직렬화합니다.
46 47 48 49 50 |
# 파일 ' 빌드/ Ruby-driver-v2.19/lib/mongo/ 프로토콜/bit_vector.rb', 줄 46 def 직렬화(buffer, value, validation_keys = nil) 비트 = 0 value.각 { |flag| 비트 |= (@masks[flag] || 0) } buffer.put_int32(비트) end |