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 int
private long
(package private) long
private long
(package private) static final int
private static final long
private static final long
private static final int
private long
private long
(package private) long
Fields 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 void
long
(package private) long
getMask()
private void
final boolean
isTooSoon
(long currentTime) The caller of this method can decide to skip further work if the returned value is true.private void
updateLimits
(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:InvocationGate
The 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:
isTooSoon
in 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()
-