接口:
ApplicationListener:用于host之间通知信息的接口
ConnectionListener:用于host之间连接信息的接口
MessageListener:用于host之间通知信息的接口
ModuleCommunicationListener:由在ModuleCommunicationBuses中有变量改变的通知的类继承
MovementListener:用于节点了解移动模型的接口
UpdateListener:用于通知每个World更新发起
类:
Application:应用程序的基类
CBRConnection:两个DTN节点间恒定比特率的连接
Connection:两个DTN节点间的连接
Coord:2D坐标系,可以进行简单的算术和转换
Debug:随时间戳进行debug信息的打印输出
DTN2Manager:Manages the external convergence layer connections to dtnd.
DTN2Manager.EIDHost:EID用于DTNhost寻址
DTNHost:一个具有DTN能力的节点
DTNSim:仿真平台main函数
Message:由一个节点创造并在节点间传递
ModuleCommunicationBus:内部模块通信总线
NetworkInterface:一个DTN节点的网络接口
ParetoRNG:满足Pareto分布的随机数生成器
Settings:仿真平台设置存储接口
SimClock:仿真平台时钟
SimScenario:用于设置和存储一次仿真运行的设置
Tuple<K, V>:普通的 key—value元组
VBRConnection:DTN节点间的连接
World:包括所有的节点,并负责更新它们的位置和连接
core.DTNSim:
BATCH_MODE_FLAG:-b表示batch模式,终端模式使用
RANGE_DELIMETER:表示批处理模式的分隔符
RESET_METHOD_NAME:所有能够重设类所必需的静态方法的名字
resetList:存储批处理模式下可以重设的类的名字
static void registerForReset(className):注册一个重设类,将一个类(名字)加入ResetList。
下面主要来看一下main函数:
initSettings(String[] confFiles,int firstConfIndex):用于初始化用户设定的setting文件,主要由Settings类中的init,add函数处理。
后面进行setRunIndex,接着创建一个新的DTNSimGUI对象,并start()。
涉及最多的类就是Settings类,下面我们来看一下Setting类。
core.Settings:
Settings类应该在使用前进行初始化,若没有初始化Settings,将使用DEF_SETTINGS_FILE(默认的配置文件"default_settings.txt")。
通常情况下,初始化之后,所给配置文件将覆盖默认配置文件中的所有配置数据,或定义一个新的配置。
所有的配置都满足“键-值”对格式。值可以是单独的或者由逗号分隔的一组值。CSV(逗号分隔值文件)由getCsvInts(String, int)函数读取。配置值不能以括号开头或结尾,表示文件路径的必须是”/“。
static java.util.Properties props:配置文件读入的对象。
SETTING_OUTPUT_S:设置定义写所有读入文件的文件名
两种构造函数带参数表示创建一个带有命名空间(是setting的前缀)的setting。
static void addSettings(String propFile):读取另一个配置文件,并将键值对加入到目前配置中,将已经存在的相同键上的值覆盖。
void assertValidRange(int[] range, String sname):检查参数整数数组包含有效地范围。
boolean contains(String name):如果配置中有name,并非空,返回true。
Object createIntializedObject(String className):使用目前Settings对象中的配置信息,创建(动态加载)一个Object对象
Object createObject(String className):使用没有参数的构造函数创建一个Obejct对象。
static void init(String propFile):将默认配置文件(”default_settings.txt“)读入prop。如果指定了配置文件,将指定配置文件读入prop,覆盖默认配置文件。