ONE源代码分析——core7之SimScenario

这个类是用来存储和获取Setting文件中的相关配置,为一次仿真提供整体策略。

SimScenario类:

数据域:

static SimScenario myinstance

String类型静态常量,用于从Setting文件中获取相关的配置信息:

SCENARIO_NS = “Scenario”:命名空间

NROF_GROUPS_S = “nrofHostGroups”:节点组的个数

NROF_INTTYPES_S = "nrofInterfaceTypes":接口类型个数

NAME_S = “name”:scenario名字

END_TIME_S = "endTime":结束时间

UP_INT_S = “updateInterval”:更新间隔

SIM_CON_S = “simulateConnections”:仿真连接


INTTYPE_NS = “Interface”:接口类型的命名空间

INTTYPE_S = “type”:接口类型

INTNAME_S = “name”:接口名字


APPTYPE_NS = “Application”:应用的命名空间

APPTYPE_S = “type”:应用的类型

APPCOUNT_S = “nrofApplication”:应用的个数


GROUP_NS = “Group”:节点组的命名空间

GROUP_ID_S = “groupID”:组的id

NROF_HOSTS_S = "nrofHosts":组中节点个数

MOVEMENT_MODEL_S = “movementModel”:移动模型类命名空间

ROUTER_S = “router”:路由协议命名空间

NROF_INTERF_S = “nrofInterfaces”:组中接口的个数

INTERFACENAME_S = “interface”:组中接口的名字

GAPPNAME_S = “application”:组中应用名字


MM_PACKAGE = “movement.”:查询移动模型的包

ROUTING_PACKAGE = “routing.”:查询路由协议的包

INTTYPE_PACKAGE = “interfaces.”:查询接口的包

APP_PACKAGE = “application.”:查询应用的包


World world:仿真使用的World模型

List hosts:本次仿真所有的节点

String name:本次仿真的名字

int nrofGroups:组的数量

int worldSizeX:World模型的宽度

int worldSizeY:world模型的高度

double maxHostRange:最大节点通信范围

double endTime:仿真结束时间

double updateInterval:更新时间间隔

EventQueueHandler eqHandler:外部事件队列

boolean simulateConnections:节点间的连接是否被仿真

SimMap simMap:节点移动使用的地图文件(如果有的话)


List connectionListeners:全局连接事件监测

List messageListeners:全局消息事件监测

List movementListeners:全局移动事件监测

List updateListeners:全局更新事件监测

List applicationListeners:全局应用事件监测


函数域:

构造函数SimScenario()从Setting中获取数据,创建SimScenario对象。利用获取的数据,创建一个world模型。


void createHosts()创建仿真策略中的节点。首先,创建一个空节点表,然后进入一个for循环,循环次数等于节点组的个数。每次循环取出一组节点的组名称、节点数量、接口数量、移动模型、路由协议,并检查是否是有效值,接着,根据接口和app数量,安装接口和app;如果移动模型是MapBasedMovement对象,则提取出地图对象;最后,根组中节点数量,进入for循环创建节点。

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