Class: Mongo::Protocol::Compressed

継承:
メッセージ すべて表示
定義:
build/ruby-Driver-v 2.19 /lib/mongo/protocol/compressed.rb

Overview

MongoDB ワイヤプロトコルの圧縮メッセージ。

これは、別の命令コードを圧縮する双方向メッセージです。 github.com/mongodb/specions/lob/ Master/source/compression/OP_COMPRESSED.rstを参照してください

以来

  • 2.5.0

定数の概要の削減

NOOP =

noop コンプレッサー識別子。

以来

  • 2.5.0

'noop'.freeze
noop_byte =

メッセージが圧縮されていないことを示す バイト(テスト モード)。

以来

  • 2.5.0

0.chr.force_encoding(BSON::バイナリ).freeze
Snappy =

Snappy コンプレッサー識別子。

以来

  • 2.5.0

' Snappy '.freeze
SNMPY_BYTE =

メッセージが snappy で圧縮されたことを示す バイト。

以来

  • 2.5.0

1.chr.force_encoding(BSON::バイナリ).freeze
ZLIB_BYTE =

メッセージがzlibで圧縮されたことを示す バイト。

以来

  • 2.5.0

2.chr.force_encoding(BSON::バイナリ).freeze
zlib =

zlibコンプレッサー識別子。

以来

  • 2.5.0

'zlib'.freeze
zstd =

zstd コンプレッサー識別子。

以来

  • 2.5.0

'zstd'.freeze
ZSST_BYTE =

メッセージが zstd で圧縮されたことを示す バイト。

以来

  • 2.5.0

3.chr.force_encoding(BSON::バイナリ).freeze
COMPRESSOR_ID_MAP =

バイト マップへのコンプレッサー識別子。

以来

  • 2.5.0

{
  Snappy => SNMP,
  zstd => ZSST_BYTE,
  zlib => ZLIB_BYTE
}.freeze

メッセージから継承された定数

メッセージ::バッチ_サイズメッセージ::COLLECTIONメッセージ::LITITメッセージ:MAX_MESSAGE_SIZE 、 メッセージ:: ORDER 、メッセージ::Q

インスタンス属性の概要

メッセージから継承された属性

#request_id

インスタンス メソッドの概要を折りたたむ

メッセージから継承されたメソッド

# =========================================================================================================

IDに含まれるメソッド

次が含まれます:

コンストラクターの詳細

#初期化(メッセージ、コンプレッサー、zlib_compression_level = nil) =圧縮済み

新しい OP_COMPRESSED メッセージを作成します。

例:

OP_COMPRESSED メッセージを作成します。

Compressed.new(original_message, 'zlib')

パラメーター:

  • メッセージ (Mongo::Protocol::Message)

    元のメッセージ。

  • compressor ( stringSymbol )

    使用する圧縮アルゴリズム。

  • zlib_compression_level 整数 (デフォルトはnil

    使用する zlib 圧縮レベル。 - 1と nil はデフォルトを意味します。

以来

  • 2.5.0



79
80
81
82
83
84
85
86
87
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/protocol/compressed.rb', 行79

デフォルト 初期化(メッセージ, compressor, zlib_compression_level = nil)
  @独自_メッセージ = メッセージ
  @元の_op_code = メッセージ.op_code
  @uncompressed_size = 0
  @compressor_id = COMPRESSOR_ID_MAP[compressor]
  @compressed_message = ''
  @zlib_compression_level = zlib_compression_level 場合 zlib_compression_level & & zlib_compression_level != -1
  @request_id = メッセージ.request_id
end

インスタンス メソッドの詳細

でも、プロトコル::Message

このメソッドは、プライベート API の一部です。 このメソッドは将来削除または変更される可能性があるため、可能な限り使用しないでください。

OP_COMRESSED メッセージを強調表示し、元のメッセージを返します。

次の値を返します。

以来

  • 2.5.0



95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/protocol/compressed.rb', 行95

デフォルト Max_infrate
  メッセージ = レジストリ.得る(@元の_op_code).割り当てる
  バッファ = 解凍(@compressed_message)

  メッセージ.送信(:fields). 行う |フィールド|
    場合 フィールド[:multi]
      メッセージ.deserialize_array(メッセージ, バッファ, フィールド)
    else
      メッセージ.deserialize_field(メッセージ, バッファ, フィールド)
    end
  end
  場合 メッセージ.is_a?(Msg)
    メッセージ.fix_ after_deserialization
  end
  メッセージ
end

応答可能かどうか= truefalse

メッセージがデータベースからの応答を要求しているかどうか。

例:

そのメッセージには応答が必要か。

message.replyable?

次の値を返します。

  • truefalse

    メッセージが応答を要求している場合。

以来

  • 2.5.0



120
121
122
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/protocol/compressed.rb', 行120

デフォルト 応答可能かどうか
  @独自_メッセージ.応答可能かどうか
end