Class: Mongo::Protocol::Compressed
- 定义于:
- build/Ruby-driver-v 2.19 /lib/mongo/protocol/compressed.rb
Overview
MongoDB Wire 协议压缩消息。
这是压缩另一个操作码的双向消息。 请参阅github.com/mongodb/Specifications/blob/master/source/compression/OP_COMPRESSED.rst
常量摘要折叠
- noop =
noop 压缩器标识符。
'noop'.冻结
- NOOP_BYTE =
该字节表示消息未经压缩(测试模式)。
0.chr.force_encoding(BSON::二进制文件).冻结
- SNAPPY =
snappy 压缩器标识符。
' snappy '.冻结
- SNAPPY_BYTE =
该字节表示消息已使用snappy压缩。
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 => SNAPPY_BYTE, zstd => ZSTD_BYTE, zlib => ZLIB_BYTE }.冻结
从Message继承的常量
Message::BATCH_SIZE 、 Message::COLLECTION 、 Message::LIMIT 、 Message::MAX_MESSAGE_SIZE 、 Message::ORDERED 、 Message::Q
实例属性摘要
从Message继承的属性
实例方法摘要折叠
-
#initialize (message,Compressor,zlib_compression_level = nil) ⇒ 已压缩
构造函数
创建新的 OP_COMPRESSED 消息。
-
#maybe_inflate ⇒ Protocol::Message
private
膨胀 OP_COMRESSED 消息并返回原始消息。
-
#可回复? ⇒ true, false
该消息是否期望从数据库得到回复。
从Message继承的方法
#== 、 deserialize 、 #hash 、 #maybe_add_server_api 、 #maybe_compress 、 #maybe_decrypt 、 #maybe_encrypt 、 #number_returned 、 #serialize 、 #set_request_id
ID中包含的方法
构造函数详情
#initialize (message,Compressor,zlib_compression_level = nil) ⇒ 已压缩
创建新的 OP_COMPRESSED 消息。
79 80 81 82 83 84 85 86 87 |
# File 'build/Ruby-driver-v 2.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 if zlib_compression_level && zlib_compression_level != -1 @request_id = .request_id end |
实例方法详细信息
#也许_inflate ⇒ Protocol::Message
此方法是私有 API 的一部分。 您应尽可能避免使用此方法,因为它将来可能会被删除或更改。
膨胀 OP_COMRESSED 消息并返回原始消息。
95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/compressed.rb', 第95行 def 也许_inflate = 注册表.获取(@original_op_code).分配 buf = 解压缩(@compressed_message) .发送(:fields).每 do |字段| if 字段[:multi] message.deserialize_array(, buf, 字段) else message.deserialize_field(, buf, 字段) end end if .is_a?(消息) .fix_after_deserialization end end |
#可回复? ⇒ true , false
该消息是否期望从数据库得到回复。
120 121 122 |
# File 'build/Ruby-driver-v 2.19 /lib/mongo/protocol/compressed.rb', 第120行 def 可回复? @original_message.可回复? end |