Class: Mongo::Protocol::Compressed
- 다음에 정의됨:
- build/ruby-driver-v2.19/lib/mongo/protocol/compressed.rb
개요
MongoDB 유선 프로토콜 압축 메시지입니다.
다른 옵코드를 압축하는 양방향 메시지입니다. github.com/mongodb/specations/lob/master/source/compression/OP_COMPRESSED.rst를 참조하세요.
상수 요약 접기
- noop =
noop 압축기 식별자입니다.
'noop'.동결
- NOOP_BYTE =
메시지가 압축되지 않았음을 나타내는 바이트(테스트 모드)입니다.
0.chr.force_encoding(BSON::바이너리).동결
- SNAPPY =
스내피 압축기 식별자입니다.
'snappy'.동결
- SNAPPY_BYTE =
메시지가 스내피 로 압축되었음을 나타내는 바이트입니다.
1.chr.force_encoding(BSON::바이너리).동결
- ZLIB_BYTE =
메시지가 zlib 로 압축되었음을 나타내는 바이트입니다.
2.chr.force_encoding(BSON::바이너리).동결
- zlib =
zlib 압축기 식별자입니다.
'zlib'.동결
- zstd =
zstd 압축기 식별자입니다.
'zstd'.동결
- ZSTD_BYTE =
메시지가 zstd로 압축되었음을 나타내는 바이트입니다.
3.chr.force_encoding(BSON::바이너리).동결
- COMPRESSOR_ID_MAP =
바이트 맵에 대한 압축기 식별자입니다.
{ 스내피 => SNAPPY_BYTE, zstd => ZSTD_BYTE, zlib => ZLIB_BYTE }.동결
메시지에서 상속된 상수
Message::BATCH_SIZE, Message::COLLECTION, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q
인스턴스 속성 요약
메시지에서 상속된 속성
인스턴스 메서드 요약 접기
-
#initialize(message, 압축기, zlib_compression_level = nil) ⇒ 압축
생성자
새 OP_COMPRESSED 메시지를 생성합니다.
-
#maybe_inflate ⇒ Protocol::Message
비공개
OP_COMRESSED 메시지를 확장하고 원본 메시지를 반환합니다.
-
#회신 가능? ⇒ 참, 거짓
메시지가 데이터베이스 로부터 응답을 기대하는지 여부입니다.
메시지에서 상속된 메서드
#==, 역직렬화, #hash, #maybe_add_server_api, #maybe_compress, #maybe_decrypt, #maybe_encrypt, #number_returned, #serialize, #set_request_id
ID에 포함된 메서드
생성자 세부 정보
#initialize(message, 압축기, zlib_compression_level = nil) ⇒ 압축
새 OP_COMPRESSED 메시지를 생성합니다.
79 80 81 82 83 84 85 86 87 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/protocol/compressed.rb', 줄 79 def 초기화(, 압축기, zlib_compression_level = nil) @original_message = @original_op_code = .op_code @uncompressed_size = 0 @compressor_id = COMPRESSOR_ID_MAP[압축기] @compressed_message = '' @zlib_compression_level = zlib_compression_level 만약 zlib_compression_level && zlib_compression_level != -1 @request_id = .request_id end |
인스턴스 메서드 세부 정보
#may_inflate ⇒ Protocol::Message
이 메서드는 비공개 API의 일부입니다. 이 방법은 향후 제거되거나 변경될 수 있으므로 가능하면 사용하지 않는 것이 좋습니다.
OP_COMRESSED 메시지를 확장하고 원본 메시지를 반환합니다.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/protocol/compressed.rb', 줄 95 def may_inflate = 레지스트리.get(@original_op_code).할당하다 buf = 압축 해제(@compressed_message) .send(:fields).각 do |필드| 만약 필드[:multi] 메시지.deserialize_array(, buf, 필드) other 메시지.deserialize_field(, buf, 필드) end end 만약 .is_a?(메시지) .fix_after_deserialization end end |
#회신 가능? ⇒ true, false
메시지가 데이터베이스 로부터 응답을 기대하는지 여부입니다.
120 121 122 |
# 파일 'build/ruby-driver-v2.19/lib/mongo/protocol/compressed.rb', 줄 120 def 회신 가능? @original_message.회신 가능? end |