Class: Mongo::Protocol::Compressed
- Hereda:
-
Mensaje
- Objeto
- Mensaje
- Mongo::Protocol::Compressed
- Definido en:
- lib/mongo/protocol/compressed.rb
Overview
Mensaje comprimido del protocolo de conexión MongoDB.
Este es un mensaje bidireccional que comprime otro opcode. Consulta https://github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.md
Resumen de constantes colapsar
- NOOP =
El identificador del compresor "noop".
'noop'- NOOP_BYTE =
El byte que indica que el mensaje no ha sido comprimido (modo de prueba).
0.chr.force_encoding(BSON::Binario).freeze
- SNAPPY =
El identificador rápido del compresor.
'rápido'- SNAPPY_BYTE =
El byte que indica que el mensaje se ha comprimido con Snappy.
1.chr.force_encoding(BSON::Binario).freeze
- ZLIB_BYTE =
El byte que indica que el mensaje ha sido comprimido con Zlib.
2.chr.force_encoding(BSON::Binario).freeze
- zlib =
El identificador del compresor Zlib.
'zlib'- ZSTD =
El identificador del compresor zstd.
'zstd'- ZSTD_BYTE =
El byte que indica que el mensaje ha sido comprimido con zstd.
3.chr.force_encoding(BSON::Binario).freeze
- COMPRESSOR_ID_MAP =
El identificador del compresor al mapa de bytes.
{ rápido => SNAPPY_BYTE, zstd => ZSTD_BYTE, zlib => ZLIB_BYTE }.freeze
Constantes heredadas de Mensaje
Message::BATCH_SIZE, Message::colección, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q
Constantes incluidas de Serializadores
Serializers::HEADER_PACK, Serializers::INT32_PACK, Serializers::INT64_PACK, Serializers::NULL, Serializers::ZERO
Resumen del atributo de la instancia
Atributos heredados de Mensaje
Resumen del método de instancia colapsar
-
#initialize(message, compressor, zlib_compression_level = nil) ⇒ Compressed
constructor
Crea un nuevo mensaje OP_COMPRESSED.
-
#maybe_inflate ⇒ Protocol::Message
privado
Infla un mensaje OP_COMPRESED y devuelve el mensaje original.
-
#¿puede responderse? ⇒ verdadero, falso
Si el mensaje espera una respuesta de la base de datos.
Métodos heredados de Mensaje
#==, deserialize, deserialize_array, deserialize_field, deserialize_header, campo, fields, #hash, #maybe_add_server_api, #maybe_compress, #maybe_decrypt, #maybe_encrypt, #number_returned, #serialize, #set_request_id
Métodos incluidos de Id
Detalles del Constructor
#initialize(mensaje, compresor, zlib_compression_level = nil) ⇒ Comprometido
Crea un nuevo mensaje OP_COMPRESSED.
76 77 78 79 80 81 82 83 84 |
# Archivo 'lib/mongo/protocol/compressed.rb', línea 76 def inicializar(, compresor, zlib_compression_level = nulo) @original_message = @original_op_code = .op_code @uncompressed_size = 0 @compressor_id = COMPRESSOR_ID_MAP[compresor] @compressed_message = '' @zlib_compression_level = zlib_compression_level si zlib_compression_level && zlib_compression_level != -1 @request_id = .request_id end |
Detalles del método de instancia
#maybe_inflate ⇒ Protocolo::Mensaje
Este método es parte de una API privada. Se debe evitar el uso de este método si es posible, ya que podría eliminarse o modificarse en el futuro.
Infla un mensaje OP_COMPRESED y devuelve el mensaje original.
92 93 94 95 96 97 98 99 100 101 102 103 104 105 |
# Archivo 'lib/mongo/protocol/compressed.rb', línea 92 def tal_vez_inflar = Registro.Obtener(@original_op_code).asignar buffer = descomprimir(@compressed_message) .enviar(campo).cada hacer |Campo| si Campo[:multi] Mensaje.deserializar_array(, buffer, Campo) else Mensaje.deserialize_field(, buffer, Campo) end end .arreglar_después_de_deserialización si .is_a?(Msg) end |
#¿se puede responder? ⇒ verdadero, falso
Si el mensaje espera una respuesta de la base de datos.
115 116 117 |
# Archivo 'lib/mongo/protocol/compressed.rb', línea 115 def ¿respondible? @original_message.¿respondible? end |