Top Description Inners Fields Constructors Methods
io.netty.handler.codec.http2

public Class DelegatingDecompressorFrameListener

extends Http2FrameListenerDecorator
Class Inheritance
Annotations
@UnstableApi
Imports
io.netty.buffer.ByteBuf, .Unpooled, io.netty.channel.ChannelHandlerContext, io.netty.channel.embedded.EmbeddedChannel, io.netty.handler.codec.ByteToMessageDecoder, io.netty.handler.codec.compression.Brotli, .BrotliDecoder, .ZlibCodecFactory, .ZlibWrapper, .SnappyFrameDecoder, io.netty.util.internal.UnstableApi

An HTTP2 frame listener that will decompress data frames according to the content-encoding header for each stream. The decompression provided by this class will be applied to the data for the entire stream.

Nested and Inner Type Summary

Modifier and TypeClass and Description
private class
DelegatingDecompressorFrameListener.ConsumedBytesConverter

A decorator around the local flow controller that converts consumed bytes from uncompressed to compressed.

private static class
DelegatingDecompressorFrameListener.Http2Decompressor

Provides the state for stream DATA frame decompression.

Field Summary

Modifier and TypeField and Description
private final Http2Connection
private boolean
private final Http2Connection.PropertyKey
private final boolean
Inherited from io.netty.handler.codec.http2.Http2FrameListenerDecorator:
listener

Constructor Summary

AccessConstructor and Description
public
public

Method Summary

Modifier and TypeMethod and Description
private static void
cleanup(DelegatingDecompressorFrameListener.Http2Decompressor
The decompressor for stream
decompressor
)

Release remaining content from the EmbeddedChannel.

pack-priv DelegatingDecompressorFrameListener.Http2Decompressor
protected CharSequence

Returns:

the expected content encoding of the new content.
getTargetContentEncoding
(CharSequence
the value of the content-encoding header
contentEncoding
)

Returns the expected content encoding of the decoded content.

private void
initDecompressor(ChannelHandlerContext
The context
ctx
,
int
The identifier for the headers inside headers
streamId
,
Http2Headers
Object representing headers which have been read
headers
,
boolean
Indicates if the stream has ended
endOfStream
)

Checks if a new decompressor object is needed for the stream identified by streamId.

protected EmbeddedChannel

Returns:

a new ByteToMessageDecoder if the specified encoding is supported. null otherwise (alternatively, you can throw a Http2Exception to block unknown encoding).
newContentDecompressor
(final ChannelHandlerContext ctx, CharSequence
the value of the content-encoding header
contentEncoding
)

Returns a new EmbeddedChannel that decodes the HTTP2 message content encoded in the specified contentEncoding.

private static ByteBuf

Returns:

The next decoded ByteBuf from the EmbeddedChannel or null if one does not exist
nextReadableBuf
(EmbeddedChannel
The channel to read from
decompressor
)

Read the next decompressed ByteBuf from the EmbeddedChannel or null if one does not exist.

public int
onDataRead(ChannelHandlerContext
the context from the handler where the frame was read.
ctx
,
int
the subject stream for the frame.
streamId
,
ByteBuf
payload buffer for the frame. This buffer will be released by the codec.
data
,
int
additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).
padding
,
boolean
Indicates whether this is the last frame to be sent from the remote endpoint for this stream.
endOfStream
)

Overrides io.netty.handler.codec.http2.Http2FrameListenerDecorator.onDataRead.

Implements io.netty.handler.codec.http2.Http2FrameListener.onDataRead.

Handles an inbound DATA frame.
public void
onHeadersRead(ChannelHandlerContext
the context from the handler where the frame was read.
ctx
,
int
the subject stream for the frame.
streamId
,
Http2Headers
the received headers.
headers
,
int
additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).
padding
,
boolean
Indicates whether this is the last frame to be sent from the remote endpoint for this stream.
endStream
)

Overrides io.netty.handler.codec.http2.Http2FrameListenerDecorator.onHeadersRead.

Implements io.netty.handler.codec.http2.Http2FrameListener.onHeadersRead.

