Top Description Inners Fields Constructors Methods
reactor.netty5.http.client

pack-priv final Class Http2Pool

extends Object
implements reactor.netty5.internal.shaded.reactor.pool.InstrumentedPool<Connection>, reactor.netty5.internal.shaded.reactor.pool.InstrumentedPool.PoolMetrics
Class Inheritance
Imports
java.time.Clock, .Duration, java.util.Iterator, .Objects, java.util.concurrent.ConcurrentLinkedDeque, .ConcurrentLinkedQueue, .TimeUnit, java.util.concurrent.atomic.AtomicBoolean, .AtomicIntegerFieldUpdater, .AtomicLongFieldUpdater, .AtomicReferenceFieldUpdater, java.util.function.Function, io.netty5.channel.ChannelHandlerContext, io.netty5.handler.codec.http2.Http2FrameCodec, .Http2MultiplexHandler, io.netty5.handler.ssl.ApplicationProtocolNames, .SslHandler, org.reactivestreams.Publisher, .Subscription, reactor.core.CoreSubscriber, .Disposable, .Disposables, .Scannable, reactor.core.publisher.Mono, .Operators, reactor.netty5.Connection, .FutureMono, .NettyPipeline, reactor.netty5.internal.shaded.reactor.pool.InstrumentedPool, reactor.netty5.internal.shaded.reactor.pool.PoolAcquirePendingLimitException, reactor.netty5.internal.shaded.reactor.pool.PoolAcquireTimeoutException, reactor.netty5.internal.shaded.reactor.pool.PoolConfig, reactor.netty5.internal.shaded.reactor.pool.PoolShutdownException, reactor.netty5.internal.shaded.reactor.pool.PooledRef, reactor.netty5.internal.shaded.reactor.pool.PooledRefMetadata, reactor.netty5.resources.ConnectionProvider, reactor.util.Logger, .Loggers, reactor.util.annotation.Nullable, reactor.util.context.Context

This class is intended to be used only as HTTP/2 connection pool. It doesn't have generic purpose.

The connection is removed from the pool when:

The connection is filtered out when:

This pool always invalidate the PooledRef, there is no release functionality.

If minimum connections is specified, the cached connections with active streams will be kept at that minimum (can be the best effort). However, if the cached connections have reached max concurrent streams, then new connections will be allocated up to the maximum connections limit.

Configurations that are not applicable

This class is based on https://github.com/reactor/reactor-pool/blob/v0.2.7/src/main/java/reactor/pool/SimpleDequePool.java

Author
Violeta Georgieva

Nested and Inner Type Summary

Modifier and TypeClass and Description
pack-priv static class
pack-priv static class
pack-priv static class
pack-priv static class

Field Summary

Modifier and TypeField and Description
pack-priv volatile int
pack-priv static final AtomicIntegerFieldUpdater<Http2Pool>
pack-priv final Clock
pack-priv volatile ConcurrentLinkedQueue<Http2Pool.Slot>
pack-priv static final AtomicReferenceFieldUpdater<Http2Pool, ConcurrentLinkedQueue<E>>
pack-priv static final Function<Connection, Publisher<Void>>
pack-priv Disposable
private static final AtomicIntegerFieldUpdater<Http2Pool>
pack-priv volatile int
pack-priv long
pack-priv static final Logger
pack-priv final Long
pack-priv final long
pack-priv final long
pack-priv final int
pack-priv volatile ConcurrentLinkedDeque<Http2Pool.Borrower>
pending

Pending borrowers queue.

pack-priv static final AtomicReferenceFieldUpdater<Http2Pool, ConcurrentLinkedDeque<E>>
private static final AtomicIntegerFieldUpdater<Http2Pool>
pack-priv volatile int
pack-priv final reactor.netty5.internal.shaded.reactor.pool.PoolConfig<Connection>
pack-priv static final ConcurrentLinkedDeque<E>
pack-priv static final AtomicLongFieldUpdater<Http2Pool>
pack-priv volatile long
pack-priv volatile int
pack-priv static final AtomicIntegerFieldUpdater<Http2Pool>

Constructor Summary

AccessConstructor and Description
pack-priv
Http2Pool(reactor.netty5.internal.shaded.reactor.pool.PoolConfig<Connection> poolConfig, ConnectionProvider.AllocationStrategy<?> allocationStrategy, long maxIdleTime, long maxLifeTime)

Method Summary

Modifier and TypeMethod and Description
public Mono<reactor.netty5.internal.shaded.reactor.pool.PooledRef<Connection>>
public Mono<reactor.netty5.internal.shaded.reactor.pool.PooledRef<Connection>>
acquire(Duration timeout)

public int
pack-priv int
pack-priv int
public int
pack-priv void
public reactor.netty5.internal.shaded.reactor.pool.PoolConfig<Connection>
pack-priv Mono<Void>
public Mono<Void>
pack-priv void
pack-priv void
pack-priv void
pack-priv void
pack-priv Http2Pool.Slot
public int
public int
public int
public boolean
public boolean
pack-priv boolean
pack-priv boolean
public reactor.netty5.internal.shaded.reactor.pool.InstrumentedPool.PoolMetrics
pack-priv void
pack-priv void
pendingAcquireLimitReached(Http2Pool.Borrower borrower, int maxPending)

public int
pack-priv void
pendingOffer(Http2Pool.Borrower
a new Borrower to add to the queue and later either serve or consider pending
borrower
)

pack-priv Http2Pool.Borrower
pollPending(ConcurrentLinkedDeque<Http2Pool.Borrower> borrowers, boolean pollFirst)

pack-priv Http2Pool.Slot
pack-priv void
pack-priv void
pack-priv void
pack-priv void
public long
public Mono<Integer>
Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait