-
Notifications
You must be signed in to change notification settings - Fork 1
EncodeOptions
uupaa edited this page Jul 2, 2015
·
8 revisions
このエントリでは、MessagePack.encode, MessagePack.decode に指定可能なオプションについて説明します。
MessagePack.encode(source:Any, options = {}):Uint8Array には以下のオプションを指定できます。
Keywords | |
---|---|
askey:Boolean = false | 条件付きでObjectの変換処理を高速化します |
ascii:Boolean = false | 条件付きでStringの変換処理を高速化します |
buffer:Uint8Array = null | 内部で使用するバッファサイズを指定します |
pack:Function = null | USER_DEFINED_TYPE で使用する関数を指定します |
-
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)
- pack は、ユーザが定義した型をサポートするための仕組みです。
- USER_DEFINED_TYPEを参照してください。
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 | 内部バッファのコピーを行います |
-
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(...)) により作成されたビューを返します。
- unpack は、ユーザが定義した型をサポートするための仕組みです。
- USER_DEFINED_TYPEを参照してください。