abstract class AbstractClientExchangeHandler
extends java.lang.Object
implements org.apache.http.nio.protocol.HttpAsyncClientExchangeHandler
HttpAsyncClientExchangeHandler
class
that implements connection management aspects shared by all HTTP exchange handlers.
Instances of this class are expected to be accessed by one thread at a time only.
The cancel()
method can be called concurrently by multiple threads.
Modifier and Type | Field and Description |
---|---|
private java.util.concurrent.atomic.AtomicBoolean |
closed |
private java.util.concurrent.atomic.AtomicBoolean |
completed |
private java.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<org.apache.http.nio.NHttpClientConnection>> |
connectionFutureRef |
private NHttpClientConnectionManager |
connmgr |
private org.apache.http.ConnectionReuseStrategy |
connReuseStrategy |
private static java.util.concurrent.atomic.AtomicLong |
COUNTER |
private long |
id |
private org.apache.http.conn.ConnectionKeepAliveStrategy |
keepaliveStrategy |
private org.apache.http.client.protocol.HttpClientContext |
localContext |
protected org.apache.commons.logging.Log |
log |
private java.util.concurrent.atomic.AtomicReference<org.apache.http.nio.NHttpClientConnection> |
managedConnRef |
private java.util.concurrent.atomic.AtomicReference<org.apache.http.client.methods.HttpRequestWrapper> |
requestRef |
private java.util.concurrent.atomic.AtomicReference<org.apache.http.HttpResponse> |
responseRef |
private java.util.concurrent.atomic.AtomicBoolean |
routeEstablished |
private java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.HttpRoute> |
routeRef |
private java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.RouteTracker> |
routeTrackerRef |
private java.util.concurrent.atomic.AtomicReference<java.lang.Long> |
validDurationRef |
Constructor and Description |
---|
AbstractClientExchangeHandler(org.apache.commons.logging.Log log,
org.apache.http.client.protocol.HttpClientContext localContext,
NHttpClientConnectionManager connmgr,
org.apache.http.ConnectionReuseStrategy connReuseStrategy,
org.apache.http.conn.ConnectionKeepAliveStrategy keepaliveStrategy) |
Modifier and Type | Method and Description |
---|---|
boolean |
cancel() |
void |
close() |
private void |
connectionAllocated(org.apache.http.nio.NHttpClientConnection managedConn) |
private void |
connectionRequestCancelled() |
private void |
connectionRequestFailed(java.lang.Exception ex) |
(package private) void |
discardConnection() |
(package private) abstract boolean |
executionCancelled() |
(package private) abstract void |
executionFailed(java.lang.Exception ex) |
void |
failed(java.lang.Exception ex) |
(package private) org.apache.http.conn.routing.HttpRoute |
getActualRoute() |
(package private) org.apache.http.nio.NHttpClientConnection |
getConnection() |
(package private) org.apache.http.client.methods.HttpRequestWrapper |
getCurrentRequest() |
(package private) org.apache.http.HttpResponse |
getCurrentResponse() |
(package private) long |
getId() |
(package private) org.apache.http.conn.routing.HttpRoute |
getRoute() |
(package private) boolean |
isCompleted() |
boolean |
isDone() |
(package private) boolean |
isRouteEstablished() |
(package private) boolean |
manageConnectionPersistence() |
(package private) void |
markCompleted() |
(package private) void |
markConnectionNonReusable() |
(package private) void |
onRouteComplete() |
(package private) void |
onRouteToProxy() |
(package private) void |
onRouteToTarget() |
(package private) void |
onRouteTunnelToTarget() |
(package private) void |
onRouteUpgrade() |
(package private) void |
releaseConnection() |
(package private) abstract void |
releaseResources() |
(package private) void |
requestConnection() |
(package private) void |
setCurrentRequest(org.apache.http.client.methods.HttpRequestWrapper request) |
(package private) void |
setCurrentResponse(org.apache.http.HttpResponse response) |
(package private) void |
setRoute(org.apache.http.conn.routing.HttpRoute route) |
(package private) void |
verifytRoute() |
private static final java.util.concurrent.atomic.AtomicLong COUNTER
protected final org.apache.commons.logging.Log log
private final long id
private final org.apache.http.client.protocol.HttpClientContext localContext
private final NHttpClientConnectionManager connmgr
private final org.apache.http.ConnectionReuseStrategy connReuseStrategy
private final org.apache.http.conn.ConnectionKeepAliveStrategy keepaliveStrategy
private final java.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<org.apache.http.nio.NHttpClientConnection>> connectionFutureRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.nio.NHttpClientConnection> managedConnRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.HttpRoute> routeRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.RouteTracker> routeTrackerRef
private final java.util.concurrent.atomic.AtomicBoolean routeEstablished
private final java.util.concurrent.atomic.AtomicReference<java.lang.Long> validDurationRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.client.methods.HttpRequestWrapper> requestRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.HttpResponse> responseRef
private final java.util.concurrent.atomic.AtomicBoolean completed
private final java.util.concurrent.atomic.AtomicBoolean closed
AbstractClientExchangeHandler(org.apache.commons.logging.Log log, org.apache.http.client.protocol.HttpClientContext localContext, NHttpClientConnectionManager connmgr, org.apache.http.ConnectionReuseStrategy connReuseStrategy, org.apache.http.conn.ConnectionKeepAliveStrategy keepaliveStrategy)
final long getId()
final boolean isCompleted()
final void markCompleted()
final void markConnectionNonReusable()
final boolean isRouteEstablished()
final org.apache.http.conn.routing.HttpRoute getRoute()
final void setRoute(org.apache.http.conn.routing.HttpRoute route)
final org.apache.http.client.methods.HttpRequestWrapper getCurrentRequest()
final void setCurrentRequest(org.apache.http.client.methods.HttpRequestWrapper request)
final org.apache.http.HttpResponse getCurrentResponse()
final void setCurrentResponse(org.apache.http.HttpResponse response)
final org.apache.http.conn.routing.HttpRoute getActualRoute()
final void verifytRoute()
final void onRouteToTarget() throws java.io.IOException
java.io.IOException
final void onRouteToProxy() throws java.io.IOException
java.io.IOException
final void onRouteUpgrade() throws java.io.IOException
java.io.IOException
final void onRouteTunnelToTarget()
final void onRouteComplete()
final org.apache.http.nio.NHttpClientConnection getConnection()
final void releaseConnection()
final void discardConnection()
final boolean manageConnectionPersistence()
private void connectionAllocated(org.apache.http.nio.NHttpClientConnection managedConn)
private void connectionRequestFailed(java.lang.Exception ex)
private void connectionRequestCancelled()
final void requestConnection()
abstract void releaseResources()
abstract void executionFailed(java.lang.Exception ex)
abstract boolean executionCancelled()
public final void close()
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
public final boolean isDone()
isDone
in interface org.apache.http.nio.protocol.HttpAsyncClientExchangeHandler
public final void failed(java.lang.Exception ex)
failed
in interface org.apache.http.nio.protocol.HttpAsyncClientExchangeHandler
public final boolean cancel()
cancel
in interface org.apache.http.concurrent.Cancellable