diff --git a/msgpack.codec.js b/msgpack.codec.js index cd8ab882..420af9c9 100644 --- a/msgpack.codec.js +++ b/msgpack.codec.js @@ -10,9 +10,10 @@ globalScope.msgpack = { // toString:Boolean = false):ByteArray/ByteString/false // [1][mix to String] msgpack.pack({}, true) -> "..." // [2][mix to ByteArray] msgpack.pack({}) -> [...] - unpack: msgpackunpack // msgpack.unpack(data:BinaryString/ByteArray):Mix + unpack: msgpackunpack, // msgpack.unpack(data:BinaryString/ByteArray):Mix // [1][String to mix] msgpack.unpack("...") -> {} // [2][ByteArray to mix] msgpack.unpack([...]) -> {} + unpackedLength: msgpackunpackedLength // msgpack.unpackedLength() -> Number }; var _bin2num = {}, // BinaryStringToNumber { "\00": 0, ... "\ff": 255 } @@ -55,6 +56,11 @@ function msgpackunpack(data) { // @param BinaryString/ByteArray: return decode(); // mix or undefined } +// msgpack.unpackedLength +function msgpackunpackedLength() { // @return Number: unpacked length + return _idx + 1; +} + // inner - encoder function encode(rv, // @param ByteArray: result mix, // @param Mix: source data diff --git a/msgpack.js b/msgpack.js index 46ed0cb2..f2832f57 100644 --- a/msgpack.js +++ b/msgpack.js @@ -15,7 +15,8 @@ globalScope.msgpack = { // [2][ByteArray to mix] msgpack.unpack([...]) -> {} worker: "msgpack.js", // msgpack.worker - WebWorkers script filename upload: msgpackupload, // msgpack.upload(url:String, option:Hash, callback:Function) - download: msgpackdownload // msgpack.download(url:String, option:Hash, callback:Function) + download: msgpackdownload,// msgpack.download(url:String, option:Hash, callback:Function) + unpackedLength: msgpackunpackedLength // msgpack.unpackedLength() -> Number }; var _ie = /MSIE/.test(navigator.userAgent), @@ -70,6 +71,11 @@ function msgpackunpack(data) { // @param BinaryString/ByteArray: return decode(); // mix or undefined } +// msgpack.unpackedLength +function msgpackunpackedLength() { // @return Number: unpacked length + return _idx + 1; +} + // inner - encoder function encode(rv, // @param ByteArray: result mix, // @param Mix: source data diff --git a/test/unpacked_length.htm b/test/unpacked_length.htm new file mode 100644 index 00000000..1f351c8b --- /dev/null +++ b/test/unpacked_length.htm @@ -0,0 +1,69 @@ + + + +msgpack unpacked length test + + + + +