Class: Mongo::Protocol::Compressed

Hereda:
Mensaje
  • Objeto
Mostrar todo
Definido en:
lib/mongo/protocolo/comprimido.rb

Overview

Protocolo Wire de MongoDB Mensaje comprimido.

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 del compresor ágil.

Desde:

  • 2.5.0

'ágil '.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 para el mapa de bytes.

Desde:

  • 2.5.0

{
  RÁPIDO => SNAPPY_BYTE,
  ZSTD => Byte estándar Z,
  ZLIB => ZLIB_BYTE
}.freeze

Constantes heredadas de Message

Mensaje::TAMAÑO_DE_LOTE, Mensaje::COLECCIÓN, Mensaje::LÍMITE, Mensaje::TAMAÑO_MÁXIMO_DE_MENSAJE, Mensaje::ORDENADO, Mensaje::Q

Resumen de atributos de instancia

Atributos heredados de Message

#id_de_solicitud

Colapso del resumen del método de instancia

Métodos heredados de Message

#==, 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

#inicializar(mensaje, compresor, zlib_compression_level = nil) ⇒ Comprimido

Crea un nuevo mensaje OP_COMPRESSED.

Ejemplos:

Crea 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 valor predeterminado.

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)
  @mensaje_original = Mensaje
  @código_de_operación_original = Mensaje.op_code
  @uncompressed_size = 0
  @compressor_id = COMPRESSOR_ID_MAP[compresor]
  @mensaje_comprimido = ''
  @zlib_nivel_de_compresión = zlib_compression_level Si zlib_compression_level && zlib_compression_level != -1
  @request_id = Mensaje.id de solicitud
end

Detalles del método de instancia

#perhaps_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(@código_de_operación_original).asignar
  buf = descomprimir(@mensaje_comprimido)

  Mensaje.Enviar(:campos).cada hacer |Campo|
    Si Campo[:multi]
      Mensaje.deserializar_matriz(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

#¿respondible?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?
  @mensaje_original.¿respondible?
end