Class: Mongo::Protocol::Compressed
- Herda:
-
mensagem
- Objeto
- mensagem
- Mongo::Protocol::Compressed
- Definido em:
- lib/mongo/protocol/compressed.rb
Visão geral
Protocolo de fio do MongoDB Mensagem comprimida.
Esta é uma mensagem bidirecional que comprime outro código de operação. Consulte https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.md
Colapsode resumo constante
- noop =
O identificador do compressor noop.
'noop'- NOOP_BYTE =
O byte sinalizando que a mensagem não foi compactada (modo de teste).
0.chr.force_encoding(BSON::Binário).congelar
- SNAPPY =
O identificador snappy do compressor.
'snappy'- SNAPPY_BYTE =
O byte sinalizando que a mensagem foi compactada com snappy.
1.chr.force_encoding(BSON::Binário).congelar
- ZLIB_BYTE =
O byte sinalizando que a mensagem foi compactada com zlib.
2.chr.force_encoding(BSON::Binário).congelar
- zlib =
O identificador do compressor zlib .
'zlib'- zstd =
O identificador do compressor zstd.
'zstd'- ZSTD_BYTE =
O byte sinalizando que a mensagem foi compactada com zstd.
3.chr.force_encoding(BSON::Binário).congelar
- COMPRESSOR_ID_MAP =
O identificador do compressor para o mapa de bytes.
{ Snappy => SNAPPY_BYTE, zstd => ZSTD_BYTE, zlib => ZLIB_BYTE }.congelar
Constantes herdadas de Mensagem
Mensagem::BATCH_SIZE, Mensagem::COLLECTION, Mensagem::LIMIT, Mensagem::MAX_MSSAGE_SIZE, Mensagem::ORDERED , Mensagem::Q
Constantes incluídas dos serializadores
Serializadores::HEADER_PACK, Serializadores::INT32_PACK, Serializadores::INT64_PACK, Serializadores::NULL, Serializadores::Zero
Resumo do atributo de instância
Atributos herdados de Mensagem
Recolhimento do Resumo do método de instância
-
#initialize(message, compressor, zlib_compression_level = nil) ➤ Compressed
construtor
Cria uma nova mensagem OP_COMPRESSED.
-
#maybe_inflate ⇒ Protocol::Message
privado
Incha uma mensagem OP_COMRESSED e retorna a mensagem original.
-
#respondível? ➤ verdadeiro, falso
Se a mensagem espera uma resposta do banco de banco de dados.
- #serialize_fields(buffer, max_bson_size) ⇒ Objeto privado
Métodos herdados de Mensagem
#==, deserialize, #deserialize_array, #deserialize_field, deserialize_header, campo, #fields, campos, #hash, #maybe_add_server_api, #maybe_compress, #maybe_decrypt, #maybe_encrypt, #number_returned, #serialize, #set_request_id
Métodos incluídos do ID
Detalhes do construtor
#initialize(message, compressor, zlib_compression_level = nil) ➤ Compressed
Cria uma nova mensagem OP_COMPRESSED.
76 77 78 79 80 81 82 83 84 85 86 87 |
# Arquivo 'lib/mongo/protocol/compressed.rb', linha 76 def inicializar(, compressor, compressor, zlib_compression_level = nada) super() @ original_message = @ original_op_code = .op_code @uncompressed_size = 0 @compressor_id = COMPRESSOR_ID_MAP[compressor, compressor] @compressed_message = '' @zlib_compression_level = zlib_compression_level se zlib_compression_level && zlib_compression_level != -1 # Uma mensagem compactada deve reutilizar o ID de solicitação da mensagem encapsulada, # substituindo o ID recém-atribuído pelo inicializador da superclasse. @request_id = .request_id end |
Detalhes do método de instância
#may_inflate ➤ Protocol::Message
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
Incha uma mensagem OP_COMRESSED e retorna a mensagem original.
95 96 97 98 99 100 101 102 103 104 105 106 107 108 |
# Arquivo 'lib/mongo/protocol/compressed.rb', linha 95 def talvez_inflate = Registro.obter(@ original_op_code).alocar buffer = descompactar(@compressed_message) .Campos.cada fazer |Campo| se Campo[:multi] .deserialize_array(buffer, Campo) mais .deserialize_field(buffer, Campo) end end .Fix_after_deserialization se .is_a?(Msg) end |
#respondível? ➤ true, false
Se a mensagem espera uma resposta do banco de banco de dados.
118 119 120 |
# Arquivo 'lib/mongo/protocol/compressed.rb', linha 118 def respondível? @ original_message.respondível? end |
#serialize_fields(buffer, max_bson_size) ⇒ objeto
Este método faz parte de uma API privada. Evite usar esse método, se possível, pois ele pode ser removido ou alterado no futuro.
123 124 125 126 127 128 129 |
# Arquivo 'lib/mongo/protocol/compressed.rb', linha 123 def serialize_fields(buffer, max_bson_size) buffer = BSON::ByteBuffer.Novo @ original_message.serialize_fields(buffer, max_bson_size) @uncompressed_size = buffer.Tamanho @compressed_message = comprimir(buffer) super end |