World类
数据域:
int sizeX,sizeY:表示节点位置
List<EventQueue> eventQueues:事件队列列表
double updateInterval:更新间隔
SimClock simClock:仿真时钟
double nextQueueEventTime:下一次事件队列触发时间
EventQueue nextEventQueue:下一个事件队列
List<DTNHost> hosts:节点列表,排序根据其网络地址
boolean simulateConnection:
ArrayList<DTNHost> updateOrder:节点以这个列表中的顺序被更新
boolean isCancelled:仿真是否在UI界面被终止
List<UpdateListener> updateListeners:UpdateListener存储列表
ScheduleUpdatesQueue scheduleUpdates:计划更新需求列表,该类是EventQueue接口的一个实现,可以满足在特殊的仿真时间触发一个更新事件。
boolean simulateConOnce:
boolean isConSimulated:
函数域:
构造函数World(List<DTNHost> hosts, int sizeX, int sizeY, double updateInterval, List<UpdateListener> updateListeners, boolean simulateConnections, List<EventQueue> eventQueues):初始化World对象
initSettings():创建一个命名空间为“optimization”的Settings对象,设置节点组的更新次序
void update():double runUntil表示本次更新运行时间,然后设置下一次的EventQueue;进入循环,在下次EventQueue时间之前处理本次更新,从本次EventQueue中提取事件,通过事件处理函数processEvent(World world)进行处理,通过函数moveHosts()updateHosts(double),移动节点,处理事件后更新所有节点;通知所有的UpdateListener,本次更新内容。此过程循环到整个仿真时间到,或有外部终止。
附一张ONE程序流程图: