net.sourceforge.jtds.util
Class TimerThread
Thread
net.sourceforge.jtds.util.TimerThread
public class TimerThread
extends Thread
Simple timer class used to implement login and query timeouts.
This thread runs as a Daemon thread to ensure that the java VM will exit
correctly when normal execution is complete.
It provides both a singleton implementation and a default constructor for
the case when more than one timer thread is desired.
$Id: TimerThread.java,v 1.5 2005/04/28 14:29:31 alin_sinpalean Exp $- Alin Sinpalean
- Mike Hutchinson
private static TimerThread | instance - Singleton instance.
|
private long | nextTimeout - Time when the first request time out should occur.
|
private LinkedList | timerList - List of
TimerRequest s to execute, ordered by time.
|
instance
private static TimerThread instance
Singleton instance.
nextTimeout
private long nextTimeout
Time when the first request time out should occur.
timerList
private final LinkedList timerList
List of TimerRequest
s to execute, ordered by time.
TimerThread
public TimerThread()
Construct a new TimerThread
instance.
cancelTimer
public boolean cancelTimer(Object handle)
Remove a redundant timer before it expires.
handle
- handle to the request to be removed from the queue (a
TimerRequest
instance)
true
if timer had not expired
getInstance
public static TimerThread getInstance()
Singleton getter.
hasExpired
public boolean hasExpired(Object handle)
Check whether a timer has expired.
handle
- handle to the request to be checked for expiry (a
TimerRequest
instance)
true
if timer has expired
run
public void run()
Execute the TimerThread
main loop.
setTimer
public Object setTimer(int timeout,
TimerThread.TimerListener l)
Add a timer request to the queue.
The queue is ordered by time so that the head of the list is always the
first timer to expire.
timeout
- the interval in milliseconds after which the timer will
expirel
- TimerListener
to be notified on timeout
- a handle to the timer request, that can later be used with
cancelTimer
updateNextTimeout
private void updateNextTimeout()
Generated on September 18 2009