org.apache.hc.client5.http.io

## Interface ManagedHttpClientConnection

All Superinterfaces:
  AutoCloseable, BHttpConnection, Closeable, HttpClientConnection, HttpConnection, ModalCloseable

    @Internal
    public interface ManagedHttpClientConnection
    extends HttpClientConnection

Represents a managed connection whose state and life cycle is managed by a connection manager. This interface extends `HttpClientConnection` with methods to bind the connection to an arbitrary socket and to obtain SSL session details.

Since:
  4.3

### Method Summary

Methods
`void` `activate()` Restores the connection from idle mode.
`void` `bind(Socket socket)` Binds this connection to the given socket.
`Socket` `getSocket()` Returns the underlying socket.
`SSLSession` `getSSLSession()` Obtains the SSL session of the underlying connection, if any.
`void` `passivate()` Puts the connection into idle mode.

### Methods inherited from interface org.apache.hc.core5.http.io.HttpClientConnection

`isConsistent, receiveResponseEntity, receiveResponseHeader, sendRequestEntity, sendRequestHeader, terminateRequest`

### Methods inherited from interface org.apache.hc.core5.http.io.BHttpConnection

`flush, isDataAvailable, isStale`

### Methods inherited from interface org.apache.hc.core5.http.HttpConnection

`close, getEndpointDetails, getLocalAddress, getProtocolVersion, getRemoteAddress, getSocketTimeout, isOpen, setSocketTimeout`

### Methods inherited from interface org.apache.hc.core5.io.ModalCloseable

`close`

### Method Detail

#### bind

    void bind(Socket socket)
              throws IOException

Binds this connection to the given socket. The connection is considered open if it is bound and the underlying socket is connection to a remote host.

Parameters:
  `socket` - the socket to bind the connection to.
Throws:
  `IOException`

#### getSocket

    Socket getSocket()

Returns the underlying socket.

#### getSSLSession

    SSLSession getSSLSession()

Obtains the SSL session of the underlying connection, if any. If this connection is open, and the underlying socket is an `SSLSocket`, the SSL session of that socket is obtained. This is a potentially blocking operation.

Specified by:
  `getSSLSession` in interface `HttpConnection`
Returns:
  the underlying SSL session if available, `null` otherwise

#### passivate

    void passivate()

Puts the connection into idle mode.

Since:
  5.0

#### activate

    void activate()

Restores the connection from idle mode.

Since:
  5.0