Package reactor.netty.resources
Interface ConnectionProvider.AllocationStrategy<A extends ConnectionProvider.AllocationStrategy<A>>
- All Known Implementing Classes:
Http2AllocationStrategy
- Enclosing interface:
- ConnectionProvider
public static interface ConnectionProvider.AllocationStrategy<A extends ConnectionProvider.AllocationStrategy<A>>
-
Method Summary
Modifier and TypeMethodDescriptioncopy()Returns a deep copy of this instance.intBest-effort peek at the state of the strategy which indicates roughly how many more connections can currently be allocated.intgetPermits(int desired) Try to get the permission to allocate adesiredpositive number of new connections.intReturns the best estimate of the number of permits currently granted, between 0 andInteger.MAX_VALUE.intReturns the maximum number of permits this strategy can grant in total, orInteger.MAX_VALUEfor unbounded.intReturn the minimum number of permits this strategy tries to maintain granted (reflecting a minimal size for the pool), or0for scale-to-zero.voidreturnPermits(int returned) Update the strategy to indicate that N connections were discarded, potentially leaving space for N new ones to be allocated.
-
Method Details
-
copy
A copy()Returns a deep copy of this instance.- Returns:
- a deep copy of this instance
-
estimatePermitCount
int estimatePermitCount()Best-effort peek at the state of the strategy which indicates roughly how many more connections can currently be allocated. Should be paired withgetPermits(int)for an atomic permission.- Returns:
- an ESTIMATED count of how many more connections can currently be allocated
-
getPermits
int getPermits(int desired) Try to get the permission to allocate adesiredpositive number of new connections. Returns the permissible number of connections which MUST be created (otherwise the internal live counter of the strategy might be off). This permissible number might be zero, and it can also be a greater number thandesired. Once a connection is discarded from the pool, it must update the strategy usingreturnPermits(int)(which can happen in batches or with value 1).- Parameters:
desired- the desired number of new connections- Returns:
- the actual number of new connections that MUST be created, can be 0 and can be more than
desired
-
permitGranted
int permitGranted()Returns the best estimate of the number of permits currently granted, between 0 andInteger.MAX_VALUE.- Returns:
- the best estimate of the number of permits currently granted, between 0 and
Integer.MAX_VALUE
-
permitMinimum
int permitMinimum()Return the minimum number of permits this strategy tries to maintain granted (reflecting a minimal size for the pool), or0for scale-to-zero.- Returns:
- the minimum number of permits this strategy tries to maintain, or
0
-
permitMaximum
int permitMaximum()Returns the maximum number of permits this strategy can grant in total, orInteger.MAX_VALUEfor unbounded.- Returns:
- the maximum number of permits this strategy can grant in total, or
Integer.MAX_VALUEfor unbounded
-
returnPermits
void returnPermits(int returned) Update the strategy to indicate that N connections were discarded, potentially leaving space for N new ones to be allocated. Users MUST ensure that this method isn't called with a value greater than the number of held permits it has.Some strategy MIGHT throw an
IllegalArgumentExceptionif it can be determined the number of returned permits is not consistent with the strategy's limits and delivered permits.
-