Handles an inbound HEADERS frame.
public void
onHeadersRead(ChannelHandlerContext
the context from the handler where the frame was read.
ctx
,
int
the subject stream for the frame.
streamId
,
Http2Headers
the received headers.
headers
,
int
the stream on which this stream depends, or 0 if dependent on the connection.
streamDependency
,
short
the new weight for the stream.
weight
,
boolean
whether or not the stream should be the exclusive dependent of its parent.
exclusive
,
int
additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).
padding
,
boolean
Indicates whether this is the last frame to be sent from the remote endpoint for this stream.
endStream
)

Overrides io.netty.handler.codec.http2.Http2FrameListenerDecorator.onHeadersRead.

Implements io.netty.handler.codec.http2.Http2FrameListener.onHeadersRead.

Handles an inbound HEADERS frame with priority information specified.
Inherited from io.netty.handler.codec.http2.Http2FrameListenerDecorator:
onGoAwayReadonPingAckReadonPingReadonPriorityReadonPushPromiseReadonRstStreamReadonSettingsAckReadonSettingsReadonUnknownFrameonWindowUpdateRead

Field Detail

connectionback to summary
private final Http2Connection connection
flowControllerInitializedback to summary
private boolean flowControllerInitialized
propertyKeyback to summary
private final Http2Connection.PropertyKey propertyKey
strictback to summary
private final boolean strict

Constructor Detail

DelegatingDecompressorFrameListenerback to summary
public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener)
DelegatingDecompressorFrameListenerback to summary
public DelegatingDecompressorFrameListener(Http2Connection connection, Http2FrameListener listener, boolean strict)

Method Detail

cleanupback to summary
private static void cleanup(DelegatingDecompressorFrameListener.Http2Decompressor decompressor)

Release remaining content from the EmbeddedChannel.

Parameters
decompressor:DelegatingDecompressorFrameListener.Http2Decompressor

The decompressor for stream

decompressorback to summary
pack-priv DelegatingDecompressorFrameListener.Http2Decompressor decompressor(Http2Stream stream)
getTargetContentEncodingback to summary
protected CharSequence getTargetContentEncoding(CharSequence contentEncoding) throws Http2Exception

Returns the expected content encoding of the decoded content. This getMethod returns "identity" by default, which is the case for most decompressors.

Parameters
contentEncoding:CharSequence

the value of the content-encoding header

Returns:CharSequence

the expected content encoding of the new content.

Exceptions
Http2Exception:
if the contentEncoding is not supported and warrants an exception
initDecompressorback to summary
private void initDecompressor(ChannelHandlerContext ctx, int streamId, Http2Headers headers, boolean endOfStream) throws Http2Exception

Checks if a new decompressor object is needed for the stream identified by streamId. This method will modify the content-encoding header contained in headers.

Parameters
ctx:ChannelHandlerContext

The context

streamId:int

The identifier for the headers inside headers

headers:Http2Headers

Object representing headers which have been read

endOfStream:boolean

Indicates if the stream has ended

Exceptions
Http2Exception:
If the content-encoding is not supported
newContentDecompressorback to summary
protected EmbeddedChannel newContentDecompressor(final ChannelHandlerContext ctx, CharSequence contentEncoding) throws Http2Exception

Returns a new EmbeddedChannel that decodes the HTTP2 message content encoded in the specified contentEncoding.

Parameters
contentEncoding:CharSequence

the value of the content-encoding header

Returns:EmbeddedChannel

a new ByteToMessageDecoder if the specified encoding is supported. null otherwise (alternatively, you can throw a Http2Exception to block unknown encoding).

Exceptions
Http2Exception:
If the specified encoding is not supported and warrants an exception
nextReadableBufback to summary
private static ByteBuf nextReadableBuf(EmbeddedChannel decompressor)

Read the next decompressed ByteBuf from the EmbeddedChannel or null if one does not exist.

Parameters
decompressor:EmbeddedChannel

The channel to read from

Returns:ByteBuf

The next decoded ByteBuf from the EmbeddedChannel or null if one does not exist

onDataReadback to summary
public int onDataRead(ChannelHandlerContext ctx, int streamId, ByteBuf data, int padding, boolean endOfStream) throws Http2Exception

