public abstract class

AbstractConnPool

extends Object
implements RefQueueHandler
java.lang.Object
   ↳ org.apache.http.impl.conn.tsccm.AbstractConnPool
Known Direct Subclasses

Class Overview

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!

Summary

Fields
protected IdleConnectionHandler idleConnHandler
protected boolean isShutDown Indicates whether this pool is shut down.
protected Set<BasicPoolEntryRef> issuedConnections
protected Set<BasicPoolEntry> leasedConnections 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
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()
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)
Invoked when a reference is found on the queue.
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)
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.http.impl.conn.tsccm.RefQueueHandler

Fields

protected IdleConnectionHandler idleConnHandler

Also: HttpClient

protected boolean isShutDown

Also: HttpClient

Indicates whether this pool is shut down.

protected Set<BasicPoolEntryRef> issuedConnections

Also: HttpClient

protected Set<BasicPoolEntry> leasedConnections

Also: HttpClient

References to issued connections

protected int numConnections

Also: HttpClient

The current total number of connections.

protected final Lock poolLock

Also: HttpClient

The global lock for this pool.

protected ReferenceQueue<Object> refQueue

Also: HttpClient

Protected Constructors

protected AbstractConnPool ()

Also: HttpClient

Creates a new connection pool.

Public Methods

public void closeExpiredConnections ()

Also: HttpClient

public void closeIdleConnections (long idletime, TimeUnit tunit)

Also: HttpClient

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 ()

Also: HttpClient

Deletes all entries for closed connections.

public void enableConnectionGC ()

Also: HttpClient

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

Also: HttpClient

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)

Also: HttpClient

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)

Also: HttpClient

Invoked when a reference is found on the queue.

Parameters
ref the reference to handle

public abstract PoolEntryRequest requestPoolEntry (HttpRoute route, Object state)

Also: HttpClient

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

public void shutdown ()

Also: HttpClient

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

Protected Methods

protected void closeConnection (OperatedClientConnection conn)

Also: HttpClient

Closes a connection from this pool.

Parameters
conn the connection to close, or null

protected abstract void handleLostEntry (HttpRoute route)

Also: HttpClient