以下内容是基于《开源网络模拟器ns3 架构与实践》的学习笔记
属性----参数配置
trace变量----数据输出功能
ObjectBase类统一定义以上变量的配置函数。
一、属性配置
1、属性创建以及类型
属性本质上是一个C++类的成员变量。属性系统是链接属性和成员变量的桥梁,由元信息的属性辅助信息和其相应的读写函数组成。
先用GetTypeId()函数获取所要操作类的TypeId对象,再用AddAttribute()函数添加属性辅助信息。其中,属性辅助信息主要有:
- 属性名:一个属性在类中的唯一标识
- 默认的属性值
- 关联属性和成员变量的关联函数。主要是关联辅助信息与私有成员变量,并将属性访问函数指针存贮在属性辅助信息中,以便访问私有成员变量。
一个类的属性在不同对象中可以有不同的取值,但都共用同一组属性辅助信息。
属性类型有多种,比如BooleanValue等。
2、ConfigStore
ConfigStore是属性配置中一个重要的C++类,用于保存和读取脚本中使用过的属性值。它是ObjectBase类的子类,有三个属性:Mode、Filename和FileFormat。
1)属性保存
需要包含的头文件:
#include "ns3/config-store-module.h"
使用Config::SetDefault()函数设置Mode、Filename和FileFormat。例如:
Config::SetDefault("ns3::ConfigStore::Filename"