• BlackBerry Dynamics
  • Runtime library for Android applications
  • 12.0.1.79
BasicManagedEntity Class Reference

An entity that releases a connection . More...

Inheritance diagram for BasicManagedEntity:
HttpEntityWrapper ConnectionReleaseTrigger EofSensorWatcher HttpEntity

Description

A com.good.gd.apache.http.conn.ManagedClientConnection will typically not return a managed entity, but you can replace the unmanaged entity in the response with a managed one.

Author
Roland Weber
Version
Revision
672367
Since
4.0

Notice

The following notice applies to the original API on which this API is based, and to its documentation. The documentation of this API has been revised from the original.

/*
 * Copyright (C) 2006 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

Public Member Functions

 BasicManagedEntity (HttpEntity entity, ManagedClientConnection conn, boolean reuse)
 Creates a new managed entity that can release a connection. More...
 
boolean isRepeatable ()
 Tells if the entity is capable to produce its data more than once. More...
 
InputStream getContent () throws IOException
 Creates a new InputStream object of the entity. More...
 
void consumeContent () throws IOException
 This method is called to indicate that the content of this entity is no longer required. More...
 
void writeTo (final OutputStream outstream) throws IOException
 Writes the entity content to the output stream. More...
 
void releaseConnection () throws IOException
 Releases the connection with the option of keep-alive. More...
 
void abortConnection () throws IOException
 Releases the connection without the option of keep-alive. More...
 
boolean eofDetected (InputStream wrapped) throws IOException
 Indicates that EOF is detected. More...
 
boolean streamClosed (InputStream wrapped) throws IOException
 Indicates that the stream is closed. More...
 
boolean streamAbort (InputStream wrapped) throws IOException
 Indicates that the stream is aborted. More...
 
- Public Member Functions inherited from HttpEntityWrapper
 HttpEntityWrapper (HttpEntity wrapped)
 Creates a new entity wrapper. More...
 
boolean isChunked ()
 Tells about chunked encoding for this entity. More...
 
long getContentLength ()
 Tells the length of the content, if known. More...
 
Header getContentType ()
 Obtains the Content-Type header, if known. More...
 
Header getContentEncoding ()
 Obtains the Content-Encoding header, if known. More...
 
boolean isStreaming ()
 Tells whether this entity depends on an underlying stream. More...
 

Protected Member Functions

void releaseManagedConnection () throws IOException
 Releases the connection gracefully. More...
 

Protected Attributes

ManagedClientConnection managedConn
 The connection to release. More...
 
final boolean attemptReuse
 Whether to keep the connection alive. More...
 
- Protected Attributes inherited from HttpEntityWrapper
HttpEntity wrappedEntity
 The wrapped entity. More...
 

Constructor & Destructor Documentation

◆ BasicManagedEntity()

BasicManagedEntity ( HttpEntity  entity,
ManagedClientConnection  conn,
boolean  reuse 
)
Parameters
entitythe 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.
connthe connection to release
reusewhether the connection should be re-used

Member Function Documentation

◆ isRepeatable()

boolean isRepeatable ( )

A repeatable entity's getContent() and writeTo(OutputStream) methods can be called more than once whereas a non-repeatable entity's can not.

Returns
true if the entity is repeatable, false otherwise.

Reimplemented from HttpEntityWrapper.

◆ getContent()

InputStream getContent ( ) throws IOException

It is a programming error to return the same InputStream object more than once. Entities that are not repeatable will throw an exception if this method is called multiple times.

Returns
a new input stream that returns the entity data.
Exceptions
IOExceptionif the stream could not be created
IllegalStateExceptionif this entity is not repeatable and the stream has already been obtained previously

Reimplemented from HttpEntityWrapper.

◆ consumeContent()

void consumeContent ( ) throws IOException

All entity implementations are expected to release all allocated resources as a result of this method invocation. Content streaming entities are also expected to dispose of the remaining content, if any. Wrapping entities should delegate this call to the wrapped entity.
This method is of particular importance for entities being received from a connection . The entity needs to be consumed completely in order to re-use the connection with keep-alive.

Exceptions
IOExceptionif an I/O error occurs. This indicates that connection keep-alive is not possible.

Reimplemented from HttpEntityWrapper.

◆ writeTo()

void writeTo ( final OutputStream  outstream) throws IOException
Parameters
outstreamthe output stream to write entity content to
Exceptions
IOExceptionif an I/O error occurs

Reimplemented from HttpEntityWrapper.

◆ releaseConnection()

void releaseConnection ( ) throws IOException

This is a "graceful" release and may cause IO operations for consuming the remainder of a response entity. Use abortConnection for a hard release. The connection may be reused as specified by the duration.

Exceptions
IOExceptionin case of an IO problem. The connection will be released anyway.

Implements ConnectionReleaseTrigger.

◆ abortConnection()

void abortConnection ( ) throws IOException

This is a "hard" release that implies a shutdown of the connection. Use releaseConnection for a graceful release.

Exceptions
IOExceptionin case of an IO problem. The connection will be released anyway.

Implements ConnectionReleaseTrigger.

◆ eofDetected()

boolean eofDetected ( InputStream  wrapped) throws IOException
Parameters
wrappedthe underlying stream which has reached EOF
Returns
true if wrapped should be closed, false if it should be left alone
Exceptions
IOExceptionin 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.

Implements EofSensorWatcher.

◆ streamClosed()

boolean streamClosed ( InputStream  wrapped) throws IOException

This method will be called only if EOF was not detected before closing. Otherwise, eofDetected is called.

Parameters
wrappedthe underlying stream which has not reached EOF
Returns
true if wrapped should be closed, false if it should be left alone
Exceptions
IOExceptionin 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.

Implements EofSensorWatcher.

◆ streamAbort()

boolean streamAbort ( InputStream  wrapped) throws IOException

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.

Parameters
wrappedthe underlying stream which has not reached EOF
Returns
true if wrapped should be closed, false if it should be left alone
Exceptions
IOExceptionin 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.

Implements EofSensorWatcher.

◆ releaseManagedConnection()

void releaseManagedConnection ( ) throws IOException
protected

The connection attribute will be nullified. Subsequent invocations are no-ops.

Exceptions
IOExceptionin case of an IO problem. The connection attribute will be nullified anyway.

Member Data Documentation

◆ managedConn

ManagedClientConnection managedConn
protected

◆ attemptReuse

final boolean attemptReuse
protected