这个类是用来存储和获取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
String name:本次仿真的名字
int nrofGroups:组的数量
int worldSizeX:World模型的宽度
int worldSizeY:world模型的高度
double maxHostRange:最大节点通信范围
double endTime:仿真结束时间
double updateInterval:更新时间间隔
EventQueueHandler eqHandler:外部事件队列
boolean simulateConnections:节点间的连接是否被仿真
SimMap simMap:节点移动使用的地图文件(如果有的话)
List
List
List
List
List
函数域:
构造函数SimScenario()从Setting中获取数据,创建SimScenario对象。利用获取的数据,创建一个world模型。
void createHosts()创建仿真策略中的节点。首先,创建一个空节点表,然后进入一个for循环,循环次数等于节点组的个数。每次循环取出一组节点的组名称、节点数量、接口数量、移动模型、路由协议,并检查是否是有效值,接着,根据接口和app数量,安装接口和app;如果移动模型是MapBasedMovement对象,则提取出地图对象;最后,根组中节点数量,进入for循环创建节点。