Android
org.apache.http.impl.conn.tsccm
public abstract class

org.apache.http.impl.conn.tsccm.AbstractConnPool

java.lang.Object
org.apache.http.impl.conn.tsccm.AbstractConnPool RefQueueHandler

An abstract connection pool. It is used by the ThreadSafeClientConnManager. The abstract pool includes a poolLock, which is used to synchronize access to the internal pool datastructures. Don't use synchronized for that purpose!

Known Direct Subclasses

Summary

Fields

protected      IdleConnectionHandler  idleConnHandler  The handler for idle connections. 
protected      boolean  isShutDown  Indicates whether this pool is shut down. 
protected      Set<BasicPoolEntryRef issuedConnections  References to issued connections. 
protected      int  numConnections  The current total number of connections. 
protected    final  Lock  poolLock  The global lock for this pool. 
protected      ReferenceQueue<Object refQueue  A reference queue to track loss of pool entries to GC. 

Protected Constructors

            AbstractConnPool()
Creates a new connection pool.

Public Methods

          void  closeExpiredConnections()
          void  closeIdleConnections(long idletime, TimeUnit tunit)
Closes idle connections.
abstract          void  deleteClosedConnections()
Deletes all entries for closed connections.
          void  enableConnectionGC()
Enables connection garbage collection (GC).
abstract          void  freeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, TimeUnit timeUnit)
Returns an entry into the pool.
    final      BasicPoolEntry  getEntry(HttpRoute route, Object state, long timeout, TimeUnit tunit)
Obtains a pool entry with a connection within the given timeout.
          void  handleReference(Reference ref)
abstract          PoolEntryRequest  requestPoolEntry(HttpRoute route, Object state)
Returns a new PoolEntryRequest, from which a BasicPoolEntry can be obtained, or the request can be aborted.
          void  shutdown()
Shuts down this pool and all associated resources.

Protected Methods

          void  closeConnection(OperatedClientConnection conn)
Closes a connection from this pool.
abstract          void  handleLostEntry(HttpRoute route)
Handles cleaning up for a lost pool entry with the given route.
Methods inherited from class java.lang.Object
Methods inherited from interface org.apache.http.impl.conn.tsccm.RefQueueHandler

Details

Fields

protected IdleConnectionHandler idleConnHandler

The handler for idle connections.

protected boolean isShutDown

Indicates whether this pool is shut down.

protected Set<BasicPoolEntryRef> issuedConnections

References to issued connections. Objects in this set are of class BasicPoolEntryRef, and point to the pool entry for the issued connection. GCed connections are detected by the missing pool entries.

protected int numConnections

The current total number of connections.

protected final Lock poolLock

The global lock for this pool.

protected ReferenceQueue<Object> refQueue

A reference queue to track loss of pool entries to GC. The same queue is used to track loss of the connection manager, so we cannot specialize the type.

Protected Constructors

protected AbstractConnPool()

Creates a new connection pool.

Public Methods

public void closeExpiredConnections()

public void closeIdleConnections(long idletime, TimeUnit tunit)

Closes idle connections.

Parameters

idletime the time the connections should have been idle in order to be closed now
tunit the unit for the idletime

public abstract void deleteClosedConnections()

Deletes all entries for closed connections.

public void enableConnectionGC()

Enables connection garbage collection (GC). This method must be called immediately after creating the connection pool. It is not possible to enable connection GC after pool entries have been created. Neither is it possible to disable connection GC.

Throws

IllegalStateException if connection GC is already enabled, or if it cannot be enabled because there already are pool entries

public abstract void freeEntry(BasicPoolEntry entry, boolean reusable, long validDuration, TimeUnit timeUnit)

Returns an entry into the pool. The connection of the entry is expected to be in a suitable state, either open and re-usable, or closed. The pool will not make any attempt to determine whether it can be re-used or not.

Parameters

entry the entry for the connection to release
reusable true if the entry is deemed reusable, false otherwise.
validDuration The duration that the entry should remain free and reusable.
timeUnit The unit of time the duration is measured in.

public final BasicPoolEntry getEntry(HttpRoute route, Object state, long timeout, TimeUnit tunit)

Obtains a pool entry with a connection within the given timeout.

Parameters

route the route for which to get the connection
timeout the timeout, 0 or negative for no timeout
tunit the unit for the timeout, may be null only if there is no timeout

Returns

  • pool entry holding a connection for the route

Throws

ConnectionPoolTimeoutException if the timeout expired
InterruptedException if the calling thread was interrupted

public void handleReference(Reference ref)

public abstract PoolEntryRequest requestPoolEntry(HttpRoute route, Object state)

Returns a new PoolEntryRequest, from which a BasicPoolEntry can be obtained, or the request can be aborted.

public void shutdown()

Shuts down this pool and all associated resources. Overriding methods MUST call the implementation here!

Protected Methods

protected void closeConnection(OperatedClientConnection conn)

Closes a connection from this pool.

Parameters

conn the connection to close, or null

protected abstract void handleLostEntry(HttpRoute route)

Handles cleaning up for a lost pool entry with the given route. A lost pool entry corresponds to a connection that was garbage collected instead of being properly released.

Parameters

route the route of the pool entry that was lost
Copyright 2007 Google Inc. Build 110632-110632 - 22 Sep 2008 13:34