public class LockFreeBucket extends AbstractBucket implements LocalBucket, ComparableByContent<LockFreeBucket>
| Modifier and Type | Field and Description |
|---|---|
static SerializationHandle<LockFreeBucket> |
SERIALIZATION_HANDLE |
INFINITY_DURATION, UNLIMITED_AMOUNT| Constructor and Description |
|---|
LockFreeBucket(BucketConfiguration configuration,
MathType mathType,
TimeMeter timeMeter) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addTokensImpl(long tokensToAdd) |
protected VerboseResult<Nothing> |
addTokensVerboseImpl(long tokensToAdd) |
protected long |
consumeAsMuchAsPossibleImpl(long limit) |
protected VerboseResult<Long> |
consumeAsMuchAsPossibleVerboseImpl(long limit) |
protected long |
consumeIgnoringRateLimitsImpl(long tokensToConsume) |
protected VerboseResult<Long> |
consumeIgnoringRateLimitsVerboseImpl(long tokensToConsume) |
boolean |
equalsByContent(LockFreeBucket other) |
protected EstimationProbe |
estimateAbilityToConsumeImpl(long tokensToEstimate) |
protected VerboseResult<EstimationProbe> |
estimateAbilityToConsumeVerboseImpl(long tokensToEstimate) |
protected void |
forceAddTokensImpl(long tokensToAdd) |
protected VerboseResult<Nothing> |
forceAddTokensVerboseImpl(long tokensToAdd) |
long |
getAvailableTokens()
Returns amount of available tokens in this bucket.
|
protected VerboseResult<Long> |
getAvailableTokensVerboseImpl() |
BucketConfiguration |
getConfiguration()
Returns configuration of this bucket.
|
SynchronizationStrategy |
getSynchronizationStrategy()
Returns the synchronization strategy that is used by this bucket
|
TimeMeter |
getTimeMeter()
Returns the clock that is used by this bucket
|
protected void |
replaceConfigurationImpl(BucketConfiguration newConfiguration,
TokensInheritanceStrategy tokensInheritanceStrategy) |
protected VerboseResult<Nothing> |
replaceConfigurationVerboseImpl(BucketConfiguration newConfiguration,
TokensInheritanceStrategy tokensInheritanceStrategy) |
protected long |
reserveAndCalculateTimeToSleepImpl(long tokensToConsume,
long waitIfBusyNanosLimit) |
void |
reset()
Reset all tokens up to maximum capacity.
|
protected VerboseResult<Nothing> |
resetVerboseImpl() |
Bucket |
toListenable(BucketListener listener)
Returns new copy of this bucket instance decorated by
listener. |
String |
toString() |
protected ConsumptionProbe |
tryConsumeAndReturnRemainingTokensImpl(long tokensToConsume) |
protected VerboseResult<ConsumptionProbe> |
tryConsumeAndReturnRemainingTokensVerboseImpl(long tokensToConsume) |
protected boolean |
tryConsumeImpl(long tokensToConsume) |
protected VerboseResult<Boolean> |
tryConsumeVerboseImpl(long tokensToConsume) |
addTokens, asBlocking, asScheduler, asVerbose, completedFuture, consume, consume, consumeIgnoringRateLimits, consumeUninterruptibly, estimateAbilityToConsume, failedFuture, forceAddTokens, getListener, replaceConfiguration, tryConsume, tryConsume, tryConsume, tryConsumeAndReturnRemaining, tryConsumeAsMuchAsPossible, tryConsumeAsMuchAsPossible, tryConsumeUninterruptiblyclone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, waitfromBinarySnapshot, fromJsonCompatibleSnapshot, toBinarySnapshot, toJsonCompatibleSnapshotaddTokens, asBlocking, asScheduler, asVerbose, builder, consumeIgnoringRateLimits, estimateAbilityToConsume, forceAddTokens, replaceConfiguration, tryConsume, tryConsumeAndReturnRemaining, tryConsumeAsMuchAsPossible, tryConsumeAsMuchAsPossibleequalsconsume, consumeUninterruptibly, tryConsume, tryConsume, tryConsume, tryConsumeUninterruptibly, tryConsumeUninterruptibly, tryConsumeUninterruptiblytryConsumepublic static final SerializationHandle<LockFreeBucket> SERIALIZATION_HANDLE
public LockFreeBucket(BucketConfiguration configuration, MathType mathType, TimeMeter timeMeter)
public Bucket toListenable(BucketListener listener)
Bucketlistener.
The created bucket will share same tokens with source bucket and vice versa.
See javadocs for BucketListener in order to understand semantic of listener.toListenable in interface Bucketlistener - the listener of bucket events.listenerprotected long consumeAsMuchAsPossibleImpl(long limit)
consumeAsMuchAsPossibleImpl in class AbstractBucketprotected boolean tryConsumeImpl(long tokensToConsume)
tryConsumeImpl in class AbstractBucketprotected ConsumptionProbe tryConsumeAndReturnRemainingTokensImpl(long tokensToConsume)
tryConsumeAndReturnRemainingTokensImpl in class AbstractBucketprotected EstimationProbe estimateAbilityToConsumeImpl(long tokensToEstimate)
estimateAbilityToConsumeImpl in class AbstractBucketprotected long reserveAndCalculateTimeToSleepImpl(long tokensToConsume,
long waitIfBusyNanosLimit)
reserveAndCalculateTimeToSleepImpl in class AbstractBucketprotected void addTokensImpl(long tokensToAdd)
addTokensImpl in class AbstractBucketprotected void forceAddTokensImpl(long tokensToAdd)
forceAddTokensImpl in class AbstractBucketpublic void reset()
Bucketprotected void replaceConfigurationImpl(BucketConfiguration newConfiguration, TokensInheritanceStrategy tokensInheritanceStrategy)
replaceConfigurationImpl in class AbstractBucketprotected long consumeIgnoringRateLimitsImpl(long tokensToConsume)
consumeIgnoringRateLimitsImpl in class AbstractBucketprotected VerboseResult<Long> consumeAsMuchAsPossibleVerboseImpl(long limit)
consumeAsMuchAsPossibleVerboseImpl in class AbstractBucketprotected VerboseResult<Boolean> tryConsumeVerboseImpl(long tokensToConsume)
tryConsumeVerboseImpl in class AbstractBucketprotected VerboseResult<ConsumptionProbe> tryConsumeAndReturnRemainingTokensVerboseImpl(long tokensToConsume)
tryConsumeAndReturnRemainingTokensVerboseImpl in class AbstractBucketprotected VerboseResult<EstimationProbe> estimateAbilityToConsumeVerboseImpl(long tokensToEstimate)
estimateAbilityToConsumeVerboseImpl in class AbstractBucketprotected VerboseResult<Long> getAvailableTokensVerboseImpl()
getAvailableTokensVerboseImpl in class AbstractBucketprotected VerboseResult<Nothing> addTokensVerboseImpl(long tokensToAdd)
addTokensVerboseImpl in class AbstractBucketprotected VerboseResult<Nothing> forceAddTokensVerboseImpl(long tokensToAdd)
forceAddTokensVerboseImpl in class AbstractBucketprotected VerboseResult<Nothing> resetVerboseImpl()
resetVerboseImpl in class AbstractBucketprotected VerboseResult<Nothing> replaceConfigurationVerboseImpl(BucketConfiguration newConfiguration, TokensInheritanceStrategy tokensInheritanceStrategy)
replaceConfigurationVerboseImpl in class AbstractBucketprotected VerboseResult<Long> consumeIgnoringRateLimitsVerboseImpl(long tokensToConsume)
consumeIgnoringRateLimitsVerboseImpl in class AbstractBucketpublic long getAvailableTokens()
BucketTypically you should avoid using of this method for, because available tokens can be changed by concurrent transactions for case of multithreaded/multi-process environment.
getAvailableTokens in interface Bucketpublic BucketConfiguration getConfiguration()
LocalBucketgetConfiguration in interface LocalBucketpublic TimeMeter getTimeMeter()
LocalBucketgetTimeMeter in interface LocalBucketpublic SynchronizationStrategy getSynchronizationStrategy()
LocalBucketgetSynchronizationStrategy in interface LocalBucketpublic boolean equalsByContent(LockFreeBucket other)
equalsByContent in interface ComparableByContent<LockFreeBucket>Copyright © 2022. All rights reserved.