capnproto-java-rpc/runtime/src/main/java/org/capnproto/ArrayOutputStream.java

37 lines
858 B
Java
Raw Normal View History

package org.capnproto;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.WritableByteChannel;
2014-09-03 21:50:23 +00:00
public final class ArrayOutputStream implements BufferedOutputStream {
public final ByteBuffer buf;
2014-09-03 21:50:23 +00:00
public ArrayOutputStream(ByteBuffer buf) {
this.buf = buf.duplicate();
}
public final int write(ByteBuffer src) throws IOException {
int available = this.buf.remaining();
int size = src.remaining();
if (available < size) {
throw new IOException("backing buffer was not large enough");
}
this.buf.put(src);
return size;
}
public final ByteBuffer getWriteBuffer() {
return this.buf;
}
public final void close() throws IOException {
return;
}
public final boolean isOpen() {
return true;
}
}