Class H2SharingConnPool<T,C extends org.apache.hc.core5.http.HttpConnection>
- java.lang.Object
-
- org.apache.hc.client5.http.impl.nio.H2SharingConnPool<T,C>
-
- Type Parameters:
T- routeC- connection object
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,org.apache.hc.core5.io.ModalCloseable,org.apache.hc.core5.pool.ConnPool<T,C>,org.apache.hc.core5.pool.ConnPoolControl<T>,org.apache.hc.core5.pool.ConnPoolStats<T>,org.apache.hc.core5.pool.ManagedConnPool<T,C>
@Contract(threading=SAFE) @Experimental public class H2SharingConnPool<T,C extends org.apache.hc.core5.http.HttpConnection> extends java.lang.Object implements org.apache.hc.core5.pool.ManagedConnPool<T,C>Experimental connections pool implementation that acts as a caching facade in front of a standardManagedConnPooland shares already leased connections to multiplex message exchanges over active HTTP/2 connections.- Since:
- 5.5
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description (package private) static classH2SharingConnPool.PerRoutePool<T,C extends org.apache.hc.core5.http.HttpConnection>
-
Field Summary
Fields Modifier and Type Field Description private java.util.concurrent.atomic.AtomicBooleanclosedprivate static org.slf4j.LoggerLOGprivate java.util.concurrent.ConcurrentMap<T,H2SharingConnPool.PerRoutePool<T,C>>perRouteCacheprivate org.apache.hc.core5.pool.ManagedConnPool<T,C>pool
-
Constructor Summary
Constructors Constructor Description H2SharingConnPool(org.apache.hc.core5.pool.ManagedConnPool<T,C> pool)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidclose()voidclose(org.apache.hc.core5.io.CloseMode closeMode)voidcloseExpired()voidcloseIdle(org.apache.hc.core5.util.TimeValue idleTime)intgetDefaultMaxPerRoute()intgetMaxPerRoute(T route)intgetMaxTotal()(package private) H2SharingConnPool.PerRoutePool<T,C>getPerRoutePool(T route)java.util.Set<T>getRoutes()org.apache.hc.core5.pool.PoolStatsgetStats(T route)org.apache.hc.core5.pool.PoolStatsgetTotalStats()java.util.concurrent.Future<org.apache.hc.core5.pool.PoolEntry<T,C>>lease(T route, java.lang.Object state, org.apache.hc.core5.util.Timeout requestTimeout, org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.pool.PoolEntry<T,C>> callback)voidrelease(org.apache.hc.core5.pool.PoolEntry<T,C> entry, boolean reusable)voidsetDefaultMaxPerRoute(int max)voidsetMaxPerRoute(T route, int max)voidsetMaxTotal(int max)java.lang.StringtoString()
-
-
-
Field Detail
-
LOG
private static final org.slf4j.Logger LOG
-
pool
private final org.apache.hc.core5.pool.ManagedConnPool<T,C extends org.apache.hc.core5.http.HttpConnection> pool
-
perRouteCache
private final java.util.concurrent.ConcurrentMap<T,H2SharingConnPool.PerRoutePool<T,C extends org.apache.hc.core5.http.HttpConnection>> perRouteCache
-
closed
private final java.util.concurrent.atomic.AtomicBoolean closed
-
-
Method Detail
-
close
public void close(org.apache.hc.core5.io.CloseMode closeMode)
- Specified by:
closein interfaceorg.apache.hc.core5.io.ModalCloseable
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Throws:
java.io.IOException
-
getPerRoutePool
H2SharingConnPool.PerRoutePool<T,C> getPerRoutePool(T route)
-
lease
public java.util.concurrent.Future<org.apache.hc.core5.pool.PoolEntry<T,C>> lease(T route, java.lang.Object state, org.apache.hc.core5.util.Timeout requestTimeout, org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.pool.PoolEntry<T,C>> callback)
-
setMaxTotal
public void setMaxTotal(int max)
- Specified by:
setMaxTotalin interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
getMaxTotal
public int getMaxTotal()
- Specified by:
getMaxTotalin interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
setDefaultMaxPerRoute
public void setDefaultMaxPerRoute(int max)
- Specified by:
setDefaultMaxPerRoutein interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
getDefaultMaxPerRoute
public int getDefaultMaxPerRoute()
- Specified by:
getDefaultMaxPerRoutein interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
setMaxPerRoute
public void setMaxPerRoute(T route, int max)
- Specified by:
setMaxPerRoutein interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
getMaxPerRoute
public int getMaxPerRoute(T route)
- Specified by:
getMaxPerRoutein interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
closeIdle
public void closeIdle(org.apache.hc.core5.util.TimeValue idleTime)
- Specified by:
closeIdlein interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
closeExpired
public void closeExpired()
- Specified by:
closeExpiredin interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
getRoutes
public java.util.Set<T> getRoutes()
- Specified by:
getRoutesin interfaceorg.apache.hc.core5.pool.ConnPoolControl<T>
-
getTotalStats
public org.apache.hc.core5.pool.PoolStats getTotalStats()
- Specified by:
getTotalStatsin interfaceorg.apache.hc.core5.pool.ConnPoolStats<T>
-
getStats
public org.apache.hc.core5.pool.PoolStats getStats(T route)
- Specified by:
getStatsin interfaceorg.apache.hc.core5.pool.ConnPoolStats<T>
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-