Package org.apache.http.impl.execchain
Class ConnectionHolder
- java.lang.Object
-
- org.apache.http.impl.execchain.ConnectionHolder
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,org.apache.http.concurrent.Cancellable,ConnectionReleaseTrigger
@Contract(threading=SAFE) class ConnectionHolder extends java.lang.Object implements ConnectionReleaseTrigger, org.apache.http.concurrent.Cancellable, java.io.Closeable
Internal connection holder.- Since:
- 4.3
-
-
Field Summary
Fields Modifier and Type Field Description private org.apache.commons.logging.Loglogprivate org.apache.http.HttpClientConnectionmanagedConnprivate HttpClientConnectionManagermanagerprivate java.util.concurrent.atomic.AtomicBooleanreleasedprivate booleanreusableprivate java.lang.Objectstateprivate java.util.concurrent.TimeUnittimeUnitprivate longvalidDuration
-
Constructor Summary
Constructors Constructor Description ConnectionHolder(org.apache.commons.logging.Log log, HttpClientConnectionManager manager, org.apache.http.HttpClientConnection managedConn)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidabortConnection()Releases the connection without the option of keep-alive.booleancancel()voidclose()booleanisReleased()booleanisReusable()voidmarkNonReusable()voidmarkReusable()voidreleaseConnection()Releases the connection with the option of keep-alive.private voidreleaseConnection(boolean reusable)voidsetState(java.lang.Object state)voidsetValidFor(long duration, java.util.concurrent.TimeUnit timeUnit)
-
-
-
Field Detail
-
log
private final org.apache.commons.logging.Log log
-
manager
private final HttpClientConnectionManager manager
-
managedConn
private final org.apache.http.HttpClientConnection managedConn
-
released
private final java.util.concurrent.atomic.AtomicBoolean released
-
reusable
private volatile boolean reusable
-
state
private volatile java.lang.Object state
-
validDuration
private volatile long validDuration
-
timeUnit
private volatile java.util.concurrent.TimeUnit timeUnit
-
-
Constructor Detail
-
ConnectionHolder
public ConnectionHolder(org.apache.commons.logging.Log log, HttpClientConnectionManager manager, org.apache.http.HttpClientConnection managedConn)
-
-
Method Detail
-
isReusable
public boolean isReusable()
-
markReusable
public void markReusable()
-
markNonReusable
public void markNonReusable()
-
setState
public void setState(java.lang.Object state)
-
setValidFor
public void setValidFor(long duration, java.util.concurrent.TimeUnit timeUnit)
-
releaseConnection
private void releaseConnection(boolean reusable)
-
releaseConnection
public void releaseConnection()
Description copied from interface:ConnectionReleaseTriggerReleases the connection with the option of keep-alive. This is a "graceful" release and may cause IO operations for consuming the remainder of a response entity. UseabortConnectionfor a hard release. The connection may be reused as specified by the duration.- Specified by:
releaseConnectionin interfaceConnectionReleaseTrigger
-
abortConnection
public void abortConnection()
Description copied from interface:ConnectionReleaseTriggerReleases the connection without the option of keep-alive. This is a "hard" release that implies a shutdown of the connection. UseConnectionReleaseTrigger.releaseConnection()for a graceful release.- Specified by:
abortConnectionin interfaceConnectionReleaseTrigger
-
cancel
public boolean cancel()
- Specified by:
cancelin interfaceorg.apache.http.concurrent.Cancellable
-
isReleased
public boolean isReleased()
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
-