Package org.apache.http.nio.pool
Class AbstractNIOConnPool<T,C,E extends PoolEntry<T,C>>
java.lang.Object
org.apache.http.nio.pool.AbstractNIOConnPool<T,C,E>
- Type Parameters:
T- routeC- connection objectE- pool entry
- All Implemented Interfaces:
ConnPool<T,,E> ConnPoolControl<T>
- Direct Known Subclasses:
BasicNIOConnPool
@Contract(threading=SAFE_CONDITIONAL)
public abstract class AbstractNIOConnPool<T,C,E extends PoolEntry<T,C>>
extends Object
implements ConnPool<T,E>, ConnPoolControl<T>
Abstract non-blocking connection pool.
- Since:
- 4.2
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) class -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final SocketAddressResolver<T>private final LinkedList<E>private final ConcurrentLinkedQueue<LeaseRequest<T,C, E>> private final NIOConnFactory<T,C> private intprivate final ConnectingIOReactorprivate final AtomicBooleanprivate final LinkedList<LeaseRequest<T,C, E>> private final Lockprivate intprivate final Set<SessionRequest>private final SessionRequestCallback -
Constructor Summary
ConstructorsConstructorDescriptionAbstractNIOConnPool(ConnectingIOReactor ioReactor, NIOConnFactory<T, C> connFactory, int defaultMaxPerRoute, int maxTotal) Deprecated.AbstractNIOConnPool(ConnectingIOReactor ioReactor, NIOConnFactory<T, C> connFactory, SocketAddressResolver<T> addressResolver, int defaultMaxPerRoute, int maxTotal) -
Method Summary
Modifier and TypeMethodDescriptionvoidvoidprotected abstract EcreateEntry(T route, C conn) protected voidenumAvailable(PoolEntryCallback<T, C> callback) Enumerates all available connections.protected voidenumEntries(Iterator<E> it, PoolEntryCallback<T, C> callback) Deprecated.(4.3.2)protected voidenumLeased(PoolEntryCallback<T, C> callback) Enumerates all leased connections.private voidintprivate intintgetMaxPerRoute(T route) intprivate RouteSpecificPool<T,C, E> Returns snapshot of all knows routesbooleanlease(T route, Object state, long connectTimeout, long leaseTimeout, TimeUnit timeUnit, FutureCallback<E> callback) lease(T route, Object state, FutureCallback<E> callback) Attempts to lease a connection for the given route and with the given state from the pool.protected voidprotected voidprotected voidprivate voidprivate booleanprocessPendingRequest(LeaseRequest<T, C, E> request) private voidprivate voidvoidReleases the pool entry back to the pool.protected voidrequestCancelled(SessionRequest request) protected voidrequestCompleted(SessionRequest request) protected voidrequestFailed(SessionRequest request) protected voidrequestTimeout(SessionRequest request) protected SocketAddressresolveLocalAddress(T route) Deprecated.(4.3) useSocketAddressResolverprotected SocketAddressresolveRemoteAddress(T route) Deprecated.(4.3) useSocketAddressResolvervoidsetDefaultMaxPerRoute(int max) voidsetMaxPerRoute(T route, int max) voidsetMaxTotal(int max) voidshutdown(long waitMs) toString()void
-
Field Details
-
ioReactor
-
connFactory
-
addressResolver
-
sessionRequestCallback
-
routeToPool
-
leasingRequests
-
pending
-
leased
-
available
-
completedRequests
-
maxPerRoute
-
lock
-
isShutDown
-
defaultMaxPerRoute
private volatile int defaultMaxPerRoute -
maxTotal
private volatile int maxTotal
-
-
Constructor Details
-
AbstractNIOConnPool
@Deprecated public AbstractNIOConnPool(ConnectingIOReactor ioReactor, NIOConnFactory<T, C> connFactory, int defaultMaxPerRoute, int maxTotal) -
AbstractNIOConnPool
public AbstractNIOConnPool(ConnectingIOReactor ioReactor, NIOConnFactory<T, C> connFactory, SocketAddressResolver<T> addressResolver, int defaultMaxPerRoute, int maxTotal) - Since:
- 4.3
-
-
Method Details
-
resolveRemoteAddress
Deprecated.(4.3) useSocketAddressResolver -
resolveLocalAddress
Deprecated.(4.3) useSocketAddressResolver -
createEntry
-
onLease
- Since:
- 4.3
-
onRelease
- Since:
- 4.3
-
onReuse
- Since:
- 4.4
-
isShutdown
public boolean isShutdown() -
shutdown
- Throws:
IOException
-
getPool
-
lease
-
lease
public Future<E> lease(T route, Object state, long connectTimeout, long leaseTimeout, TimeUnit timeUnit, FutureCallback<E> callback) - Since:
- 4.3
-
lease
Description copied from interface:ConnPoolAttempts to lease a connection for the given route and with the given state from the pool.- Specified by:
leasein interfaceConnPool<T,C> - Parameters:
route- route of the connection.state- arbitrary object that represents a particular state (usually a security principal or a unique token identifying the user whose credentials have been used while establishing the connection). May benull.callback- operation completion callback.- Returns:
- future for a leased pool entry.
-
lease
-
release
Description copied from interface:ConnPoolReleases the pool entry back to the pool. -
processPendingRequests
private void processPendingRequests() -
processNextPendingRequest
private void processNextPendingRequest() -
processPendingRequest
-
fireCallbacks
private void fireCallbacks() -
validatePendingRequests
public void validatePendingRequests() -
requestCompleted
-
requestCancelled
-
requestFailed
-
requestTimeout
-
getMax
-
setMaxTotal
public void setMaxTotal(int max) - Specified by:
setMaxTotalin interfaceConnPoolControl<T>
-
getMaxTotal
public int getMaxTotal()- Specified by:
getMaxTotalin interfaceConnPoolControl<T>
-
setDefaultMaxPerRoute
public void setDefaultMaxPerRoute(int max) - Specified by:
setDefaultMaxPerRoutein interfaceConnPoolControl<T>
-
getDefaultMaxPerRoute
public int getDefaultMaxPerRoute()- Specified by:
getDefaultMaxPerRoutein interfaceConnPoolControl<T>
-
setMaxPerRoute
- Specified by:
setMaxPerRoutein interfaceConnPoolControl<T>
-
getMaxPerRoute
- Specified by:
getMaxPerRoutein interfaceConnPoolControl<T>
-
getTotalStats
- Specified by:
getTotalStatsin interfaceConnPoolControl<T>
-
getStats
- Specified by:
getStatsin interfaceConnPoolControl<T>
-
getRoutes
Returns snapshot of all knows routes- Since:
- 4.4
-
enumAvailable
Enumerates all available connections.- Since:
- 4.3
-
enumLeased
Enumerates all leased connections.- Since:
- 4.3
-
enumEntries
Deprecated.(4.3.2) -
purgePoolMap
private void purgePoolMap() -
closeIdle
-
closeExpired
public void closeExpired() -
toString
-
AbstractNIOConnPool(ConnectingIOReactor, NIOConnFactory, SocketAddressResolver, int, int)