CS 4773 Object Oriented Systems
DelayThreadMulti.java
import java.util.*;
public class DelayThreadMulti extends DelayThread {
private Vector cbs;
public DelayThreadMulti(int sleep_time, DelayCallBack cb) {
super(sleep_time,cb);
cbs = new Vector();
cbs.addElement(cb);
}
public void AddCallBack(DelayCallBack cb) {
if (!cbs.contains(cb))
cbs.addElement(cb);
}
public void RemoveEntry(DelayCallBack cb) {
cbs.removeElement(cb);
if (cbs.size() == 0)
PauseDelay();
}
public void ContinueDelay(DelayCallBack cb) {
AddCallBack(cb);
resume();
}
public int GetDelay() {
return sleep_time;
}
public void run() {
while (!done_flag) {
try {
sleep(sleep_time);
}
catch (InterruptedException e) {}
if (cbs != null)
for (int i=0;i