import java.util.Vector; public class EventListImpl implements EventList { private Vector data; public EventListImpl() { data = new Vector(); } public boolean add(Event e) { data.addElement(e); return true; } public Event removeNext() { if (data.isEmpty()) { return null; } int firstIndex = 0; double first = ((Event)data.elementAt(firstIndex)).getTime(); for (int i = 0; i < data.size(); i++) { if (((Event)data.elementAt(i)).getTime() < first) { first = ((Event)data.elementAt(i)).getTime(); firstIndex = i; } } Event next = (Event)data.elementAt(firstIndex); data.removeElement(next); return next; } public String toString() { return data.toString(); } public Event removeTimer(int entity) { int timerIndex = -1; Event timer = null; for (int i = 0; i < data.size(); i++) { if ((((Event)(data.elementAt(i))).getType() == NetworkSimulator.TIMERINTERRUPT) && (((Event)(data.elementAt(i))).getEntity() == entity)) { timerIndex = i; break; } } if (timerIndex != -1) { timer = (Event)(data.elementAt(timerIndex)); data.removeElement(timer); } return timer; } public double getLastPacketTime(int entityTo) { double time = 0; for (int i = 0; i < data.size(); i++) { if ((((Event)(data.elementAt(i))).getType() == NetworkSimulator.FROMLAYER3) && (((Event)(data.elementAt(i))).getEntity() == entityTo)) { time = ((Event)(data.elementAt(i))).getTime(); } } return time; } }