Module: Mongo::Protocol::Serializers::Sections Private

定義:
build/ruby-Driver-v 2.19 /lib/mongo/protocol/serializers.rb

Overview

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

OP_MSG のセクション向けの MongoDB ワイヤプロトコル直列化戦略。

セクションのリストを直列化および逆直列化します。

以来

  • 2.5.0

名前空間で定義済み

Modules: PayloadOnePayloadZro

クラスメソッドの概要を折りたたむ

クラスメソッドの詳細

逆シリアル 化(バッファ、オプション = {}) = 配列= ::Document=============================================<BSON::Document>

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

OP_MSG のセクションを IO ストリームから逆シリアル化します。

パラメーター:

  • バッファ BSON::Byteバッファ

    セクションを含むバッファ。

  • options ハッシュ (デフォルトは{}です)

オプション ハッシュ( options ):

  • :deserialize_as_bson ブール値

    BSON typesRuby可能な場合は、ネイティブ 型ではなく を使用してセクション逆シリアル化を実行するかどうか。

次の値を返します。

  • 配列<BSON::Document>

    逆シリアル化されたセクション。

以来

  • 2.5.0



219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/protocol/serializers.rb', 行219

デフォルト 自己.逆シリアル化(バッファ, options = {})
  end_Length = (@フラグ_ビット & Msg::FLAGS.index(:checksum_presentation)) == 1 ? 32 : 0
  セクション = []
  まで バッファ.Length == end_Length
    ケース byte = バッファ.get_byte
    次の場合: PayloadZerO::Type_BYTE
      セクション < PayloadZerO.逆シリアル化(バッファ, options)
    次の場合: PayloadOne::Type_BYTE
      セクション += PayloadOne.逆シリアル化(バッファ, options)
    else
      発生 エラー::UnknownPayloadType.新着情報(byte)
    end
  end
  セクション
end

シリアル化(バッファ、値、max_bson_size = nil、validation_keys = nil)= BSON:: Byteバッファリング

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

OP_MSG、ペイロード型0または1のセクションをシリアル化します。

パラメーター:

  • バッファ BSON::Byteバッファ

    シリアル化されたセクションを受信するためのバッファ。

  • 価値 配列

    シリーズ化するセクション。

  • max_bson_size (Fixnum) (デフォルトはnil

    セクション内のドキュメントの最大BSONサイズ。

  • validation_keys truefalse (デフォルトはnil

    ドキュメント キーを検証するかどうか。 このオプションは非推奨であり、使用されません。 バージョン3.0で削除されます。

次の値を返します。

  • BSON::Byteバッファ

    シリアル化された値を持つバッファ。

以来

  • 2.5.0



192
193
194
195
196
197
198
199
200
201
202
203
204
205
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/protocol/serializers.rb', 行192

デフォルト 自己.直列化(バッファ, 価値, max_bson_size = nil, validation_keys = nil)
  価値. 行う |セクション|
    ケース セクション[:type]
    次の場合: PayloadZerO::タイプ
      PayloadZerO.直列化(バッファ, セクション[: payload], max_bson_size)
    次の場合: nil
      PayloadZerO.直列化(バッファ, セクション[: payload], max_bson_size)
    次の場合: PayloadOne::タイプ
      PayloadOne.直列化(バッファ, セクション[: payload], max_bson_size)
    else
      発生 エラー::UnknownPayloadType.新着情報(セクション[:type])
    end
  end
end

size_制限されますか? = true

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

直列化後にこのタイプにサイズ制限を設定するかどうか。

次の値を返します。

  • ( true )

    ドキュメントは直列化時にサイズ制限できます。

以来

  • 2.5.0



240
241
242
# ファイル 'Build/ruby-Driver-v 2.19 /lib/mongo/protocol/serializers.rb', 行240

デフォルト 自己.size_制限されますか?
  true
end