Class DefaultInvocationGate

java.lang.Object
ch.qos.logback.core.util.DefaultInvocationGate
All Implemented Interfaces:
InvocationGate

public class DefaultInvocationGate extends Object implements InvocationGate
This class serves as a gateway for invocations of a "costly" operation on a critical execution path.
  • 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 interface InvocationGate
      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()