Skip to content
uupaa edited this page Jul 2, 2015 · 8 revisions

このエントリでは、MessagePack.encode, MessagePack.decode に指定可能なオプションについて説明します。

EncodeOptions

MessagePack.encode(source:Any, options = {}):Uint8Array には以下のオプションを指定できます。

Keywords
askey:Boolean = false 条件付きでObjectの変換処理を高速化します
ascii:Boolean = false 条件付きでStringの変換処理を高速化します
buffer:Uint8Array = null 内部で使用するバッファサイズを指定します
pack:Function = null USER_DEFINED_TYPE で使用する関数を指定します

Speed option

  • askey は FIX_MAP, MAP16, MAP32 型に作用する最適化オプションです

    • MAP の key を FIX_STR としてエンコードします
    • MAP の key が全て 31byte 以下で、 ASCII の場合に true にできます
    • このオプションは常に指定できるわけではありません。誤って true を指定すると復元できないデータが生成されます
  • ascii は FIX_STR, STR8, STR16, STR32 型に作用する最適化オプションです

    • STR8, STR16, STR32 を FIX_STR としてエンコードします
    • STR が 31byte 以下で、ASCII の場合に true にできます
    • このオプションは常に指定できるわけではありません。誤って true を指定すると復元できないデータが生成されます
  • buffer は内部バッファに作用する最適化するオプションです

    • 内部バッファが不足すると自動拡張が行われますが、このオプションを使うことで予め十分な大きさを確保できます
    • デフォルトは 1024 * 4 です。 new Uint8Array(1024 * 4)

Type option

  • pack は、ユーザが定義した型をサポートするための仕組みです。

DecodeOptions

MessagePack.decode(source:Uint8Array, options = {}):Any には以下のオプションを指定できます。

Keywords
options.unpack:Function = null USER_DEFINED_TYPE で使用する関数を指定します
options.askey:Boolean = false 条件付きでObjectの復元処理を高速化します
options.ascii:Boolean = false 条件付きでStringの復元処理を高速化します
options.copy:Boolean = false 内部バッファのコピーを行います

Speed option

  • askey は FIX_MAP, MAP16, MAP32 型に作用する最適化オプションです

    • エンコード時に askey = true を指定した場合は、デコード時も askey = true を指定してください。
  • ascii は FIX_STR, STR8, STR16, STR32 型に作用する最適化オプションです

    • エンコード時に ascii = true を指定した場合は、デコード時も ascii = true を指定してください。
  • copy は、TYPE_BIN に作用する最適化オプションです

    • Uint8Array の実体のコピーを作成する(新たに malloc する)場合に true にします。
    • false を指定すると、コピーを作成せず、new Uint8Array(source.subaraay(...)) により作成されたビューを返します。

Type option

  • unpack は、ユーザが定義した型をサポートするための仕組みです。
Clone this wiki locally