CS 4773 Object Oriented Systems
DelayThread.java
public class DelayThread extends Thread {
protected DelayCallBack cb;
protected boolean done_flag = false;
protected int sleep_time = 0;
protected boolean suspend_flag = false;
public DelayThread(int sleep_time, DelayCallBack cb) {
this.cb = cb;
this.sleep_time = sleep_time;
done_flag = false;
start();
}
public void kill() {
done_flag = true;
resume();
}
public void PauseDelay() {
suspend_flag = true;
}
public void ContinueDelay() {
resume();
}
public void run() {
while (!done_flag) {
try {
sleep(sleep_time);
}
catch (InterruptedException e) {}
cb.DelayNotification();
if (suspend_flag)
suspend();
suspend_flag = false;
}
}
}