Build 1.0_r1(from source)

org.apache.http.impl.conn
Class SingleClientConnManager

java.lang.Object
  extended by org.apache.http.impl.conn.SingleClientConnManager
All Implemented Interfaces:
ClientConnectionManager

public class SingleClientConnManager
extends Object
implements ClientConnectionManager

A connection "manager" for a single connection. This manager is good only for single-threaded use. Allocation always returns the connection immediately, even if it has not been released after the previous allocation. In that case, a warning is logged and the previously issued connection is revoked.

This class is derived from SimpleHttpConnectionManager in HttpClient 3. See there for original authors.

Since:
4.0

Nested Class Summary
protected  class SingleClientConnManager.ConnAdapter
          The connection adapter used by this manager.
protected  class SingleClientConnManager.PoolEntry
          The pool entry for this connection manager.
 
Field Summary
protected  boolean alwaysShutDown
          Whether the connection should be shut down on release.
protected  long connectionExpiresTime
          The time the last released connection expires and shouldn't be reused.
protected  ClientConnectionOperator connOperator
          The operator for opening and updating connections.
protected  boolean isShutDown
          Indicates whether this connection manager is shut down.
protected  long lastReleaseTime
          The time of the last connection release, or -1.
protected  SingleClientConnManager.ConnAdapter managedConn
          The currently issued managed connection, if any.
static String MISUSE_MESSAGE
          The message to be logged on multiple allocation.
protected  SchemeRegistry schemeRegistry
          The schemes supported by this connection manager.
protected  SingleClientConnManager.PoolEntry uniquePoolEntry
          The one and only entry in this pool.
 
Constructor Summary
SingleClientConnManager(HttpParams params, SchemeRegistry schreg)
          Creates a new simple connection manager.
 
Method Summary
protected  void assertStillUp()
          Asserts that this manager is not shut down.
 void closeExpiredConnections()
          Closes all expired connections in the pool.
 void closeIdleConnections(long idletime, TimeUnit tunit)
          Closes idle connections in the pool.
protected  ClientConnectionOperator createConnectionOperator(SchemeRegistry schreg)
          Hook for creating the connection operator.
protected  void finalize()
          Called by the virtual machine when there are no longer any (non-weak) references to the receiver.
 ManagedClientConnection getConnection(HttpRoute route, Object state)
          Obtains a connection.
 SchemeRegistry getSchemeRegistry()
          Obtains the scheme registry used by this manager.
 void releaseConnection(ManagedClientConnection conn, long validDuration, TimeUnit timeUnit)
          Releases a connection for use by others.
 ClientConnectionRequest requestConnection(HttpRoute route, Object state)
          Returns a new ClientConnectionRequest, from which a ManagedClientConnection can be obtained or the request can be aborted.
protected  void revokeConnection()
          Revokes the currently issued connection.
 void shutdown()
          Shuts down this connection manager and releases allocated resources.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MISUSE_MESSAGE

public static final String MISUSE_MESSAGE
The message to be logged on multiple allocation.

See Also:
Constant Field Values

schemeRegistry

protected SchemeRegistry schemeRegistry
The schemes supported by this connection manager.


connOperator

protected ClientConnectionOperator connOperator
The operator for opening and updating connections.


uniquePoolEntry

protected SingleClientConnManager.PoolEntry uniquePoolEntry
The one and only entry in this pool.


managedConn

protected SingleClientConnManager.ConnAdapter managedConn
The currently issued managed connection, if any.


lastReleaseTime

protected long lastReleaseTime
The time of the last connection release, or -1.


connectionExpiresTime

protected long connectionExpiresTime
The time the last released connection expires and shouldn't be reused.


alwaysShutDown

protected boolean alwaysShutDown
Whether the connection should be shut down on release.


isShutDown

protected volatile boolean isShutDown
Indicates whether this connection manager is shut down.

Constructor Detail

SingleClientConnManager

public SingleClientConnManager(HttpParams params,
                               SchemeRegistry schreg)
Creates a new simple connection manager.

Parameters:
params - the parameters for this manager
schreg - the scheme registry, or null for the default registry
Method Detail

finalize

