/*
* @(#)Timer.java 1.2 00/04/18
*
* Copyright 1996-1998 by Sun Microsystems, Inc.,
* 901 San Antonio Road, Palo Alto, California, 94303, U.S.A.
* All rights reserved.
*
* This software is the confidential and proprietary information
* of Sun Microsystems, Inc. ("Confidential Information"). You
* shall not disclose such Confidential Information and shall use
* it only in accordance with the terms of the license agreement
* you entered into with Sun.
*/
package com.sun.media.rtsp;
import java.util.*;
public class Timer extends Thread implements Runnable {
private Vector listeners;
private long duration;
private boolean stopped;
public Timer(TimerListener listener, long duration) {
listeners = new Vector();
this.duration = duration / 1000000;
addListener(listener);
stopped = false;
}
public void reset() {
}
public void stopTimer() {
// System.out.println( "stop timer");
stopped = true;
synchronized (this) {
notify();
}
}
public void run() {
// System.out.println( "start timer for " + duration + "ms");
synchronized (this) {
try {
wait(duration);
} catch (Exception e) {
e.printStackTrace();
}
}
if (!stopped) {
for (int i = 0; i < listeners.size(); i++) {
TimerListener listener = (TimerListener) listeners.elementAt(i);
listener.timerExpired();
}
}
}
public void addListener(TimerListener listener) {
listeners.addElement(listener);
}
public void removeListener(TimerListener listener) {
listeners.removeElement(listener);
}
}
|