Class HttpClientConnectionManager

  • All Implemented Interfaces:
    AutoCloseable

    public class HttpClientConnectionManager
    extends CrtResource
    Manages a Pool of Http Connections
    • Method Detail

      • acquireConnection

        public CompletableFuture<HttpClientConnection> acquireConnection()
        Request a HttpClientConnection from the Connection Pool.
        Returns:
        A Future for a HttpClientConnection that will be completed when a connection is acquired.
      • releaseConnection

        public void releaseConnection​(HttpClientConnection conn)
        Releases this HttpClientConnection back into the Connection Pool, and allows another Request to acquire this connection.
        Parameters:
        conn - Connection to release
      • canReleaseReferencesImmediately

        protected boolean canReleaseReferencesImmediately()
        Determines whether a resource releases its dependencies at the same time the native handle is released or if it waits. Resources that wait are responsible for calling releaseReferences() manually.
        Specified by:
        canReleaseReferencesImmediately in class CrtResource
        Returns:
        true if this resource releases synchronously, false if this resource performs async shutdown
      • releaseNativeHandle

        protected void releaseNativeHandle()
        Closes this Connection Pool and any pending Connection Acquisitions
        Specified by:
        releaseNativeHandle in class CrtResource
      • getMaxConnections

        public int getMaxConnections()
        Returns:
        maximum number of connections this connection manager will pool
      • getManagerMetrics

        public HttpManagerMetrics getManagerMetrics()
        Returns:
        concurrency metrics for the current manager
      • getWindowSize

        public long getWindowSize()
        Returns:
        size of the per-connection streaming read window for response handling
      • getUri

        public URI getUri()
        Returns:
        uri the connection manager is making connections to