@Contract(threading=SAFE) class ConnectionHolder extends java.lang.Object implements ConnectionReleaseTrigger, org.apache.http.concurrent.Cancellable, java.io.Closeable
Modifier and Type | Field and Description |
---|---|
private org.apache.commons.logging.Log |
log |
private org.apache.http.HttpClientConnection |
managedConn |
private HttpClientConnectionManager |
manager |
private java.util.concurrent.atomic.AtomicBoolean |
released |
private boolean |
reusable |
private java.lang.Object |
state |
private java.util.concurrent.TimeUnit |
tunit |
private long |
validDuration |
Constructor and Description |
---|
ConnectionHolder(org.apache.commons.logging.Log log,
HttpClientConnectionManager manager,
org.apache.http.HttpClientConnection managedConn) |
Modifier and Type | Method and Description |
---|---|
void |
abortConnection()
Releases the connection without the option of keep-alive.
|
boolean |
cancel() |
void |
close() |
boolean |
isReleased() |
boolean |
isReusable() |
void |
markNonReusable() |
void |
markReusable() |
void |
releaseConnection()
Releases the connection with the option of keep-alive.
|
private void |
releaseConnection(boolean reusable) |
void |
setState(java.lang.Object state) |
void |
setValidFor(long duration,
java.util.concurrent.TimeUnit tunit) |
private final org.apache.commons.logging.Log log
private final HttpClientConnectionManager manager
private final org.apache.http.HttpClientConnection managedConn
private final java.util.concurrent.atomic.AtomicBoolean released
private volatile boolean reusable
private volatile java.lang.Object state
private volatile long validDuration
private volatile java.util.concurrent.TimeUnit tunit
public ConnectionHolder(org.apache.commons.logging.Log log, HttpClientConnectionManager manager, org.apache.http.HttpClientConnection managedConn)
public boolean isReusable()
public void markReusable()
public void markNonReusable()
public void setState(java.lang.Object state)
public void setValidFor(long duration, java.util.concurrent.TimeUnit tunit)
private void releaseConnection(boolean reusable)
public void releaseConnection()
ConnectionReleaseTrigger
abortConnection
for a hard release. The
connection may be reused as specified by the duration.releaseConnection
in interface ConnectionReleaseTrigger
public void abortConnection()
ConnectionReleaseTrigger
ConnectionReleaseTrigger.releaseConnection()
for a graceful release.abortConnection
in interface ConnectionReleaseTrigger
public boolean cancel()
cancel
in interface org.apache.http.concurrent.Cancellable
public boolean isReleased()
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface java.lang.AutoCloseable
java.io.IOException