Class: Mongo::Protocol::Compressed

Hereda:
Mensaje
  • Objeto
Mostrar todo
Definido en:
lib/mongo/protocol/compressed.rb

Overview

Mensaje comprimido del protocolo de conexión MongoDB.

Este es un mensaje bidireccional que comprime otro código de operación. Consulta github.com/mongodb/specifications/blob/master/source/compression/OP_COMPRESSED.md

Desde:

  • 2.5.0

Colapso delresumen constante

NOOP =

El identificador del compresor "noop".

Desde:

  • 2.5.0

'noop'.freeze
NOOP_BYTE =

El byte que indica que el mensaje no ha sido comprimido (modo de prueba).

Desde:

  • 2.5.0

0.chr.codificación forzada(BSON::Binario).freeze
RÁPIDO =

El identificador rápido del compresor.

Desde:

  • 2.5.0

'snappy'.freeze
BYTE SNAPPY =

El byte que indica que el mensaje ha sido comprimido con snappy.

Desde:

  • 2.5.0

1.chr.codificación forzada(BSON::Binario).freeze
ZLIB_BYTE =

El byte que indica que el mensaje ha sido comprimido con Zlib.

Desde:

  • 2.5.0

2.chr.codificación forzada(BSON::Binario).freeze
zlib =

El identificador del compresor Zlib.

Desde:

  • 2.5.0

'zlib'.freeze
ZSTD =

El identificador del compresor zstd.

Desde:

  • 2.5.0

'zstd'.freeze
ZSTD_BYTE =

El byte que indica que el mensaje ha sido comprimido con zstd.

Desde:

  • 2.5.0

3.chr.codificación forzada(BSON::Binario).freeze
COMPRESSOR_ID_MAP =

El identificador del compresor al mapa de bytes.

Desde:

  • 2.5.0

{
  rápido => SNAPPY_BYTE,
  zstd => ZSTD_BYTE,
  zlib => ZLIB_BYTE
}.freeze

Constantes heredadas de Message

Message::BATCH_SIZE, Message::colección, Message::LIMIT, Message::MAX_MESSAGE_SIZE, Message::ORDERED, Message::Q

Resumen del atributo de la instancia

Atributos heredados de Mensaje

#request_id

Resumen del método de instancia colapsar

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

incluido

Detalles del constructor

#initialize(mensaje, compresor, zlib_compression_level = nil) ⇒ Comprometido

Crea un nuevo mensaje OP_COMPRESSED.

Ejemplos:

Cree un mensaje OP_COMPRESSED.

Compressed.new(original_message, 'zlib')

Parámetros:

  • mensaje (Mongo::Protocol::Message)

    El mensaje original.

  • compresor (Cadena,Símbolo)

    El algoritmo de compresión que se debe utilizar.

  • zlib_compression_level (Entero) (predeterminado: nulo)

    El nivel de compresión zlib a utilizar. -1 y nil implican por defecto.

Desde:

  • 2.5.0



79
80
81
82
83
84
85
86
87
# Archivo 'lib/mongo/protocol/compressed.rb', línea 79

def inicializar(mensaje, compresor, zlib_compression_level = nulo)
  @original_message = mensaje
  @original_op_code = mensaje.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 = mensaje.id de solicitud
end

Detalles del método de instancia

#maybe_inflateProtocolo::Mensaje

Este método forma parte de una API privada. Debe evitarlo si es posible, ya que podría eliminarse o modificarse en el futuro.

Infla un mensaje OP_COMPRESSED y devuelve el mensaje original.

Devuelve:

Desde:

  • 2.5.0



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Archivo 'lib/mongo/protocol/compressed.rb', línea 95

def tal_vez_inflar
  mensaje = Registro.Obtener(@original_op_code).asignar
  buf = descomprimir(@compressed_message)

  mensaje.enviar(campo).cada hacer |Campo|
    si Campo[:multi]
      Mensaje.deserializar_array(mensaje, buf, Campo)
    else
      Mensaje.deserializar_campo(mensaje, buf, Campo)
    end
  end
  si mensaje.is_a?(Msg)
    mensaje.corrección después de la deserialización
  end
  mensaje
end

#¿se puede responder?verdadero, falso

Si el mensaje espera una respuesta de la base de datos.

Ejemplos:

¿El mensaje requiere una respuesta?

message.replyable?

Devuelve:

  • (verdadero,falso)

    Si el mensaje espera una respuesta.

Desde:

  • 2.5.0



120
121
122
# Archivo 'lib/mongo/protocol/compressed.rb', línea 120

def ¿respondible?
  @original_message.¿respondible?
end