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:
Closeable, 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 Object
implements org.apache.hc.core5.pool.ManagedConnPool<T,C>
Experimental connections pool implementation that acts as a caching facade in front of
a standard
ManagedConnPool and shares already leased connections to multiplex
message exchanges over active HTTP/2 connections.- Since:
- 5.5
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classH2SharingConnPool.PerRoutePool<T, C extends org.apache.hc.core5.http.HttpConnection> -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate final AtomicBooleanprivate static final org.slf4j.Loggerprivate final ConcurrentMap<T, H2SharingConnPool.PerRoutePool<T, C>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidclose()voidclose(org.apache.hc.core5.io.CloseMode closeMode) voidvoidcloseIdle(org.apache.hc.core5.util.TimeValue idleTime) intintgetMaxPerRoute(T route) int(package private) H2SharingConnPool.PerRoutePool<T, C> getPerRoutePool(T route) org.apache.hc.core5.pool.PoolStatsorg.apache.hc.core5.pool.PoolStatslease(T route, Object state, org.apache.hc.core5.util.Timeout requestTimeout, org.apache.hc.core5.concurrent.FutureCallback<org.apache.hc.core5.pool.PoolEntry<T, C>> callback) voidvoidsetDefaultMaxPerRoute(int max) voidsetMaxPerRoute(T route, int max) voidsetMaxTotal(int max) toString()
-
Field Details
-
LOG
private static final org.slf4j.Logger LOG -
pool
-
perRouteCache
private final ConcurrentMap<T, H2SharingConnPool.PerRoutePool<T, C extends org.apache.hc.core5.http.HttpConnection>> perRouteCache -
closed
-
-
Constructor Details
-
H2SharingConnPool
-
-
Method Details
-
close
public void close(org.apache.hc.core5.io.CloseMode closeMode) - Specified by:
closein interfaceorg.apache.hc.core5.io.ModalCloseable
-
close
- Specified by:
closein interfaceAutoCloseable- Specified by:
closein interfaceCloseable- Throws:
IOException
-
getPerRoutePool
-
lease
-
release
-
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
-
getMaxPerRoute
-
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
-
getTotalStats
public org.apache.hc.core5.pool.PoolStats getTotalStats()- Specified by:
getTotalStatsin interfaceorg.apache.hc.core5.pool.ConnPoolStats<T>
-
getStats
-
toString
-