Class PipeliningClientExchangeHandlerImpl<T>

  • All Implemented Interfaces:
    java.io.Closeable, java.lang.AutoCloseable, org.apache.http.concurrent.Cancellable, org.apache.http.nio.protocol.HttpAsyncClientExchangeHandler

    @Pipelined
    class PipeliningClientExchangeHandlerImpl<T>
    extends AbstractClientExchangeHandler
    HttpAsyncClientExchangeHandler implementation that supports HTTP message pipelining.

    Instances of this class are expected to be accessed by one thread at a time only. The AbstractClientExchangeHandler.cancel() method can be called concurrently by multiple threads.

    • Field Detail

      • target

        private final org.apache.http.HttpHost target
      • requestProducerQueue

        private final java.util.Queue<org.apache.http.nio.protocol.HttpAsyncRequestProducer> requestProducerQueue
      • responseConsumerQueue

        private final java.util.Queue<org.apache.http.nio.protocol.HttpAsyncResponseConsumer<T>> responseConsumerQueue
      • requestQueue

        private final java.util.Queue<org.apache.http.HttpRequest> requestQueue
      • resultQueue

        private final java.util.Queue<T> resultQueue
      • localContext

        private final org.apache.http.client.protocol.HttpClientContext localContext
      • resultFuture

        private final org.apache.http.concurrent.BasicFuture<java.util.List<T>> resultFuture
      • httpProcessor

        private final org.apache.http.protocol.HttpProcessor httpProcessor
      • requestProducerRef

        private final java.util.concurrent.atomic.AtomicReference<org.apache.http.nio.protocol.HttpAsyncRequestProducer> requestProducerRef
      • responseConsumerRef

        private final java.util.concurrent.atomic.AtomicReference<org.apache.http.nio.protocol.HttpAsyncResponseConsumer<T>> responseConsumerRef
    • Constructor Detail

      • PipeliningClientExchangeHandlerImpl

        public PipeliningClientExchangeHandlerImpl​(org.apache.commons.logging.Log log,
                                                   org.apache.http.HttpHost target,
                                                   java.util.List<? extends org.apache.http.nio.protocol.HttpAsyncRequestProducer> requestProducers,
                                                   java.util.List<? extends org.apache.http.nio.protocol.HttpAsyncResponseConsumer<T>> responseConsumers,
                                                   org.apache.http.client.protocol.HttpClientContext localContext,
                                                   org.apache.http.concurrent.BasicFuture<java.util.List<T>> resultFuture,
                                                   NHttpClientConnectionManager connmgr,
                                                   org.apache.http.protocol.HttpProcessor httpProcessor,
                                                   org.apache.http.ConnectionReuseStrategy connReuseStrategy,
                                                   org.apache.http.conn.ConnectionKeepAliveStrategy keepaliveStrategy)
    • Method Detail

      • closeProducer

        private void closeProducer​(org.apache.http.nio.protocol.HttpAsyncRequestProducer requestProducer)
      • closeConsumer

        private void closeConsumer​(org.apache.http.nio.protocol.HttpAsyncResponseConsumer<?> responseConsumer)
      • start

        public void start()
                   throws org.apache.http.HttpException,
                          java.io.IOException
        Throws:
        org.apache.http.HttpException
        java.io.IOException
      • generateRequest

        public org.apache.http.HttpRequest generateRequest()
                                                    throws java.io.IOException,
                                                           org.apache.http.HttpException
        Throws:
        java.io.IOException
        org.apache.http.HttpException
      • produceContent

        public void produceContent​(org.apache.http.nio.ContentEncoder encoder,
                                   org.apache.http.nio.IOControl ioctrl)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • requestCompleted

        public void requestCompleted()
      • responseReceived

        public void responseReceived​(org.apache.http.HttpResponse response)
                              throws java.io.IOException,
                                     org.apache.http.HttpException
        Throws:
        java.io.IOException
        org.apache.http.HttpException
      • consumeContent

        public void consumeContent​(org.apache.http.nio.ContentDecoder decoder,
                                   org.apache.http.nio.IOControl ioctrl)
                            throws java.io.IOException
        Throws:
        java.io.IOException
      • responseCompleted

        public void responseCompleted()
                               throws java.io.IOException,
                                      org.apache.http.HttpException
        Throws:
        java.io.IOException
        org.apache.http.HttpException
      • inputTerminated

        public void inputTerminated()
      • abortConnection

        public void abortConnection()