Class: Mongo::Protocol::Compressed
개요
MongoDB 유선 프로토콜 압축 메시지입니다.
다른 옵코드를 압축하는 양방향 메시지입니다. https://github.com/mongodb/specations/lob/master/source/compression/OP_COMPRESSED.md를 참조하세요.
상수 요약 접기
- noop =
noop 압축기 식별자입니다.
'눕'- NOOP_BYTE =
메시지가 압축되지 않았음을 나타내는 바이트(테스트 모드)입니다.
0.chr.force_encoding(BSON::바이너리).동결
- 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
직렬 변환기에 포함된 상수
Serializers::HEADER_PACK, Serializers::INT32_PACK, Serializers::INT64_PACK, Serializers::NULL, Serializers::ZERO
인스턴스 속성 요약
메시지에서 상속된 속성
인스턴스 메서드 요약 접기
-
#initialize(message, 압축기, zlib_compression_level = nil) ⇒ 압축
생성자
새 OP_COMPRESSED 메시지를 생성합니다.
-
#maybe_inflate ⇒ Protocol::Message
비공개
OP_COMRESSED 메시지를 확장하고 원본 메시지를 반환합니다.
-
#회신 가능? ⇒ 참, 거짓
메시지가 데이터베이스 로부터 응답을 기대하는지 여부입니다.
메시지에서 상속된 메서드
#==, deserialize, deserialize_array, deserialize_field, deserialize_header, 필드, 필드, #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 메시지를 생성합니다.
76 77 78 79 80 81 82 83 84 |
# 파일 'lib/ Mongo/ 프로토콜/compressed.rb', 줄 76 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 메시지를 확장하고 원본 메시지를 반환합니다.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# 파일 'lib/ Mongo/ 프로토콜/compressed.rb', 줄 92 def may_inflate = 레지스트리.get(@original_op_code).할당하다 buf = 압축 해제(@compressed_message) .send(:fields).각 do |필드| 만약 필드[:multi] 메시지.deserialize_array(, buf, 필드) other 메시지.deserialize_field(, buf, 필드) end end .fix_after_deserialization 만약 .is_a?(메시지) end |
#회신 가능? ⇒ true, false
메시지가 데이터베이스 로부터 응답을 기대하는지 여부입니다.
115 116 117 |
# 파일 'lib/ Mongo/ 프로토콜/compressed.rb', 줄 115 def 회신 가능? @original_message.회신 가능? end |