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 int
private final ConnectingIOReactor
private final AtomicBoolean
private final LinkedList
<LeaseRequest<T, C, E>> private final Lock
private int
private 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 TypeMethodDescriptionvoid
void
protected abstract E
createEntry
(T route, C conn) protected void
enumAvailable
(PoolEntryCallback<T, C> callback) Enumerates all available connections.protected void
enumEntries
(Iterator<E> it, PoolEntryCallback<T, C> callback) Deprecated.(4.3.2)protected void
enumLeased
(PoolEntryCallback<T, C> callback) Enumerates all leased connections.private void
int
private int
int
getMaxPerRoute
(T route) int
private RouteSpecificPool
<T, C, E> Returns snapshot of all knows routesboolean
lease
(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 void
protected void
protected void
private void
private boolean
processPendingRequest
(LeaseRequest<T, C, E> request) private void
private void
void
Releases the pool entry back to the pool.protected void
requestCancelled
(SessionRequest request) protected void
requestCompleted
(SessionRequest request) protected void
requestFailed
(SessionRequest request) protected void
requestTimeout
(SessionRequest request) protected SocketAddress
resolveLocalAddress
(T route) Deprecated.(4.3) useSocketAddressResolver
protected SocketAddress
resolveRemoteAddress
(T route) Deprecated.(4.3) useSocketAddressResolver
void
setDefaultMaxPerRoute
(int max) void
setMaxPerRoute
(T route, int max) void
setMaxTotal
(int max) void
shutdown
(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:ConnPool
Attempts to lease a connection for the given route and with the given state from the pool.- Specified by:
lease
in 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:ConnPool
Releases 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:
setMaxTotal
in interfaceConnPoolControl<T>
-
getMaxTotal
public int getMaxTotal()- Specified by:
getMaxTotal
in interfaceConnPoolControl<T>
-
setDefaultMaxPerRoute
public void setDefaultMaxPerRoute(int max) - Specified by:
setDefaultMaxPerRoute
in interfaceConnPoolControl<T>
-
getDefaultMaxPerRoute
public int getDefaultMaxPerRoute()- Specified by:
getDefaultMaxPerRoute
in interfaceConnPoolControl<T>
-
setMaxPerRoute
- Specified by:
setMaxPerRoute
in interfaceConnPoolControl<T>
-
getMaxPerRoute
- Specified by:
getMaxPerRoute
in interfaceConnPoolControl<T>
-
getTotalStats
- Specified by:
getTotalStats
in interfaceConnPoolControl<T>
-
getStats
- Specified by:
getStats
in 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)