Overrides io.netty.handler.codec.http2.Http2FrameListenerDecorator.onDataRead.

Implements io.netty.handler.codec.http2.Http2FrameListener.onDataRead.

Doc from io.netty.handler.codec.http2.Http2FrameListener.onDataRead.

Handles an inbound DATA frame.

Parameters
ctx:ChannelHandlerContext

the context from the handler where the frame was read.

streamId:int

the subject stream for the frame.

data:ByteBuf

payload buffer for the frame. This buffer will be released by the codec.

padding:int

additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).

endOfStream:boolean

Indicates whether this is the last frame to be sent from the remote endpoint for this stream.

Returns:int

the number of bytes that have been processed by the application. The returned bytes are used by the inbound flow controller to determine the appropriate time to expand the inbound flow control window (i.e. send WINDOW_UPDATE). Returning a value equal to the length of data + padding will effectively opt-out of application-level flow control for this frame. Returning a value less than the length of data + padding will defer the returning of the processed bytes, which the application must later return via Http2LocalFlowController#consumeBytes(Http2Stream, int). The returned value must be >= 0 and <= data.readableBytes() + padding.

Annotations
@Override
onHeadersReadback to summary
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int padding, boolean endStream) throws Http2Exception

Overrides io.netty.handler.codec.http2.Http2FrameListenerDecorator.onHeadersRead.

Implements io.netty.handler.codec.http2.Http2FrameListener.onHeadersRead.

Doc from io.netty.handler.codec.http2.Http2FrameListener.onHeadersRead.

Handles an inbound HEADERS frame.

Only one of the following methods will be called for each HEADERS frame sequence. One will be called when the END_HEADERS flag has been received.

To say it another way; the Http2Headers will contain all of the headers for the current message exchange step (additional queuing is not necessary).

Parameters
ctx:ChannelHandlerContext

the context from the handler where the frame was read.

streamId:int

the subject stream for the frame.

headers:Http2Headers

the received headers.

padding:int

additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).

endStream:boolean

Indicates whether this is the last frame to be sent from the remote endpoint for this stream.

Annotations
@Override
onHeadersReadback to summary
public void onHeadersRead(ChannelHandlerContext ctx, int streamId, Http2Headers headers, int streamDependency, short weight, boolean exclusive, int padding, boolean endStream) throws Http2Exception

Overrides io.netty.handler.codec.http2.Http2FrameListenerDecorator.onHeadersRead.

Implements io.netty.handler.codec.http2.Http2FrameListener.onHeadersRead.

Doc from io.netty.handler.codec.http2.Http2FrameListener.onHeadersRead.

Handles an inbound HEADERS frame with priority information specified. Only called if END_HEADERS encountered.

Only one of the following methods will be called for each HEADERS frame sequence. One will be called when the END_HEADERS flag has been received.

To say it another way; the Http2Headers will contain all of the headers for the current message exchange step (additional queuing is not necessary).

Parameters
ctx:ChannelHandlerContext

the context from the handler where the frame was read.

streamId:int

the subject stream for the frame.

headers:Http2Headers

the received headers.

streamDependency:int

the stream on which this stream depends, or 0 if dependent on the connection.

weight:short

the new weight for the stream.

exclusive:boolean

whether or not the stream should be the exclusive dependent of its parent.

padding:int

additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).

endStream:boolean

Indicates whether this is the last frame to be sent from the remote endpoint for this stream.

Annotations
@Override
io.netty.handler.codec.http2 back to summary

private final Class DelegatingDecompressorFrameListener.ConsumedBytesConverter

extends Object
implements Http2LocalFlowController
Class Inheritance
  • java.lang.Object
  • io.netty.handler.codec.http2.DelegatingDecompressorFrameListener.ConsumedBytesConverter
All Implemented Interfaces
io.netty.handler.codec.http2.Http2LocalFlowController, io.netty.handler.codec.http2.Http2FlowController

A decorator around the local flow controller that converts consumed bytes from uncompressed to compressed.

Field Summary

