Class AsyncCachingExec

  • All Implemented Interfaces:
    AsyncExecChainHandler

    @Contract(threading=SAFE)
    class AsyncCachingExec
    extends CachingExecBase
    implements AsyncExecChainHandler
    Request executor in the request execution chain that is responsible for transparent client-side caching.

    The current implementation is conditionally compliant with HTTP/1.1 (meaning all the MUST and MUST NOTs are obeyed), although quite a lot, though not all, of the SHOULDs and SHOULD NOTs are obeyed too.

    Since:
    5.0
    • Method Detail

      • execute

        public void execute​(org.apache.hc.core5.http.HttpRequest request,
                            org.apache.hc.core5.http.nio.AsyncEntityProducer entityProducer,
                            AsyncExecChain.Scope scope,
                            AsyncExecChain chain,
                            AsyncExecCallback asyncExecCallback)
                     throws org.apache.hc.core5.http.HttpException,
                            java.io.IOException
        Description copied from interface: AsyncExecChainHandler
        Executes the actual HTTP request. The handler can choose to return a response message immediately inside the call or asynchronously at some later point or delegate request execution to the next element in the execution chain.
        Specified by:
        execute in interface AsyncExecChainHandler
        Parameters:
        request - the actual request.
        entityProducer - the request entity producer or null if the request does not enclose an entity.
        scope - the execution scope .
        chain - the next element in the request execution chain.
        asyncExecCallback - the execution callback.
        Throws:
        org.apache.hc.core5.http.HttpException - If a protocol error occurs.
        java.io.IOException - If an I/O error occurs.
      • doExecute

        public void doExecute​(org.apache.hc.core5.http.HttpHost target,
                              org.apache.hc.core5.http.HttpRequest request,
                              org.apache.hc.core5.http.nio.AsyncEntityProducer entityProducer,
                              AsyncExecChain.Scope scope,
                              AsyncExecChain chain,
                              AsyncExecCallback asyncExecCallback)
                       throws org.apache.hc.core5.http.HttpException,
                              java.io.IOException
        Throws:
        org.apache.hc.core5.http.HttpException
        java.io.IOException
      • callBackend

        void callBackend​(org.apache.hc.core5.http.HttpHost target,
                         org.apache.hc.core5.http.HttpRequest request,
                         org.apache.hc.core5.http.nio.AsyncEntityProducer entityProducer,
                         AsyncExecChain.Scope scope,
                         AsyncExecChain chain,
                         AsyncExecCallback asyncExecCallback)
      • negotiateResponseFromVariants

        void negotiateResponseFromVariants​(org.apache.hc.core5.http.HttpHost target,
                                           org.apache.hc.core5.http.HttpRequest request,
                                           org.apache.hc.core5.http.nio.AsyncEntityProducer entityProducer,
                                           AsyncExecChain.Scope scope,
                                           AsyncExecChain chain,
                                           AsyncExecCallback asyncExecCallback,
                                           java.util.Collection<CacheHit> variants)