Class AbstractCoalescingBufferQueue
java.lang.Object
io.netty.channel.AbstractCoalescingBufferQueue
- Direct Known Subclasses:
CoalescingBufferQueue
-
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedAbstractCoalescingBufferQueue(Channel channel, int initSize) Create a new instance. -
Method Summary
Modifier and TypeMethodDescriptionfinal voidAdd a buffer to the end of the queue.final voidadd(ByteBuf buf, ChannelFutureListener listener) Add a buffer to the end of the queue and associate a listener with it that should be completed when all the buffers bytes have been consumed from the queue and written.final voidadd(ByteBuf buf, ChannelPromise promise) Add a buffer to the end of the queue and associate a promise with it that should be completed when all the buffer's bytes have been consumed from the queue and written.final voidaddFirst(ByteBuf buf, ChannelPromise promise) Add a buffer to the front of the queue and associate a promise with it that should be completed when all the buffer's bytes have been consumed from the queue and written.protected abstract ByteBufcompose(ByteBufAllocator alloc, ByteBuf cumulation, ByteBuf next) Calculate the result ofcurrent + next.protected ByteBufcomposeFirst(ByteBufAllocator allocator, ByteBuf first) Deprecated.Use {AbstractCoalescingBufferQueue#composeFirst(ByteBufAllocator, ByteBuf, int)}protected ByteBufcomposeFirst(ByteBufAllocator allocator, ByteBuf first, int bufferSize) Calculate the firstByteBufwhich will be used in subsequent calls tocompose(ByteBufAllocator, ByteBuf, ByteBuf).protected final ByteBufcomposeIntoComposite(ByteBufAllocator alloc, ByteBuf cumulation, ByteBuf next) protected final ByteBufcopyAndCompose(ByteBufAllocator alloc, ByteBuf cumulation, ByteBuf next) final voidCopy all pending entries in this queue into the destination queue.final booleanisEmpty()Are there pending buffers in the queue.final intThe number of readable bytes.final voidreleaseAndFailAll(ChannelOutboundInvoker invoker, Throwable cause) Release all buffers in the queue and complete all listeners and promises.final ByteBufremove(ByteBufAllocator alloc, int bytes, ChannelPromise aggregatePromise) Remove aByteBuffrom the queue with the specified number of bytes.protected abstract ByteBufThe value to return whenremove(ByteBufAllocator, int, ChannelPromise)is called but the queue is empty.final ByteBufremoveFirst(ChannelPromise aggregatePromise) Remove the firstByteBuffrom the queue.protected final intsize()Get the number of elements in this queue added via one of theadd(ByteBuf)methods.toString()final voidWrites all remaining elements in this queue.
-
Constructor Details
-
AbstractCoalescingBufferQueue
Create a new instance.- Parameters:
channel- theChannelwhich will have theChannel.isWritable()reflect the amount of queued buffers ornullif there is no writability state updated.initSize- the initial size of the underlying queue.
-
-
Method Details
-
addFirst
Add a buffer to the front of the queue and associate a promise with it that should be completed when all the buffer's bytes have been consumed from the queue and written.- Parameters:
buf- to add to the head of the queuepromise- to complete when all the bytes have been consumed and written, can be void.
-
add
Add a buffer to the end of the queue. -
add
Add a buffer to the end of the queue and associate a promise with it that should be completed when all the buffer's bytes have been consumed from the queue and written.- Parameters:
buf- to add to the tail of the queuepromise- to complete when all the bytes have been consumed and written, can be void.
-
add
Add a buffer to the end of the queue and associate a listener with it that should be completed when all the buffers bytes have been consumed from the queue and written.- Parameters:
buf- to add to the tail of the queuelistener- to notify when all the bytes have been consumed and written, can benull.
-
removeFirst
-
remove
Remove aByteBuffrom the queue with the specified number of bytes. Any added buffer who's bytes are fully consumed during removal will have it's promise completed when the passed aggregateChannelPromisecompletes.- Parameters:
alloc- The allocator used if a newByteBufis generated during the aggregation process.bytes- the maximum number of readable bytes in the returnedByteBuf, ifbytesis greater thanreadableBytesthen a buffer of lengthreadableBytesis returned.aggregatePromise- used to aggregate the promises and listeners for the constituent buffers.- Returns:
- a
ByteBufcomposed of the enqueued buffers.
-
readableBytes
public final int readableBytes()The number of readable bytes. -
isEmpty
public final boolean isEmpty()Are there pending buffers in the queue. -
releaseAndFailAll
Release all buffers in the queue and complete all listeners and promises. -
copyTo
Copy all pending entries in this queue into the destination queue.- Parameters:
dest- to copy pending buffers to.
-
writeAndRemoveAll
Writes all remaining elements in this queue.- Parameters:
ctx- The context to write all elements to.
-
toString
-
compose
Calculate the result ofcurrent + next. -
composeIntoComposite
protected final ByteBuf composeIntoComposite(ByteBufAllocator alloc, ByteBuf cumulation, ByteBuf next) -
copyAndCompose
- Parameters:
alloc- The allocator to use to allocate the new buffer.cumulation- The current cumulation.next- The next buffer.- Returns:
- The result of
cumulation + next.
-
composeFirst
Calculate the firstByteBufwhich will be used in subsequent calls tocompose(ByteBufAllocator, ByteBuf, ByteBuf).- Parameters:
bufferSize- the optimal size of the buffer needed for cumulation- Returns:
- the first buffer
-
composeFirst
Deprecated.Use {AbstractCoalescingBufferQueue#composeFirst(ByteBufAllocator, ByteBuf, int)}Calculate the firstByteBufwhich will be used in subsequent calls tocompose(ByteBufAllocator, ByteBuf, ByteBuf). This method is deprecated and will be removed in the future. Implementing classes should overridecomposeFirst(ByteBufAllocator, ByteBuf, int)instead. -
removeEmptyValue
The value to return whenremove(ByteBufAllocator, int, ChannelPromise)is called but the queue is empty.- Returns:
- the
ByteBufwhich represents an empty queue.
-
size
protected final int size()Get the number of elements in this queue added via one of theadd(ByteBuf)methods.- Returns:
- the number of elements in this queue.
-