java: add Unpacker.feed() function for java.nio.ByteBuffer

This commit is contained in:
Kazuki Ohta 2010-04-29 21:27:41 +09:00
parent 6352472c5f
commit fc5e8ddca1

View File

@ -21,6 +21,7 @@ import java.lang.Iterable;
import java.io.InputStream; import java.io.InputStream;
import java.io.IOException; import java.io.IOException;
import java.util.Iterator; import java.util.Iterator;
import java.nio.ByteBuffer;
import org.msgpack.impl.UnpackerImpl; import org.msgpack.impl.UnpackerImpl;
public class Unpacker extends UnpackerImpl implements Iterable<Object> { public class Unpacker extends UnpackerImpl implements Iterable<Object> {
@ -103,6 +104,14 @@ public class Unpacker extends UnpackerImpl implements Iterable<Object> {
used += size; 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) { public void feed(byte[] buffer) {
feed(buffer, 0, buffer.length); feed(buffer, 0, buffer.length);
} }