Class DeflatingGzipEntityProducer

java.lang.Object
org.apache.hc.client5.http.async.methods.DeflatingGzipEntityProducer
All Implemented Interfaces:
org.apache.hc.core5.http.EntityDetails, org.apache.hc.core5.http.nio.AsyncDataProducer, org.apache.hc.core5.http.nio.AsyncEntityProducer, org.apache.hc.core5.http.nio.ResourceHolder

public final class DeflatingGzipEntityProducer extends Object implements org.apache.hc.core5.http.nio.AsyncEntityProducer
Streams an AsyncEntityProducer through raw DEFLATE and wraps the result in a valid GZIP container.

Memory usage is bounded (8 KiB buffers) and back-pressure from the I/O reactor is honoured.

Since:
5.6
  • Field Details

    • IN_BUF

      private static final int IN_BUF
      See Also:
    • OUT_BUF

      private static final int OUT_BUF
      See Also:
    • delegate

      private final org.apache.hc.core5.http.nio.AsyncEntityProducer delegate
    • crc

      private final CRC32 crc
    • deflater

      private final Deflater deflater
    • in

      private final byte[] in
    • outBuf

      private final ByteBuffer outBuf
    • headerSent

      private boolean headerSent
    • finished

      private boolean finished
    • uncompressed

      private long uncompressed
    • released

      private final AtomicBoolean released
  • Constructor Details

    • DeflatingGzipEntityProducer

      public DeflatingGzipEntityProducer(org.apache.hc.core5.http.nio.AsyncEntityProducer delegate)
  • Method Details

    • isRepeatable

      public boolean isRepeatable()
      Specified by:
      isRepeatable in interface org.apache.hc.core5.http.nio.AsyncEntityProducer
    • getContentLength

      public long getContentLength()
      Specified by:
      getContentLength in interface org.apache.hc.core5.http.EntityDetails
    • getContentType

      public String getContentType()
      Specified by:
      getContentType in interface org.apache.hc.core5.http.EntityDetails
    • getContentEncoding

      public String getContentEncoding()
      Specified by:
      getContentEncoding in interface org.apache.hc.core5.http.EntityDetails
    • isChunked

      public boolean isChunked()
      Specified by:
      isChunked in interface org.apache.hc.core5.http.EntityDetails
    • getTrailerNames

      public Set<String> getTrailerNames()
      Specified by:
      getTrailerNames in interface org.apache.hc.core5.http.EntityDetails
    • available

      public int available()
      Specified by:
      available in interface org.apache.hc.core5.http.nio.AsyncDataProducer
    • produce

      public void produce(org.apache.hc.core5.http.nio.DataStreamChannel chan) throws IOException
      Specified by:
      produce in interface org.apache.hc.core5.http.nio.AsyncDataProducer
      Throws:
      IOException
    • deflateToOut

      private void deflateToOut()
    • flushOut

      private void flushOut(org.apache.hc.core5.http.nio.DataStreamChannel chan) throws IOException
      Throws:
      IOException
    • failed

      public void failed(Exception cause)
      Specified by:
      failed in interface org.apache.hc.core5.http.nio.AsyncEntityProducer
    • releaseResources

      public void releaseResources()
      Specified by:
      releaseResources in interface org.apache.hc.core5.http.nio.ResourceHolder