Class InternalExecRuntime

java.lang.Object
org.apache.hc.client5.http.impl.classic.InternalExecRuntime
All Implemented Interfaces:
ExecRuntime, org.apache.hc.core5.concurrent.Cancellable

class InternalExecRuntime extends Object implements ExecRuntime, org.apache.hc.core5.concurrent.Cancellable
  • Field Details

    • log

      private final org.slf4j.Logger log
    • manager

      private final HttpClientConnectionManager manager
    • requestExecutor

      private final org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExecutor
    • cancellableDependency

      private final org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency
    • endpointRef

      private final AtomicReference<ConnectionEndpoint> endpointRef
    • reusable

      private volatile boolean reusable
    • state

      private volatile Object state
    • validDuration

      private volatile org.apache.hc.core5.util.TimeValue validDuration
  • Constructor Details

    • InternalExecRuntime

      InternalExecRuntime(org.slf4j.Logger log, HttpClientConnectionManager manager, org.apache.hc.core5.http.impl.io.HttpRequestExecutor requestExecutor, org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency)
  • Method Details

    • isExecutionAborted

      public boolean isExecutionAborted()
      Description copied from interface: ExecRuntime
      Determines of the request execution has been aborted.
      Specified by:
      isExecutionAborted in interface ExecRuntime
      Returns:
      true if the request execution has been acquired, false otherwise.
    • isEndpointAcquired

      public boolean isEndpointAcquired()
      Description copied from interface: ExecRuntime
      Determines of a connection endpoint has been acquired.
      Specified by:
      isEndpointAcquired in interface ExecRuntime
      Returns:
      true if an endpoint has been acquired, false otherwise.
    • acquireEndpoint

      public void acquireEndpoint(String id, HttpRoute route, Object object, HttpClientContext context) throws IOException
      Description copied from interface: ExecRuntime
      Acquires a connection endpoint. Endpoints can leased from a pool or unconnected new endpoint can be created.
      Specified by:
      acquireEndpoint in interface ExecRuntime
      Parameters:
      id - unique operation ID or null.
      route - the connection route.
      object - the expected connection state. May be null if connection can be state-less or its state is irrelevant.
      context - the execution context.
      Throws:
      IOException
    • ensureValid

      ConnectionEndpoint ensureValid()
    • isEndpointConnected

      public boolean isEndpointConnected()
      Description copied from interface: ExecRuntime
      Determines of there the endpoint is connected to the initial hop (connection target in case of a direct route or to the first proxy hop in case of a route via a proxy or multiple proxies).
      Specified by:
      isEndpointConnected in interface ExecRuntime
      Returns:
      true if the endpoint is connected, false otherwise.
    • connectEndpoint

      private void connectEndpoint(ConnectionEndpoint endpoint, HttpClientContext context) throws IOException
      Throws:
      IOException
    • connectEndpoint

      public void connectEndpoint(HttpClientContext context) throws IOException
      Description copied from interface: ExecRuntime
      Connect the local endpoint to the initial hop (connection target in case of a direct route or to the first proxy hop in case of a route via a proxy or multiple proxies).
      Specified by:
      connectEndpoint in interface ExecRuntime
      Parameters:
      context - the execution context.
      Throws:
      IOException
    • disconnectEndpoint

      public void disconnectEndpoint() throws IOException
      Description copied from interface: ExecRuntime
      Disconnects the local endpoint from the initial hop in the connection route.
      Specified by:
      disconnectEndpoint in interface ExecRuntime
      Throws:
      IOException
    • upgradeTls

      public void upgradeTls(HttpClientContext context) throws IOException
      Description copied from interface: ExecRuntime
      Upgrades transport security of the active connection by using the TLS security protocol.
      Specified by:
      upgradeTls in interface ExecRuntime
      Parameters:
      context - the execution context.
      Throws:
      IOException
    • execute

      public org.apache.hc.core5.http.ClassicHttpResponse execute(String id, org.apache.hc.core5.http.ClassicHttpRequest request, HttpClientContext context) throws IOException, org.apache.hc.core5.http.HttpException
      Description copied from interface: ExecRuntime
      Executes HTTP request using the given context.
      Specified by:
      execute in interface ExecRuntime
      Parameters:
      id - unique operation ID or null.
      request - the request message.
      context - the execution context.
      Throws:
      IOException
      org.apache.hc.core5.http.HttpException
    • isConnectionReusable

      public boolean isConnectionReusable()
      Description copied from interface: ExecRuntime
      Determines of the connection is considered re-usable.
      Specified by:
      isConnectionReusable in interface ExecRuntime
      Returns:
      true if the connection is re-usable, false otherwise.
    • markConnectionReusable

      public void markConnectionReusable(Object state, org.apache.hc.core5.util.TimeValue validDuration)
      Description copied from interface: ExecRuntime
      Marks the connection as potentially re-usable for the given period of time and also marks it as stateful if the state representation is given.
      Specified by:
      markConnectionReusable in interface ExecRuntime
      Parameters:
      state - the connection state representation or null if stateless.
      validDuration - the period of time this connection is valid for.
    • markConnectionNonReusable

      public void markConnectionNonReusable()
      Description copied from interface: ExecRuntime
      Marks the connection as non re-usable.
      Specified by:
      markConnectionNonReusable in interface ExecRuntime
    • discardEndpoint

      private void discardEndpoint(ConnectionEndpoint endpoint)
    • releaseEndpoint

      public void releaseEndpoint()
      Description copied from interface: ExecRuntime
      Releases the acquired endpoint potentially making it available for re-use.
      Specified by:
      releaseEndpoint in interface ExecRuntime
    • discardEndpoint

      public void discardEndpoint()
      Description copied from interface: ExecRuntime
      Shuts down and discards the acquired endpoint.
      Specified by:
      discardEndpoint in interface ExecRuntime
    • cancel

      public boolean cancel()
      Specified by:
      cancel in interface org.apache.hc.core5.concurrent.Cancellable
    • fork

      public ExecRuntime fork(org.apache.hc.core5.concurrent.CancellableDependency cancellableDependency)
      Description copied from interface: ExecRuntime
      Forks this runtime for parallel execution.
      Specified by:
      fork in interface ExecRuntime
      Returns:
      another runtime with the same configuration.