Modifier and TypeField and Description
private final Http2LocalFlowController

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
public void
channelHandlerContext(ChannelHandlerContext
The ChannelHandlerContext for which to apply flow control on.
ctx
)

Implements io.netty.handler.codec.http2.Http2FlowController.channelHandlerContext.

Set the ChannelHandlerContext for which to apply flow control on.
public boolean
consumeBytes(Http2Stream
the stream for which window space should be freed. The connection stream object must not be used. If stream is null or closed (i.e. Http2Stream#state() method returns Http2Stream.State#CLOSED), calling this method has no effect.
stream
,
int
the number of bytes to be returned to the flow control window.
numBytes
)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.consumeBytes.

Indicates that the application has consumed a number of bytes for the given stream and is therefore ready to receive more data from the remote endpoint.
public Http2LocalFlowController
frameWriter(Http2FrameWriter
the HTTP/2 frame writer.
frameWriter
)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.frameWriter.

Sets the writer to be use for sending WINDOW_UPDATE frames.
public void
incrementWindowSize(Http2Stream
The subject stream. Use Http2Connection#connectionStream() for requesting the size of the connection window.
stream
,
int
the change in size of the flow control window.
delta
)

Implements io.netty.handler.codec.http2.Http2FlowController.incrementWindowSize.

Increments the size of the stream's flow control window by the given delta.
public void
initialWindowSize(int
the new initial window size.
newWindowSize
)

Implements io.netty.handler.codec.http2.Http2FlowController.initialWindowSize.

Sets the connection-wide initial flow control window and updates all stream windows (but not the connection stream window) by the delta.
public int
initialWindowSize()

Implements io.netty.handler.codec.http2.Http2FlowController.initialWindowSize.

Gets the connection-wide initial flow control window size that is used as the basis for new stream flow control windows.
public int
initialWindowSize(Http2Stream stream)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.initialWindowSize.

Get the initial flow control window size for the given stream.
public void
receiveFlowControlledFrame(Http2Stream
the subject stream for the received frame. The connection stream object must not be used. If stream is null or closed, flow control should only be applied to the connection window and the bytes are immediately consumed.
stream
,
ByteBuf
payload buffer for the frame.
data
,
int
additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).
padding
,
boolean
Indicates whether this is the last frame to be sent from the remote endpoint for this stream.
endOfStream
)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.receiveFlowControlledFrame.

Receives an inbound DATA frame from the remote endpoint and applies flow control policies to it for both the stream as well as the connection.
public int
unconsumedBytes(Http2Stream
the stream for which window space should be freed.
stream
)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.unconsumedBytes.

The number of bytes for the given stream that have been received but not yet consumed by the application.
public int
windowSize(Http2Stream stream)

Implements io.netty.handler.codec.http2.Http2FlowController.windowSize.

Get the portion of the flow control window for the given stream that is currently available for sending/receiving frames which are subject to flow control.
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

flowControllerback to summary
private final Http2LocalFlowController flowController

Constructor Detail

ConsumedBytesConverterback to summary
pack-priv ConsumedBytesConverter(Http2LocalFlowController flowController)

Method Detail

channelHandlerContextback to summary
public void channelHandlerContext(ChannelHandlerContext ctx) throws Http2Exception

Implements io.netty.handler.codec.http2.Http2FlowController.channelHandlerContext.

Doc from io.netty.handler.codec.http2.Http2FlowController.channelHandlerContext.

Set the ChannelHandlerContext for which to apply flow control on.

This must be called to properly initialize the Http2FlowController. Not calling this is considered a programming error.

Parameters
ctx:ChannelHandlerContext

The ChannelHandlerContext for which to apply flow control on.

Annotations
@Override
Exceptions
Http2Exception:
if any protocol-related error occurred.
consumeBytesback to summary
public boolean consumeBytes(Http2Stream stream, int numBytes) throws Http2Exception

Implements io.netty.handler.codec.http2.Http2LocalFlowController.consumeBytes.

Doc from io.netty.handler.codec.http2.Http2LocalFlowController.consumeBytes.

