Package org.apache.http.impl.nio.client
Class AbstractClientExchangeHandler
- java.lang.Object
-
- org.apache.http.impl.nio.client.AbstractClientExchangeHandler
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,org.apache.http.concurrent.Cancellable,org.apache.http.nio.protocol.HttpAsyncClientExchangeHandler
- Direct Known Subclasses:
DefaultClientExchangeHandlerImpl,MinimalClientExchangeHandlerImpl,PipeliningClientExchangeHandlerImpl
abstract class AbstractClientExchangeHandler extends java.lang.Object implements org.apache.http.nio.protocol.HttpAsyncClientExchangeHandlerAbstractHttpAsyncClientExchangeHandlerclass 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.
-
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicBooleanclosedprivate java.util.concurrent.atomic.AtomicBooleancompletedprivate java.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<org.apache.http.nio.NHttpClientConnection>>connectionFutureRefprivate NHttpClientConnectionManagerconnmgrprivate org.apache.http.ConnectionReuseStrategyconnReuseStrategyprivate static java.util.concurrent.atomic.AtomicLongCOUNTERprivate longidprivate org.apache.http.conn.ConnectionKeepAliveStrategykeepaliveStrategyprivate org.apache.http.client.protocol.HttpClientContextlocalContextprotected org.apache.commons.logging.Loglogprivate java.util.concurrent.atomic.AtomicReference<org.apache.http.nio.NHttpClientConnection>managedConnRefprivate java.util.concurrent.atomic.AtomicReference<org.apache.http.client.methods.HttpRequestWrapper>requestRefprivate java.util.concurrent.atomic.AtomicReference<org.apache.http.HttpResponse>responseRefprivate java.util.concurrent.atomic.AtomicBooleanrouteEstablishedprivate java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.HttpRoute>routeRefprivate java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.RouteTracker>routeTrackerRefprivate java.util.concurrent.atomic.AtomicReference<java.lang.Long>validDurationRef
-
Constructor Summary
Constructors Constructor 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)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description booleancancel()voidclose()private voidconnectionAllocated(org.apache.http.nio.NHttpClientConnection managedConn)private voidconnectionRequestCancelled()private voidconnectionRequestFailed(java.lang.Exception ex)(package private) voiddiscardConnection()(package private) abstract booleanexecutionCancelled()(package private) abstract voidexecutionFailed(java.lang.Exception ex)voidfailed(java.lang.Exception ex)(package private) org.apache.http.conn.routing.HttpRoutegetActualRoute()(package private) org.apache.http.nio.NHttpClientConnectiongetConnection()(package private) org.apache.http.client.methods.HttpRequestWrappergetCurrentRequest()(package private) org.apache.http.HttpResponsegetCurrentResponse()(package private) longgetId()(package private) org.apache.http.conn.routing.HttpRoutegetRoute()(package private) booleanisCompleted()booleanisDone()(package private) booleanisRouteEstablished()(package private) booleanmanageConnectionPersistence()(package private) voidmarkCompleted()(package private) voidmarkConnectionNonReusable()(package private) voidonRouteComplete()(package private) voidonRouteToProxy()(package private) voidonRouteToTarget()(package private) voidonRouteTunnelToTarget()(package private) voidonRouteUpgrade()(package private) voidreleaseConnection()(package private) abstract voidreleaseResources()(package private) voidrequestConnection()(package private) voidsetCurrentRequest(org.apache.http.client.methods.HttpRequestWrapper request)(package private) voidsetCurrentResponse(org.apache.http.HttpResponse response)(package private) voidsetRoute(org.apache.http.conn.routing.HttpRoute route)(package private) voidverifytRoute()
-
-
-
Field Detail
-
COUNTER
private static final java.util.concurrent.atomic.AtomicLong COUNTER
-
log
protected final org.apache.commons.logging.Log log
-
id
private final long id
-
localContext
private final org.apache.http.client.protocol.HttpClientContext localContext
-
connmgr
private final NHttpClientConnectionManager connmgr
-
connReuseStrategy
private final org.apache.http.ConnectionReuseStrategy connReuseStrategy
-
keepaliveStrategy
private final org.apache.http.conn.ConnectionKeepAliveStrategy keepaliveStrategy
-
connectionFutureRef
private final java.util.concurrent.atomic.AtomicReference<java.util.concurrent.Future<org.apache.http.nio.NHttpClientConnection>> connectionFutureRef
-
managedConnRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.nio.NHttpClientConnection> managedConnRef
-
routeRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.HttpRoute> routeRef
-
routeTrackerRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.conn.routing.RouteTracker> routeTrackerRef
-
routeEstablished
private final java.util.concurrent.atomic.AtomicBoolean routeEstablished
-
validDurationRef
private final java.util.concurrent.atomic.AtomicReference<java.lang.Long> validDurationRef
-
requestRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.client.methods.HttpRequestWrapper> requestRef
-
responseRef
private final java.util.concurrent.atomic.AtomicReference<org.apache.http.HttpResponse> responseRef
-
completed
private final java.util.concurrent.atomic.AtomicBoolean completed
-
closed
private final java.util.concurrent.atomic.AtomicBoolean closed
-
-
Constructor Detail
-
AbstractClientExchangeHandler
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)
-
-
Method Detail
-
getId
final long getId()
-
isCompleted
final boolean isCompleted()
-
markCompleted
final void markCompleted()
-
markConnectionNonReusable
final void markConnectionNonReusable()
-
isRouteEstablished
final boolean isRouteEstablished()
-
getRoute
final org.apache.http.conn.routing.HttpRoute getRoute()
-
setRoute
final void setRoute(org.apache.http.conn.routing.HttpRoute route)
-
getCurrentRequest
final org.apache.http.client.methods.HttpRequestWrapper getCurrentRequest()
-
setCurrentRequest
final void setCurrentRequest(org.apache.http.client.methods.HttpRequestWrapper request)
-
getCurrentResponse
final org.apache.http.HttpResponse getCurrentResponse()
-
setCurrentResponse
final void setCurrentResponse(org.apache.http.HttpResponse response)
-
getActualRoute
final org.apache.http.conn.routing.HttpRoute getActualRoute()
-
verifytRoute
final void verifytRoute()
-
onRouteToTarget
final void onRouteToTarget() throws java.io.IOException- Throws:
java.io.IOException
-
onRouteToProxy
final void onRouteToProxy() throws java.io.IOException- Throws:
java.io.IOException
-
onRouteUpgrade
final void onRouteUpgrade() throws java.io.IOException- Throws:
java.io.IOException
-
onRouteTunnelToTarget
final void onRouteTunnelToTarget()
-
onRouteComplete
final void onRouteComplete()
-
getConnection
final org.apache.http.nio.NHttpClientConnection getConnection()
-
releaseConnection
final void releaseConnection()
-
discardConnection
final void discardConnection()
-
manageConnectionPersistence
final boolean manageConnectionPersistence()
-
connectionAllocated
private void connectionAllocated(org.apache.http.nio.NHttpClientConnection managedConn)
-
connectionRequestFailed
private void connectionRequestFailed(java.lang.Exception ex)
-
connectionRequestCancelled
private void connectionRequestCancelled()
-
requestConnection
final void requestConnection()
-
releaseResources
abstract void releaseResources()
-
executionFailed
abstract void executionFailed(java.lang.Exception ex)
-
executionCancelled
abstract boolean executionCancelled()
-
close
public final void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable
-
isDone
public final boolean isDone()
- Specified by:
isDonein interfaceorg.apache.http.nio.protocol.HttpAsyncClientExchangeHandler
-
failed
public final void failed(java.lang.Exception ex)
- Specified by:
failedin interfaceorg.apache.http.nio.protocol.HttpAsyncClientExchangeHandler
-
cancel
public final boolean cancel()
- Specified by:
cancelin interfaceorg.apache.http.concurrent.Cancellable
-
-