Package org.apache.hc.core5.pool
Class LaxConnPool.PerRoutePool<T,C extends ModalCloseable>
- java.lang.Object
-
- org.apache.hc.core5.pool.LaxConnPool.PerRoutePool<T,C>
-
- Enclosing class:
- LaxConnPool<T,C extends ModalCloseable>
static class LaxConnPool.PerRoutePool<T,C extends ModalCloseable> extends java.lang.Object
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description private static classLaxConnPool.PerRoutePool.RequestServiceStrategy
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicIntegerallocatedprivate java.util.Deque<java.util.concurrent.atomic.AtomicMarkableReference<PoolEntry<T,C>>>availableprivate ConnPoolListener<T>connPoolListenerprivate ConnPoolStats<T>connPoolStatsprivate DisposalCallback<C>disposalCallbackprivate java.util.concurrent.ConcurrentMap<PoolEntry<T,C>,java.lang.Boolean>leasedprivate intmaxprivate java.util.Deque<LaxConnPool.LeaseRequest<T,C>>pendingprivate PoolReusePolicypolicyprivate java.util.concurrent.atomic.AtomicLongreleaseSeqNumprivate Trouteprivate java.util.concurrent.atomic.AtomicBooleanterminatedprivate TimeValuetimeToLive
-
Constructor Summary
Constructors Constructor Description PerRoutePool(T route, int max, TimeValue timeToLive, PoolReusePolicy policy, ConnPoolStats<T> connPoolStats, DisposalCallback<C> disposalCallback, ConnPoolListener<T> connPoolListener)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private voidaddLeased(PoolEntry<T,C> entry)private PoolEntry<T,C>createPoolEntry()private voiddeallocatePoolEntry()voidenumAvailable(Callback<PoolEntry<T,C>> callback)voidenumLeased(Callback<PoolEntry<T,C>> callback)intgetAvailableCount()private PoolEntry<T,C>getAvailableEntry(java.lang.Object state)intgetLeasedCount()intgetMax()intgetPendingCount()TgetRoute()java.util.concurrent.Future<PoolEntry<T,C>>lease(java.lang.Object state, Timeout requestTimeout, FutureCallback<PoolEntry<T,C>> callback)voidrelease(PoolEntry<T,C> releasedEntry, boolean reusable)private voidremoveLeased(PoolEntry<T,C> entry)private voidservicePendingRequest()private voidservicePendingRequests(LaxConnPool.PerRoutePool.RequestServiceStrategy serviceStrategy)voidsetMax(int max)voidshutdown(CloseMode closeMode)java.lang.StringtoString()voidvalidatePendingRequests()
-
-
-
Field Detail
-
route
private final T route
-
timeToLive
private final TimeValue timeToLive
-
policy
private final PoolReusePolicy policy
-
disposalCallback
private final DisposalCallback<C extends ModalCloseable> disposalCallback
-
connPoolListener
private final ConnPoolListener<T> connPoolListener
-
connPoolStats
private final ConnPoolStats<T> connPoolStats
-
leased
private final java.util.concurrent.ConcurrentMap<PoolEntry<T,C extends ModalCloseable>,java.lang.Boolean> leased
-
available
private final java.util.Deque<java.util.concurrent.atomic.AtomicMarkableReference<PoolEntry<T,C extends ModalCloseable>>> available
-
pending
private final java.util.Deque<LaxConnPool.LeaseRequest<T,C extends ModalCloseable>> pending
-
terminated
private final java.util.concurrent.atomic.AtomicBoolean terminated
-
allocated
private final java.util.concurrent.atomic.AtomicInteger allocated
-
releaseSeqNum
private final java.util.concurrent.atomic.AtomicLong releaseSeqNum
-
max
private volatile int max
-
-
Constructor Detail
-
PerRoutePool
PerRoutePool(T route, int max, TimeValue timeToLive, PoolReusePolicy policy, ConnPoolStats<T> connPoolStats, DisposalCallback<C> disposalCallback, ConnPoolListener<T> connPoolListener)
-
-
Method Detail
-
shutdown
public void shutdown(CloseMode closeMode)
-
deallocatePoolEntry
private void deallocatePoolEntry()
-
lease
public java.util.concurrent.Future<PoolEntry<T,C>> lease(java.lang.Object state, Timeout requestTimeout, FutureCallback<PoolEntry<T,C>> callback)
-
servicePendingRequest
private void servicePendingRequest()
-
servicePendingRequests
private void servicePendingRequests(LaxConnPool.PerRoutePool.RequestServiceStrategy serviceStrategy)
-
validatePendingRequests
public void validatePendingRequests()
-
getRoute
public final T getRoute()
-
getMax
public int getMax()
-
setMax
public void setMax(int max)
-
getPendingCount
public int getPendingCount()
-
getLeasedCount
public int getLeasedCount()
-
getAvailableCount
public int getAvailableCount()
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-