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.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
timeUnit
private long
validDuration
-
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 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 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:ConnectionReleaseTrigger
Releases 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. UseabortConnection
for a hard release. The connection may be reused as specified by the duration.- Specified by:
releaseConnection
in interfaceConnectionReleaseTrigger
-
abortConnection
public void abortConnection()
Description copied from interface:ConnectionReleaseTrigger
Releases 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:
abortConnection
in interfaceConnectionReleaseTrigger
-
cancel
public boolean cancel()
- Specified by:
cancel
in interfaceorg.apache.http.concurrent.Cancellable
-
isReleased
public boolean isReleased()
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Throws:
java.io.IOException
-
-