summaryrefslogtreecommitdiff
path: root/java/src
diff options
context:
space:
mode:
authorKazuki Ohta <kazuki.ohta@gmail.com>2010-04-29 21:27:41 +0900
committerKazuki Ohta <kazuki.ohta@gmail.com>2010-04-29 21:27:41 +0900
commitfc5e8ddca151e60e02ef8b3be68f1c2590b56db8 (patch)
tree5b24f7662db4935b9ebdfa84e1e3fe8ad76a7861 /java/src
parent6352472c5fbe1d293dfff2d48dca81ea91bba29f (diff)
downloadmsgpack-python-fc5e8ddca151e60e02ef8b3be68f1c2590b56db8.tar.gz
java: add Unpacker.feed() function for java.nio.ByteBuffer
Diffstat (limited to 'java/src')
-rw-r--r--java/src/main/java/org/msgpack/Unpacker.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/java/src/main/java/org/msgpack/Unpacker.java b/java/src/main/java/org/msgpack/Unpacker.java
index 458ffee..c8a8823 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<Object> {
@@ -103,6 +104,14 @@ public class Unpacker extends UnpackerImpl implements Iterable<Object> {
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);
}