ONE源代码分析——Report2之MessageDelayReport

这个Report子类用于报告转发message的时延(每个转发的message为一行),根据时延将累计的转发概率排序,warm up时期产生的message将被忽略。

MessageDelayReport类:

继承自Report类,并实现MessageListener接口类。

数据域:

static final String HEADER = "# messageDelay cumulativeProbability"

List delays:所有messages的时延

int nrofCreated:创建的messages个数


函数域:

构造函数MessageDelayReport()直接调用init()函数。


void init()初始化MessageDelayReport类。先调用Report.init()函数,将HEADER写入文件,作为表头,新建delays表。


void newMessage(Message m)如果是在warmup时期,将message的ID加入到warmupId表中,否则nrofCreated++。


void messageTransferred(Message m, DTNHost from, DTNHost to, boolean firstDelivery)如果message不是在warmup时期产生的,而且第一次传递就到达了目的节点dealys表中添加目前仿真时间-message产生时间。(实现MessageListener抽象方法)


void done()输出时延的累计概率分布。





你可能感兴趣的:(one,ONE,java,DTN仿真平台)