Class TimerQueue


  • public class TimerQueue
    extends WorkerQueue
    This class runs in a single thread TimerTasks that have been scheduled.

    A similar class is present in java.util package of jdk version >= 1.3; for compatibility with jdk 1.2 it is reimplemented here.

    Version:
    $Revision$
    See Also:
    TimerTask
    • Nested Class Summary

      Nested Classes 
      Modifier and Type Class Description
      protected class  TimerQueue.TimerTaskLoop
      Class that loops getting the next job to be executed and then executing it, in the timer task thread.
    • Constructor Summary

      Constructors 
      Constructor Description
      TimerQueue()
      Creates a new timer queue with default thread name of "TimerTask Thread"
      TimerQueue​(java.lang.String threadName)
      Creates a new timer queue with the specified thread name
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      protected void clear()
      Clears the running thread after the queue has been stopped.
      protected java.lang.Runnable createQueueLoop()
      Creates the loop that will get the next job and process it.
      protected Executable getJobImpl()
      Never call this method, only override in subclasses to perform job getting in a specific way, normally tied to the data structure holding the jobs.
      protected void putJobImpl​(Executable task)
      Never call this method, only override in subclasses to perform job adding in a specific way, normally tied to the data structure holding the jobs.
      void schedule​(TimerTask t)
      Schedules the given TimerTask for immediate execution.
      void schedule​(TimerTask t, long delay)
      Schedule the given TimerTask to be executed after delay milliseconds.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • m_heap

        private Heap m_heap
    • Constructor Detail

      • TimerQueue

        public TimerQueue()
        Creates a new timer queue with default thread name of "TimerTask Thread"
      • TimerQueue

        public TimerQueue​(java.lang.String threadName)
        Creates a new timer queue with the specified thread name
        Parameters:
        threadName -
    • Method Detail

      • schedule

        public void schedule​(TimerTask t)
        Schedules the given TimerTask for immediate execution.
        Parameters:
        t -
      • schedule

        public void schedule​(TimerTask t,
                             long delay)
        Schedule the given TimerTask to be executed after delay milliseconds.
        Parameters:
        t -
        delay -
      • putJobImpl

        protected void putJobImpl​(Executable task)
        Description copied from class: WorkerQueue
        Never call this method, only override in subclasses to perform job adding in a specific way, normally tied to the data structure holding the jobs.
        Overrides:
        putJobImpl in class WorkerQueue
      • getJobImpl

        protected Executable getJobImpl()
                                 throws java.lang.InterruptedException
        Description copied from class: WorkerQueue
        Never call this method, only override in subclasses to perform job getting in a specific way, normally tied to the data structure holding the jobs.
        Overrides:
        getJobImpl in class WorkerQueue
        Returns:
        the exectuable
        Throws:
        java.lang.InterruptedException
      • createQueueLoop

        protected java.lang.Runnable createQueueLoop()
        Description copied from class: WorkerQueue
        Creates the loop that will get the next job and process it.
        Override in subclasses to create a custom loop.
        Overrides:
        createQueueLoop in class WorkerQueue
        Returns:
        the runnable
      • clear

        protected void clear()
        Description copied from class: WorkerQueue
        Clears the running thread after the queue has been stopped.
        After this call, this worker queue is unusable and can be garbaged.
        Overrides:
        clear in class WorkerQueue