Package ch.qos.logback.core.util
Class DefaultInvocationGate
java.lang.Object
ch.qos.logback.core.util.DefaultInvocationGate
- All Implemented Interfaces:
InvocationGate
This class serves as a gateway for invocations of a "costly" operation on a critical execution path.
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) static final intprivate long(package private) longprivate long(package private) static final intprivate static final longprivate static final longprivate static final intprivate longprivate long(package private) longFields inherited from interface ch.qos.logback.core.util.InvocationGate
TIME_UNAVAILABLE -
Constructor Summary
ConstructorsConstructorDescriptionDefaultInvocationGate(long minDelayThreshold, long maxDelayThreshold, long currentTime) -
Method Summary
Modifier and TypeMethodDescriptionprivate voidlong(package private) longgetMask()private voidfinal booleanisTooSoon(long currentTime) The caller of this method can decide to skip further work if the returned value is true.private voidupdateLimits(long currentTime)
-
Field Details
-
MASK_DECREASE_RIGHT_SHIFT_COUNT
static final int MASK_DECREASE_RIGHT_SHIFT_COUNT- See Also:
-
MAX_MASK
private static final int MAX_MASK- See Also:
-
DEFAULT_MASK
static final int DEFAULT_MASK- See Also:
-
mask
private volatile long mask -
invocationCounter
private long invocationCounter -
MASK_INCREASE_THRESHOLD
private static final long MASK_INCREASE_THRESHOLD- See Also:
-
MASK_DECREASE_THRESHOLD
private static final long MASK_DECREASE_THRESHOLD- See Also:
-
minDelayThreshold
private long minDelayThreshold -
maxDelayThreshold
private long maxDelayThreshold -
lowerLimitForMaskMatch
long lowerLimitForMaskMatch -
upperLimitForNoMaskMatch
long upperLimitForNoMaskMatch
-
-
Constructor Details
-
DefaultInvocationGate
public DefaultInvocationGate() -
DefaultInvocationGate
public DefaultInvocationGate(long minDelayThreshold, long maxDelayThreshold, long currentTime)
-
-
Method Details
-
isTooSoon
public final boolean isTooSoon(long currentTime) Description copied from interface:InvocationGateThe caller of this method can decide to skip further work if the returned value is true. Implementations should be able to give a reasonable answer even if current time date is unavailable.- Specified by:
isTooSoonin interfaceInvocationGate- Returns:
- if true, caller should skip further work
-
updateLimits
private void updateLimits(long currentTime) -
getMask
long getMask() -
increaseMask
private void increaseMask() -
decreaseMask
private void decreaseMask() -
getInvocationCounter
public long getInvocationCounter()
-