Class GZIPContentDecoder

  • All Implemented Interfaces:
    Destroyable
    Direct Known Subclasses:
    GZIPContentDecoder

    public class GZIPContentDecoder
    extends java.lang.Object
    implements Destroyable

    Decoder for the "gzip" content encoding.

    This decoder inflates gzip compressed data, and has been optimized for async usage with minimal data copies.

    • Constructor Detail

      • GZIPContentDecoder

        public GZIPContentDecoder()
      • GZIPContentDecoder

        public GZIPContentDecoder​(int bufferSize)
      • GZIPContentDecoder

        public GZIPContentDecoder​(ByteBufferPool pool,
                                  int bufferSize)
    • Method Detail

      • decode

        public java.nio.ByteBuffer decode​(java.nio.ByteBuffer compressed)

        Inflates compressed data from a buffer.

        The buffers returned by this method should be released via release(ByteBuffer).

        This method may fully consume the input buffer, but return only a chunk of the inflated bytes, to allow applications to consume the inflated chunk before performing further inflation, applying backpressure. In this case, this method should be invoked again with the same input buffer (even if it's already fully consumed) and that will produce another chunk of inflated bytes. Termination happens when the input buffer is fully consumed, and the returned buffer is empty.

        See decodedChunk(ByteBuffer) to perform inflating in a non-blocking way that allows to apply backpressure.

        Parameters:
        compressed - the buffer containing compressed data.
        Returns:
        a buffer containing inflated data.
      • isFinished

        public boolean isFinished()
      • acquire

        public java.nio.ByteBuffer acquire​(int capacity)
        Parameters:
        capacity - capacity of the ByteBuffer to acquire
        Returns:
        a heap buffer of the configured capacity either from the pool or freshly allocated.