NS是一个基于事件驱动的单线程模拟器,在模拟器中有四种可使用的调度器:链表调度器、堆调度器、日历调度器和实时调度器。调度器调度的是事件,下面是事件的定义(event):
class Event {
public:
Event* next_; /*事件链表*/
Event* prev_;
Handler* handler_; /* 处理事件时的句柄 */
double time_; /* 事件执行的时间 */
scheduler_uid_t uid_; /* 全局唯一ID */
Event() : time_(0), uid_(0) {} /*构造函数*/
};
当事件的调度时间到达时,该事件被传递给它的句柄来处理。下面是调度器类本身:
class Scheduler : public TclObject {
p