protected void finalize()
                 throws Throwable
Description copied from class: Object
Called by the virtual machine when there are no longer any (non-weak) references to the receiver. Subclasses can use this facility to guarantee that any associated resources are cleaned up before the receiver is garbage collected. Uncaught exceptions which are thrown during the running of the method cause it to terminate immediately, but are otherwise ignored.

Note: The virtual machine assumes that the implementation in class Object is empty.

Overrides:
finalize in class Object
Throws:
Throwable - The virtual machine ignores any exceptions which are thrown during finalization.

getSchemeRegistry

public SchemeRegistry getSchemeRegistry()
Description copied from interface: ClientConnectionManager
Obtains the scheme registry used by this manager.

Specified by:
getSchemeRegistry in interface ClientConnectionManager
Returns:
the scheme registry, never null

createConnectionOperator

protected ClientConnectionOperator createConnectionOperator(SchemeRegistry schreg)
Hook for creating the connection operator. It is called by the constructor. Derived classes can override this method to change the instantiation of the operator. The default implementation here instantiates DefaultClientConnectionOperator.

Parameters:
schreg - the scheme registry to use, or null
Returns:
the connection operator to use

assertStillUp

protected final void assertStillUp()
                            throws IllegalStateException
Asserts that this manager is not shut down.

Throws:
IllegalStateException - if this manager is shut down

requestConnection

public final ClientConnectionRequest requestConnection(HttpRoute route,
                                                       Object state)
Description copied from interface: ClientConnectionManager
Returns a new ClientConnectionRequest, from which a ManagedClientConnection can be obtained or the request can be aborted.

Specified by:
requestConnection in interface ClientConnectionManager

getConnection

public ManagedClientConnection getConnection(HttpRoute route,
                                             Object state)
Obtains a connection. This method does not block.

Parameters:
route - where the connection should point to
Returns:
a connection that can be used to communicate along the given route

releaseConnection

public void releaseConnection(ManagedClientConnection conn,
                              long validDuration,
                              TimeUnit timeUnit)
Description copied from interface: ClientConnectionManager
Releases a connection for use by others. You may optionally specify how long the connection is valid to be reused. Values <= 0="" are="" considered="" to="" be="" valid="" forever.="" if="" the="" connection="" is="" not="" marked="" as="" reusable,="" the="" connection="" will="" not="" be="" reused="" regardless="" of="" the="" valid="" duration.="" if="" the="" connection="" has="" been="" released="" before,="" the="" call="" will="" be="" ignored.="">

Specified by:
releaseConnection in interface ClientConnectionManager
Parameters:
conn - the connection to release
validDuration - the duration of time this connection is valid for reuse
timeUnit - the unit of time validDuration is measured in
See Also:
ClientConnectionManager.closeExpiredConnections()

closeExpiredConnections

public void closeExpiredConnections()
Description copied from interface: ClientConnectionManager
Closes all expired connections in the pool. Open connections in the pool that have not been used for the timespan defined when the connection was released will be closed. Currently allocated connections are not subject to this method. Times will be checked with milliseconds precision.

Specified by:
closeExpiredConnections in interface ClientConnectionManager

closeIdleConnections

public void closeIdleConnections(long idletime,
                                 TimeUnit tunit)
Description copied from interface: ClientConnectionManager
Closes idle connections in the pool. Open connections in the pool that have not been used for the timespan given by the argument will be closed. Currently allocated connections are not subject to this method. Times will be checked with milliseconds precision All expired connections will also be closed.

Specified by:
closeIdleConnections in interface ClientConnectionManager
Parameters:
idletime - the idle time of connections to be closed
tunit - the unit for the idletime
See Also:
ClientConnectionManager.closeExpiredConnections()

shutdown

public void shutdown()
Description copied from interface: ClientConnectionManager
Shuts down this connection manager and releases allocated resources. This includes closing all connections, whether they are currently used or not.

Specified by:
shutdown in interface ClientConnectionManager

revokeConnection

protected void revokeConnection()
Revokes the currently issued connection. The adapter gets disconnected, the connection will be shut down.


Build 1.0_r1(from source)

Please submit a feedback, bug or feature