开始接触peersim的时候,最早想知道的问题就是peersim如何读取配置文件,如何获取配置信息。 有关配置文件处理的类都在报peersim.config中,主要看Configuration和FastConfig两个类来获取配置信息。 1)configContainer将所有配置信息储存在变量config(import java.util.Properties)中; /** * The properties object that stores all configuration information. */ private Properties config; 并封装了很多读取配置信息的方法,但是都是提供给Configration类调用,用户通过调用Configuration中的方法获取配置信息: 可根据需要获取不同类型的返回值
2)configProperites,继承了Properties,扩展了Properties的功能。 3)Configuration,获取配置信息,主要是对configContainer的方法进行了封装,使获取配置信息更方便; 注意这一个配置参数: static final String PAR_INCLUDE = "include"; #用来配置init或者control的运行先后顺序 4)FastConfig,专门快速获取在协议中配置的linkable和transport: private static final String PAR_LINKABLE = "linkable"; private static final String PAR_TRANSPORT = "transport"; public static int getLinkable(int pid) public static int getTransport(int pid)
其实用户只需要调用Configuration中的方法来获取配置的信息,例如, 这是一个用户自定义的观测各节点数值的control类,只列出构造函数: 01 20 } protocol.avg example.aggregation.AverageFunction control.avgo AverageObserver control.avgo.protocol avg #avg就是上面第一行配置好的protocol accuray没有配置,configuraiton就把默认值-1传给它(Configuration.getDouble(name + "." + PAR_ACCURACY, -1) 注意:构造函数的参数name就是前缀control.avgo,想要配置参数,类的构造函数就必须有且只有一个string参数。
上面说的主要是peersim如何获取配置信心的过程,下面列出peersim内核中所有可能的配置信息(即非用户定义的配置参数): network.node network.initialCapacity network.size
simulation.cycles simulation.nodefaultcycle
simulation.endtime simulation.logtime simulation.eventqueue |