ONE源码阅读之输入模型和运动模型
2012-08-28 12:07
281 查看
输入模型:
ONE仿真系统中,定时产生仿真消息的实现在MessageEventGenerator。首先,它是一个事件队列EventQueue(接口)。MessageEventGenerator通过实现nextEvent来产生一个事件MessageCreateEvent,同时产生一个随机时间n,直到过了n个嘀嗒后才产生下一个事件,这样的话,仿真器只需要在合适的时候调用nextEvent获取一个事件,并处理这个事件即可。
那么怎么产生事件呢?MessageCreateEvent是创建一个仿真消息的事件,继承只externEvent,提供processEvent接口。只要创建一个MessageCreateEvent对象即可。在processEvent的实现中,创建一个消息,这样,在仿真器处理事件的时候即可创建一个仿真消息。(确实非常感慨老外的设计能力,整个系统设计的非常的巧妙)
运动模型:
运动模型告诉host节点在每个嘀嗒该如何运动。以RandomWaypoint为例,该类必须实现了一个getPath接口,这个接口用于提供一个path路径,即运动路径。path路径即由很多很多点组成的一个动态数组。在节点中,每个嘀嗒根据path的路径进行运动,当path中的点集为空时,重新从运动模型获取一个新的path。这样,运动模型只负责生成path,而host只负责遍历path并根据path运动即可。
ONE仿真系统中,定时产生仿真消息的实现在MessageEventGenerator。首先,它是一个事件队列EventQueue(接口)。MessageEventGenerator通过实现nextEvent来产生一个事件MessageCreateEvent,同时产生一个随机时间n,直到过了n个嘀嗒后才产生下一个事件,这样的话,仿真器只需要在合适的时候调用nextEvent获取一个事件,并处理这个事件即可。
那么怎么产生事件呢?MessageCreateEvent是创建一个仿真消息的事件,继承只externEvent,提供processEvent接口。只要创建一个MessageCreateEvent对象即可。在processEvent的实现中,创建一个消息,这样,在仿真器处理事件的时候即可创建一个仿真消息。(确实非常感慨老外的设计能力,整个系统设计的非常的巧妙)
运动模型:
运动模型告诉host节点在每个嘀嗒该如何运动。以RandomWaypoint为例,该类必须实现了一个getPath接口,这个接口用于提供一个path路径,即运动路径。path路径即由很多很多点组成的一个动态数组。在节点中,每个嘀嗒根据path的路径进行运动,当path中的点集为空时,重新从运动模型获取一个新的path。这样,运动模型只负责生成path,而host只负责遍历path并根据path运动即可。
相关文章推荐
- chromium源码阅读(4)-线程模型之IO线程
- Memcache源码阅读(3)---处理用户输入
- memcached源码阅读----使用libevent和多线程模型
- 主题模型lda源码阅读
- Memcache源码阅读(7)---用户输入的处理
- Redis源码阅读——基于epoll的事件模型
- OpenJDK 源码阅读之 Java 字节流输入类的实现
- 计算机视觉之统计形状模型——Stasm源码阅读
- libevent源码阅读 -- select模型的实现
- 阅读Linux设备驱动模型源码之 device结构体成员详解
- Netty源码阅读笔记2: 线程模型
- Android系统源码阅读(16):Android 应用线程的消息循环模型
- ONE源码阅读之源码结构
- Scrapy阅读源码分析<四>
- [置顶] Volley源码阅读(0)
- zabbix源码阅读——zabbix_server
- SDWebImage源码阅读
- [置顶] 【经验】轻量化阅读源码初体验sublime+gradlew命令
- PHP用抛物线的模型实现微信红包生成算法的程序源码
- JDK源码阅读之Set不重复元素集合接口