-
- All Implemented Interfaces:
-
com.batch.android.msgpack.core.buffer.MessageBufferOutput,java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
public class ChannelBufferOutput implements MessageBufferOutput
-
-
Constructor Summary
Constructors Constructor Description ChannelBufferOutput(WritableByteChannel channel)ChannelBufferOutput(WritableByteChannel channel, int bufferSize)
-
Method Summary
Modifier and Type Method Description WritableByteChannelreset(WritableByteChannel channel)Reset channel. MessageBuffernext(int minimumSize)Allocates the next buffer to write. voidwriteBuffer(int length)Writes the previously allocated buffer. voidwrite(Array<byte> buffer, int offset, int length)Writes an external payload data.This method should follow semantics of OutputStream. voidadd(Array<byte> buffer, int offset, int length)Writes an external payload data. voidclose()voidflush()-
-
Constructor Detail
-
ChannelBufferOutput
ChannelBufferOutput(WritableByteChannel channel)
-
ChannelBufferOutput
ChannelBufferOutput(WritableByteChannel channel, int bufferSize)
-
-
Method Detail
-
reset
WritableByteChannel reset(WritableByteChannel channel)
Reset channel. This method doesn't close the old channel.
- Parameters:
channel- new channel
-
next
MessageBuffer next(int minimumSize)
Allocates the next buffer to write.
This method should return a MessageBuffer instance that has specified size of capacity at least.
When this method is called twice, the previously returned buffer is no longer used. This method may be calledtwice without call of writeBuffer in between. In this case, the buffer should bediscarded without flushing it to the output.
- Parameters:
minimumSize- the mimium required buffer size to allocate
-
writeBuffer
void writeBuffer(int length)
Writes the previously allocated buffer.
This method should write the buffer previously returned from next method until specified number ofbytes. Once the buffer is written, the buffer is no longer used.
This method is not always called for each next call. In this case, the buffer should be discardedwithout flushing it to the output when the next next is called.
- Parameters:
length- the number of bytes to write
-
write
void write(Array<byte> buffer, int offset, int length)
Writes an external payload data.This method should follow semantics of OutputStream.
- Parameters:
buffer- the data to writeoffset- the start offset in the datalength- the number of bytes to write
-
add
void add(Array<byte> buffer, int offset, int length)
Writes an external payload data.
Unlike write method, the buffer is given - this MessageBufferOutput implementationgets ownership of the buffer and may modify contents of the buffer. Contents of this buffer won't be modifiedby the caller.
- Parameters:
buffer- the data to addoffset- the start offset in the datalength- the number of bytes to add
-
close
void close()
-
flush
void flush()
-
-
-
-