📄 event.java
字号:
/** * simulator/Event.java */package simulator;import java.util.Comparator;/** * Represents events that occur at specific times. When this event occurs, the * fire() method will be called. */public class Event{ protected long seq = 0; protected double time = 0; protected EventReceiver receiver = null; public Event(double t, EventReceiver r) { time = t; receiver = r; } /** Returns the time that this event will fire. */ public double getTime() { return time; } public EventReceiver getReceiver() { return receiver; } public void setSeq(long s) { seq = s; } public long getSeq() { return seq; } public String toString() { return "EVENT: Time: " + time + "; Seq: " + seq + "; Receiver: " + receiver; } /** * Called when this event occurs. * * @param forNetwork * the {@link Simulator} triggering this event. */ public void fire(Simulator net) { if (receiver == null) return; receiver.receiveEvent(this); } public int compareWith(Event e1) { double e0Time = this.getTime(); double e1Time = e1.getTime(); if (e0Time < e1Time) return -1; else if (e0Time > e1Time) return 1; assert e0Time == e1Time : "Event times should be equal and are different!"; long e0Seq = this.getSeq(); long e1Seq = e1.getSeq(); // For BOTH negative seq numbers their order is reversed. if (e0Seq < 0 && e1Seq < 0) { if (e0Seq < e1Seq) return 1; else if (e0Seq > e1Seq) return -1; } else { if (e0Seq < e1Seq) return -1; else if (e0Seq > e1Seq) return 1; } assert e0Seq == e1Seq : "Event seqs should be equal and are different!"; return 0; } public static class EventComparator implements Comparator<Event> { public int compare(Event e0, Event e1) { return e0.compareWith(e1); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -