Top Description Fields Constructors Methods
io.netty5.handler.codec.http.websocketx.extensions.compression

pack-priv abstract Class DeflateEncoder

extends WebSocketExtensionEncoder
Class Inheritance
Known Direct Subclasses
io.netty5.handler.codec.http.websocketx.extensions.compression.PerFrameDeflateEncoder, io.netty5.handler.codec.http.websocketx.extensions.compression.PerMessageDeflateEncoder
Imports
io.netty5.buffer.Buffer, .CompositeBuffer, io.netty5.util.Send, io.netty5.channel.ChannelHandlerContext, io.netty5.channel.embedded.EmbeddedChannel, io.netty5.handler.codec.CodecException, io.netty5.handler.codec.compression.ZlibCodecFactory, .ZlibWrapper, io.netty5.handler.codec.http.websocketx.BinaryWebSocketFrame, .ContinuationWebSocketFrame, .TextWebSocketFrame, .WebSocketFrame, io.netty5.handler.codec.http.websocketx.extensions.WebSocketExtensionEncoder, .WebSocketExtensionFilter, java.util.ArrayList, .List, .Objects, java.util.function.Supplier

Deflate implementation of a payload compressor for io.netty5.handler.codec.http.websocketx.WebSocketFrame.

Field Summary

Modifier and TypeField and Description
private final int
pack-priv static final Supplier<Buffer>
private EmbeddedChannel
private final WebSocketExtensionFilter
private final boolean
private final int

Constructor Summary

AccessConstructor and Description
pack-priv
DeflateEncoder(int
compression level of the compressor.
compressionLevel
,
int
maximum size of the window compressor buffer.
windowSize
,
boolean
true to disable context takeover.
noContext
,
WebSocketExtensionFilter
extension encoder filter.
extensionEncoderFilter
)

Constructor

Method Summary

Modifier and TypeMethod and Description
private void
private Buffer
protected void
encodeAndClose(ChannelHandlerContext ctx, WebSocketFrame
the message to encode to another one.
msg
,
List<Object>
the List into which produced output messages should be added.
out
)

Overrides io.netty5.handler.codec.MessageToMessageEncoder.encodeAndClose.

Encode from one message to another.
protected WebSocketExtensionFilter
extensionEncoderFilter()

Returns the extension encoder filter.

public void
handlerRemoved(ChannelHandlerContext ctx)

Overrides default io.netty5.channel.ChannelHandler.handlerRemoved.

Gets called after the ChannelHandler was removed from the actual context and it doesn't handle events anymore.
protected abstract boolean

Returns:

true if compressed payload tail needs to be removed.
removeFrameTail
(WebSocketFrame
the current frame.
msg
)

protected abstract int

Returns:

the rsv bits to set in the compressed frame.
rsv
(WebSocketFrame
the current frame.
msg
)

Field Detail

compressionLevelback to summary
private final int compressionLevel
EMPTY_DEFLATE_BLOCKback to summary
pack-priv static final Supplier<Buffer> EMPTY_DEFLATE_BLOCK
encoderback to summary
private EmbeddedChannel encoder
extensionEncoderFilterback to summary
private final WebSocketExtensionFilter extensionEncoderFilter
noContextback to summary
private final boolean noContext
windowSizeback to summary
private final int windowSize

Constructor Detail

DeflateEncoderback to summary
pack-priv DeflateEncoder(int compressionLevel, int windowSize, boolean noContext, WebSocketExtensionFilter extensionEncoderFilter)

Constructor

Parameters
compressionLevel:int

compression level of the compressor.

windowSize:int

maximum size of the window compressor buffer.

noContext:boolean

true to disable context takeover.

extensionEncoderFilter:WebSocketExtensionFilter

extension encoder filter.

Method Detail

cleanupback to summary
private void cleanup()
compressContentback to summary
private Buffer compressContent(ChannelHandlerContext ctx, WebSocketFrame msg)
encodeAndCloseback to summary
protected void encodeAndClose(ChannelHandlerContext ctx, WebSocketFrame msg, List<Object> out) throws Exception

Overrides io.netty5.handler.codec.MessageToMessageEncoder.encodeAndClose.

Doc from io.netty5.handler.codec.MessageToMessageEncoder.encodeAndClose.

Encode from one message to another. This method will be called for each written message that can be handled by this encoder.

The message will not be automatically disposed of after this call. Instead, the responsibility of ensuring that messages are disposed of falls upon the implementor of this method.

Subclasses that wish to have incoming messages automatically disposed of should instead override the encode(ChannelHandlerContext, Object, List) method.

Parameters
ctx:ChannelHandlerContext

the ChannelHandlerContext which this MessageToMessageEncoder belongs to.

msg:WebSocketFrame

the message to encode to another one.

out:List<Object>

the List into which produced output messages should be added.

Annotations
@Override
Exceptions
Exception:
is thrown if an error occurs.
extensionEncoderFilterback to summary
protected WebSocketExtensionFilter extensionEncoderFilter()

Returns the extension encoder filter.

handlerRemovedback to summary
public void handlerRemoved(ChannelHandlerContext ctx) throws Exception

Overrides default io.netty5.channel.ChannelHandler.handlerRemoved.

Doc from io.netty5.channel.ChannelHandler.handlerRemoved.

Gets called after the ChannelHandler was removed from the actual context and it doesn't handle events anymore.

Annotations
@Override
removeFrameTailback to summary
protected abstract boolean removeFrameTail(WebSocketFrame msg)
Parameters
msg:WebSocketFrame

the current frame.

Returns:boolean

true if compressed payload tail needs to be removed.

rsvback to summary
protected abstract int rsv(WebSocketFrame msg)
Parameters
msg:WebSocketFrame

the current frame.

Returns:int

the rsv bits to set in the compressed frame.