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