Class CyclicTimeouts<T extends CyclicTimeouts.Expirable>

  • Type Parameters:
    T - the CyclicTimeouts.Expirable entity type
    All Implemented Interfaces:

    public abstract class CyclicTimeouts<T extends CyclicTimeouts.Expirable>
    extends Object
    implements Destroyable
    The Eclipse Jetty and Apache Felix Http Jetty packages are no longer supported.

    An implementation of a timeout that manages many expirable entities whose timeouts are mostly cancelled or re-scheduled.

    A typical scenario is for a parent entity to manage the timeouts of many children entities.

    When a new entity is created, call schedule(Expirable) with the new entity so that this instance can be aware and manage the timeout of the new entity.

    Eventually, this instance wakes up and iterates over the entities provided by iterator(). During the iteration, each entity:

    When the iteration is complete, this instance is re-scheduled with the earliest expiration time calculated during the iteration.

    See Also:
    • Constructor Detail

      • CyclicTimeouts

        public CyclicTimeouts​(Scheduler scheduler)
    • Method Detail

      • schedule

        public void schedule​(T expirable)

        Manages the timeout of a new entity.

        expirable - the new entity to manage the timeout for
      • destroy

        public void destroy()
        Specified by:
        destroy in interface Destroyable