diff --git a/java/src/main/java/org/msgpack/Unpacker.java b/java/src/main/java/org/msgpack/Unpacker.java index 458ffee0..c8a88234 100644 --- a/java/src/main/java/org/msgpack/Unpacker.java +++ b/java/src/main/java/org/msgpack/Unpacker.java @@ -21,6 +21,7 @@ import java.lang.Iterable; import java.io.InputStream; import java.io.IOException; import java.util.Iterator; +import java.nio.ByteBuffer; import org.msgpack.impl.UnpackerImpl; public class Unpacker extends UnpackerImpl implements Iterable { @@ -103,6 +104,14 @@ public class Unpacker extends UnpackerImpl implements Iterable { used += size; } + public void feed(ByteBuffer buffer) { + int length = buffer.remaining(); + if (length == 0) return; + reserveBuffer(length); + buffer.get(this.buffer, this.offset, length); + bufferConsumed(length); + } + public void feed(byte[] buffer) { feed(buffer, 0, buffer.length); }