Class ZeroCopyConsumer<T>

  • All Implemented Interfaces:
    Closeable, AutoCloseable, org.apache.http.concurrent.Cancellable, org.apache.http.nio.protocol.HttpAsyncResponseConsumer<T>

    public abstract class ZeroCopyConsumer<T>
    extends org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
    HttpAsyncResponseConsumer implementation that streams content entity enclosed in an HTTP response directly into a file without an intermediate in-memory buffer.

    This consumer can be useful for file downloads.

    Since:
    4.0
    • Method Detail

      • onResponseReceived

        protected void onResponseReceived​(org.apache.http.HttpResponse response)
        Specified by:
        onResponseReceived in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
      • onEntityEnclosed

        protected void onEntityEnclosed​(org.apache.http.HttpEntity entity,
                                        org.apache.http.entity.ContentType contentType)
                                 throws IOException
        Specified by:
        onEntityEnclosed in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
        Throws:
        IOException
      • onContentReceived

        protected void onContentReceived​(org.apache.http.nio.ContentDecoder decoder,
                                         org.apache.http.nio.IOControl ioctrl)
                                  throws IOException
        Specified by:
        onContentReceived in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
        Throws:
        IOException
      • process

        protected abstract T process​(org.apache.http.HttpResponse response,
                                     File file,
                                     org.apache.http.entity.ContentType contentType)
                              throws Exception
        Invoked to process received file.
        Parameters:
        response - original response head.
        file - file containing response content.
        contentType - the cotnent type.
        Returns:
        result of the response processing
        Throws:
        Exception
      • buildResult

        protected T buildResult​(org.apache.http.protocol.HttpContext context)
                         throws Exception
        Specified by:
        buildResult in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>
        Throws:
        Exception
      • releaseResources

        protected void releaseResources()
        Specified by:
        releaseResources in class org.apache.http.nio.protocol.AbstractAsyncResponseConsumer<T>