Indicates that the application has consumed a number of bytes for the given stream and is therefore ready to receive more data from the remote endpoint. The application must consume any bytes that it receives or the flow control window will collapse. Consuming bytes enables the flow controller to send WINDOW_UPDATE to restore a portion of the flow control window for the stream.

If stream is null or closed (i.e. Http2Stream#state() method returns Http2Stream.State#CLOSED), calling this method has no effect.

Parameters
stream:Http2Stream

the stream for which window space should be freed. The connection stream object must not be used. If stream is null or closed (i.e. Http2Stream#state() method returns Http2Stream.State#CLOSED), calling this method has no effect.

numBytes:int

the number of bytes to be returned to the flow control window.

Returns:boolean

true if a WINDOW_UPDATE was sent, false otherwise.

Annotations
@Override
Exceptions
Http2Exception:
if the number of bytes returned exceeds the unconsumedBytes(Http2Stream) for the stream.
frameWriterback to summary
public Http2LocalFlowController frameWriter(Http2FrameWriter frameWriter)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.frameWriter.

Doc from io.netty.handler.codec.http2.Http2LocalFlowController.frameWriter.

Sets the writer to be use for sending WINDOW_UPDATE frames. This must be called before any flow controlled data is received.

Parameters
frameWriter:Http2FrameWriter

the HTTP/2 frame writer.

Annotations
@Override
incrementWindowSizeback to summary
public void incrementWindowSize(Http2Stream stream, int delta) throws Http2Exception

Implements io.netty.handler.codec.http2.Http2FlowController.incrementWindowSize.

Doc from io.netty.handler.codec.http2.Http2FlowController.incrementWindowSize.

Increments the size of the stream's flow control window by the given delta.

In the case of a Http2RemoteFlowController this is called upon receipt of a WINDOW_UPDATE frame from the remote endpoint to mirror the changes to the window size.

For a Http2LocalFlowController this can be called to request the expansion of the window size published by this endpoint. It is up to the implementation, however, as to when a WINDOW_UPDATE is actually sent.

Parameters
stream:Http2Stream

The subject stream. Use Http2Connection#connectionStream() for requesting the size of the connection window.

delta:int

the change in size of the flow control window.

Annotations
@Override
Exceptions
Http2Exception:
thrown if a protocol-related error occurred.
initialWindowSizeback to summary
public void initialWindowSize(int newWindowSize) throws Http2Exception

Implements io.netty.handler.codec.http2.Http2FlowController.initialWindowSize.

Doc from io.netty.handler.codec.http2.Http2FlowController.initialWindowSize.

Sets the connection-wide initial flow control window and updates all stream windows (but not the connection stream window) by the delta.

Represents the value for SETTINGS_INITIAL_WINDOW_SIZE. This method should only be called by Netty (not users) as a result of a receiving a SETTINGS frame.

Parameters
newWindowSize:int

the new initial window size.

Annotations
@Override
Exceptions
Http2Exception:
thrown if any protocol-related error occurred.
initialWindowSizeback to summary
public int initialWindowSize()

Implements io.netty.handler.codec.http2.Http2FlowController.initialWindowSize.

Doc from io.netty.handler.codec.http2.Http2FlowController.initialWindowSize.

Gets the connection-wide initial flow control window size that is used as the basis for new stream flow control windows.

Represents the value for SETTINGS_INITIAL_WINDOW_SIZE. The initial value returned by this method must be Http2CodecUtil#DEFAULT_WINDOW_SIZE.

Annotations
@Override
initialWindowSizeback to summary
public int initialWindowSize(Http2Stream stream)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.initialWindowSize.

Doc from io.netty.handler.codec.http2.Http2LocalFlowController.initialWindowSize.

Get the initial flow control window size for the given stream. This quantity is measured in number of bytes. Note the unavailable window portion can be calculated by initialWindowSize() - windowSize(Http2Stream).

Annotations
@Override
receiveFlowControlledFrameback to summary
public void receiveFlowControlledFrame(Http2Stream stream, ByteBuf data, int padding, boolean endOfStream) throws Http2Exception

Implements io.netty.handler.codec.http2.Http2LocalFlowController.receiveFlowControlledFrame.

Doc from io.netty.handler.codec.http2.Http2LocalFlowController.receiveFlowControlledFrame.

Receives an inbound DATA frame from the remote endpoint and applies flow control policies to it for both the stream as well as the connection. If any flow control policies have been violated, an exception is raised immediately, otherwise the frame is considered to have "passed" flow control.

If stream is null or closed, flow control should only be applied to the connection window and the bytes are immediately consumed.

Parameters
stream:Http2Stream

the subject stream for the received frame. The connection stream object must not be used. If stream is null or closed, flow control should only be applied to the connection window and the bytes are immediately consumed.

data:ByteBuf

payload buffer for the frame.

padding:int

additional bytes that should be added to obscure the true content size. Must be between 0 and 256 (inclusive).

endOfStream:boolean

Indicates whether this is the last frame to be sent from the remote endpoint for this stream.

Annotations
@Override
Exceptions
Http2Exception:
if any flow control errors are encountered.
unconsumedBytesback to summary
public int unconsumedBytes(Http2Stream stream)

Implements io.netty.handler.codec.http2.Http2LocalFlowController.unconsumedBytes.

Doc from io.netty.handler.codec.http2.Http2LocalFlowController.unconsumedBytes.

The number of bytes for the given stream that have been received but not yet consumed by the application.

Parameters
stream:Http2Stream

the stream for which window space should be freed.

Returns:int

the number of unconsumed bytes for the stream.

Annotations
@Override
windowSizeback to summary
public int windowSize(Http2Stream stream)

Implements io.netty.handler.codec.http2.Http2FlowController.windowSize.

Doc from io.netty.handler.codec.http2.Http2FlowController.windowSize.

Get the portion of the flow control window for the given stream that is currently available for sending/receiving frames which are subject to flow control. This quantity is measured in number of bytes.

Annotations
@Override
io.netty.handler.codec.http2 back to summary

private final Class DelegatingDecompressorFrameListener.Http2Decompressor

extends Object
Class Inheritance
  • java.lang.Object
  • io.netty.handler.codec.http2.DelegatingDecompressorFrameListener.Http2Decompressor

Provides the state for stream DATA frame decompression.

Field Summary

Modifier and TypeField and Description
private int
private int
private final EmbeddedChannel

Constructor Summary

AccessConstructor and Description
pack-priv

Method Summary

Modifier and TypeMethod and Description
pack-priv int

Returns:

The number of pre-decompressed bytes that have been consumed.
consumeBytes
(int
the stream ID
streamId
,
int
The number of post-decompressed bytes to return to flow control
decompressedBytes
)

Determines the ratio between numBytes and Http2Decompressor#decompressed.

pack-priv EmbeddedChannel
decompressor()

Responsible for taking compressed bytes in and producing decompressed bytes.

pack-priv void
incrementCompressedBytes(int delta)

Increment the number of bytes received prior to doing any decompression.

pack-priv void
incrementDecompressedBytes(int delta)

Increment the number of bytes after the decompression process.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

compressedback to summary
private int compressed
decompressedback to summary
private int decompressed
decompressorback to summary
private final EmbeddedChannel decompressor

Constructor Detail

Http2Decompressorback to summary
pack-priv Http2Decompressor(EmbeddedChannel decompressor)

Method Detail

consumeBytesback to summary
pack-priv int consumeBytes(int streamId, int decompressedBytes) throws Http2Exception

Determines the ratio between numBytes and Http2Decompressor#decompressed. This ratio is used to decrement Http2Decompressor#decompressed and Http2Decompressor#compressed.

Parameters
streamId:int

the stream ID

decompressedBytes:int

The number of post-decompressed bytes to return to flow control

Returns:int

The number of pre-decompressed bytes that have been consumed.

decompressorback to summary
pack-priv EmbeddedChannel decompressor()

Responsible for taking compressed bytes in and producing decompressed bytes.

incrementCompressedBytesback to summary
pack-priv void incrementCompressedBytes(int delta)

Increment the number of bytes received prior to doing any decompression.

incrementDecompressedBytesback to summary
pack-priv void incrementDecompressedBytes(int delta)

Increment the number of bytes after the decompression process.