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 class
LaxConnPool.PerRoutePool.RequestServiceStrategy
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicInteger
allocated
private java.util.Deque<java.util.concurrent.atomic.AtomicMarkableReference<PoolEntry<T,C>>>
available
private ConnPoolListener<T>
connPoolListener
private ConnPoolStats<T>
connPoolStats
private DisposalCallback<C>
disposalCallback
private java.util.concurrent.ConcurrentMap<PoolEntry<T,C>,java.lang.Boolean>
leased
private int
max
private java.util.Deque<LaxConnPool.LeaseRequest<T,C>>
pending
private PoolReusePolicy
policy
private java.util.concurrent.atomic.AtomicLong
releaseSeqNum
private T
route
private java.util.concurrent.atomic.AtomicBoolean
terminated
private TimeValue
timeToLive
-
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 void
addLeased(PoolEntry<T,C> entry)
private PoolEntry<T,C>
createPoolEntry()
private void
deallocatePoolEntry()
void
enumAvailable(Callback<PoolEntry<T,C>> callback)
void
enumLeased(Callback<PoolEntry<T,C>> callback)
int
getAvailableCount()
private PoolEntry<T,C>
getAvailableEntry(java.lang.Object state)
int
getLeasedCount()
int
getMax()
int
getPendingCount()
T
getRoute()
java.util.concurrent.Future<PoolEntry<T,C>>
lease(java.lang.Object state, Timeout requestTimeout, FutureCallback<PoolEntry<T,C>> callback)
void
release(PoolEntry<T,C> releasedEntry, boolean reusable)
private void
removeLeased(PoolEntry<T,C> entry)
private void
servicePendingRequest()
private void
servicePendingRequests(LaxConnPool.PerRoutePool.RequestServiceStrategy serviceStrategy)
void
setMax(int max)
void
shutdown(CloseMode closeMode)
java.lang.String
toString()
void
validatePendingRequests()
-
-
-
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:
toString
in classjava.lang.Object
-
-