Class IdleTimeout

Direct Known Subclasses:

public abstract class IdleTimeout extends Object
An Abstract implementation of an Idle Timeout.

This implementation is optimised that timeout operations are not cancelled on every operation. Rather timeout are allowed to expire and a check is then made to see when the last operation took place. If the idle timeout has not expired, the timeout is rescheduled for the earliest possible time a timeout could occur.

  • Constructor Details

    • IdleTimeout

      public IdleTimeout(Scheduler scheduler)
      scheduler - A scheduler used to schedule checks for the idle timeout.
  • Method Details

    • getScheduler

      public Scheduler getScheduler()
    • getIdleFor

      public long getIdleFor()
      the period of time, in milliseconds, that this object was idle
    • getIdleTimeout

      public long getIdleTimeout()
      the idle timeout in milliseconds
      See Also:
    • setIdleTimeout

      public void setIdleTimeout(long idleTimeout)

      Sets the idle timeout in milliseconds.

      A value that is less than or zero disables the idle timeout checks.

      idleTimeout - the idle timeout in milliseconds
      See Also:
    • notIdle

      public void notIdle()
      This method should be called when non-idle activity has taken place.
    • onOpen

      public void onOpen()
    • onClose

      public void onClose()
    • checkIdleTimeout

      protected long checkIdleTimeout()
    • onIdleExpired

      protected abstract void onIdleExpired(TimeoutException timeout)
      This abstract method is called when the idle timeout has expired.
      timeout - a TimeoutException
    • isOpen

      public abstract boolean isOpen()
      This abstract method should be called to check if idle timeouts should still be checked.
      True if the entity monitored should still be checked for idle timeouts