public static interface ConnectionProvider.AllocationStrategy<A extends ConnectionProvider.AllocationStrategy<A>>
Modifier and Type  Method and Description 

A 
copy()
Returns a deep copy of this instance.

int 
estimatePermitCount()
Besteffort peek at the state of the strategy which indicates roughly how many more connections can currently be
allocated.

int 
getPermits(int desired)
Try to get the permission to allocate a
desired positive number of new connections. 
int 
permitGranted()
Returns the best estimate of the number of permits currently granted, between 0 and
Integer.MAX_VALUE . 
int 
permitMaximum()
Returns the maximum number of permits this strategy can grant in total, or
Integer.MAX_VALUE for unbounded. 
int 
permitMinimum()
Return the minimum number of permits this strategy tries to maintain granted
(reflecting a minimal size for the pool), or
0 for scaletozero. 
void 
returnPermits(int returned)
Update the strategy to indicate that N connections were discarded, potentially leaving space
for N new ones to be allocated.

A copy()
int estimatePermitCount()
getPermits(int)
for an atomic permission.int getPermits(int desired)
desired
positive 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 than desired
.
Once a connection is discarded from the pool, it must update the strategy using returnPermits(int)
(which can happen in batches or with value 1).desired
 the desired number of new connectionsdesired
int permitGranted()
Integer.MAX_VALUE
.Integer.MAX_VALUE
int permitMinimum()
0
for scaletozero.0
int permitMaximum()
Integer.MAX_VALUE
for unbounded.Integer.MAX_VALUE
for unboundedvoid returnPermits(int returned)
Some strategy MIGHT throw an IllegalArgumentException
if it can be determined the number of returned permits
is not consistent with the strategy's limits and delivered permits.