@NotThreadSafe public class BasicManagedEntity extends HttpEntityWrapper implements ConnectionReleaseTrigger, EofSensorWatcher
connection.
A ManagedClientConnection will
typically not return a managed entity, but you can replace
the unmanaged entity in the response with a managed one.| Modifier and Type | Field and Description |
|---|---|
protected boolean |
attemptReuse
Whether to keep the connection alive.
|
protected ManagedClientConnection |
managedConn
The connection to release.
|
wrappedEntity| Constructor and Description |
|---|
BasicManagedEntity(HttpEntity entity,
ManagedClientConnection conn,
boolean reuse)
Creates a new managed entity that can release a connection.
|
| Modifier and Type | Method and Description |
|---|---|
void |
abortConnection()
Releases the connection without the option of keep-alive.
|
void |
consumeContent()
Deprecated.
(4.1) Use
EntityUtils.consume(HttpEntity) |
boolean |
eofDetected(InputStream wrapped)
Indicates that EOF is detected.
|
InputStream |
getContent() |
boolean |
isRepeatable() |
void |
releaseConnection()
Releases the connection with the option of keep-alive.
|
protected void |
releaseManagedConnection()
Releases the connection gracefully.
|
boolean |
streamAbort(InputStream wrapped)
Indicates that the
stream is aborted. |
boolean |
streamClosed(InputStream wrapped)
Indicates that the
stream is closed. |
void |
writeTo(OutputStream outstream) |
getContentEncoding, getContentLength, getContentType, isChunked, isStreamingprotected ManagedClientConnection managedConn
protected final boolean attemptReuse
public BasicManagedEntity(HttpEntity entity, ManagedClientConnection conn, boolean reuse)
entity - the entity of which to wrap the content.
Note that the argument entity can no longer be used
afterwards, since the content will be taken by this
managed entity.conn - the connection to releasereuse - whether the connection should be re-usedpublic boolean isRepeatable()
isRepeatable in interface HttpEntityisRepeatable in class HttpEntityWrapperpublic InputStream getContent() throws IOException
getContent in interface HttpEntitygetContent in class HttpEntityWrapperIOExceptionpublic void consumeContent()
throws IOException
EntityUtils.consume(HttpEntity)consumeContent in interface HttpEntityconsumeContent in class HttpEntityWrapperIOExceptionpublic void writeTo(OutputStream outstream) throws IOException
writeTo in interface HttpEntitywriteTo in class HttpEntityWrapperIOExceptionpublic void releaseConnection()
throws IOException
ConnectionReleaseTriggerabortConnection for a hard release. The
connection may be reused as specified by the duration.releaseConnection in interface ConnectionReleaseTriggerIOException - in case of an IO problem. The connection will be released
anyway.public void abortConnection()
throws IOException
ConnectionReleaseTriggerConnectionReleaseTrigger.releaseConnection() for a graceful release.abortConnection in interface ConnectionReleaseTriggerIOException - in case of an IO problem.
The connection will be released anyway.public boolean eofDetected(InputStream wrapped) throws IOException
EofSensorWatchereofDetected in interface EofSensorWatcherwrapped - the underlying stream which has reached EOFtrue if wrapped should be closed,
false if it should be left aloneIOException - in case of an IO problem, for example if the watcher itself
closes the underlying stream. The caller will leave the
wrapped stream alone, as if false was returned.public boolean streamClosed(InputStream wrapped) throws IOException
EofSensorWatcherstream is closed.
This method will be called only if EOF was not detected
before closing. Otherwise, eofDetected is called.streamClosed in interface EofSensorWatcherwrapped - the underlying stream which has not reached EOFtrue if wrapped should be closed,
false if it should be left aloneIOException - in case of an IO problem, for example if the watcher itself
closes the underlying stream. The caller will leave the
wrapped stream alone, as if false was returned.public boolean streamAbort(InputStream wrapped) throws IOException
EofSensorWatcherstream is aborted.
This method will be called only if EOF was not detected
before aborting. Otherwise, eofDetected is called.
This method will also be invoked when an input operation causes an
IOException to be thrown to make sure the input stream gets shut down.streamAbort in interface EofSensorWatcherwrapped - the underlying stream which has not reached EOFtrue if wrapped should be closed,
false if it should be left aloneIOException - in case of an IO problem, for example if the watcher itself
closes the underlying stream. The caller will leave the
wrapped stream alone, as if false was returned.protected void releaseManagedConnection()
throws IOException
IOException - in case of an IO problem.
The connection attribute will be nullified anyway.Copyright © 1999–2013 The Apache Software Foundation. All rights reserved.