public interface ByteBufferDestination
Encoder
s write binary data to. It encapsulates a
ByteBuffer
and a drain()
method the producer can call when the ByteBuffer
is full.
This interface allows a producer to write arbitrary amounts of data to a destination.
Modifier and Type | Method and Description |
---|---|
java.nio.ByteBuffer |
drain(java.nio.ByteBuffer buf)
Consumes the buffer content and returns a buffer with more available space
(which may or may not be the same instance).
|
java.nio.ByteBuffer |
getByteBuffer()
Returns the buffer to write to.
|
void |
writeBytes(byte[] data,
int offset,
int length)
Writes the given data to this ByteBufferDestination.
|
void |
writeBytes(java.nio.ByteBuffer data)
Writes the given data to this ByteBufferDestination entirely.
|
java.nio.ByteBuffer getByteBuffer()
java.nio.ByteBuffer drain(java.nio.ByteBuffer buf)
Called by the producer when buffer becomes too full to write to.
buf
- the buffer to drainvoid writeBytes(java.nio.ByteBuffer data)
void writeBytes(byte[] data, int offset, int length)
This method should behave identically to writeBytes(ByteBuffer.wrap(data, offset, length)
.
It is provided to allow callers not to generate extra garbage.
This method is called writeBytes() to avoid clashing with OutputStreamManager.write(byte[], int, int)
,
which might be overridden in user-defined subclasses as protected, hence adding it to interface and requiring
the method to be public breaks source compatibility.