Package io.netty.handler.ssl
Class SslHandlerCoalescingBufferQueue
- java.lang.Object
-
- io.netty.channel.AbstractCoalescingBufferQueue
-
- io.netty.handler.ssl.SslHandlerCoalescingBufferQueue
-
abstract class SslHandlerCoalescingBufferQueue extends AbstractCoalescingBufferQueue
Each call to SSL_write will introduce about ~100 bytes of overhead. This coalescing queue attempts to increase goodput by aggregating the plaintext in chunks ofwrapDataSize()
. If many small chunks are written this can increase goodput, decrease the amount of calls to SSL_write, and decrease overall encryption operations.
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
wantsDirectBuffer
-
Constructor Summary
Constructors Constructor Description SslHandlerCoalescingBufferQueue(Channel channel, int initSize, boolean wantsDirectBuffer)
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description private static boolean
attemptCopyToCumulation(ByteBuf cumulation, ByteBuf next, int wrapDataSize)
protected ByteBuf
compose(ByteBufAllocator alloc, ByteBuf cumulation, ByteBuf next)
Calculate the result ofcurrent + next
.protected ByteBuf
composeFirst(ByteBufAllocator allocator, ByteBuf first, int bufferSize)
Calculate the firstByteBuf
which will be used in subsequent calls toAbstractCoalescingBufferQueue.compose(ByteBufAllocator, ByteBuf, ByteBuf)
.protected ByteBuf
removeEmptyValue()
The value to return whenAbstractCoalescingBufferQueue.remove(ByteBufAllocator, int, ChannelPromise)
is called but the queue is empty.protected abstract int
wrapDataSize()
-
Methods inherited from class io.netty.channel.AbstractCoalescingBufferQueue
add, add, add, addFirst, composeFirst, composeIntoComposite, copyAndCompose, copyTo, isEmpty, readableBytes, releaseAndFailAll, remove, removeFirst, size, toString, writeAndRemoveAll
-
-
-
-
Constructor Detail
-
SslHandlerCoalescingBufferQueue
SslHandlerCoalescingBufferQueue(Channel channel, int initSize, boolean wantsDirectBuffer)
-
-
Method Detail
-
wrapDataSize
protected abstract int wrapDataSize()
-
compose
protected ByteBuf compose(ByteBufAllocator alloc, ByteBuf cumulation, ByteBuf next)
Description copied from class:AbstractCoalescingBufferQueue
Calculate the result ofcurrent + next
.- Specified by:
compose
in classAbstractCoalescingBufferQueue
-
composeFirst
protected ByteBuf composeFirst(ByteBufAllocator allocator, ByteBuf first, int bufferSize)
Description copied from class:AbstractCoalescingBufferQueue
Calculate the firstByteBuf
which will be used in subsequent calls toAbstractCoalescingBufferQueue.compose(ByteBufAllocator, ByteBuf, ByteBuf)
.- Overrides:
composeFirst
in classAbstractCoalescingBufferQueue
bufferSize
- the optimal size of the buffer needed for cumulation- Returns:
- the first buffer
-
removeEmptyValue
protected ByteBuf removeEmptyValue()
Description copied from class:AbstractCoalescingBufferQueue
The value to return whenAbstractCoalescingBufferQueue.remove(ByteBufAllocator, int, ChannelPromise)
is called but the queue is empty.- Specified by:
removeEmptyValue
in classAbstractCoalescingBufferQueue
- Returns:
- the
ByteBuf
which represents an empty queue.
-
-