栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

ns3学习之旅 ObjectBase类

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

ns3学习之旅 ObjectBase类

以下内容是基于《开源网络模拟器ns3 架构与实践》的学习笔记

 属性----参数配置

trace变量----数据输出功能

Objectbase类统一定义以上变量的配置函数。

一、属性配置

1、属性创建以及类型

属性本质上是一个C++类的成员变量。属性系统是链接属性和成员变量的桥梁,由元信息的属性辅助信息和其相应的读写函数组成。

先用GetTypeId()函数获取所要操作类的TypeId对象,再用AddAttribute()函数添加属性辅助信息。其中,属性辅助信息主要有:

  1. 属性名:一个属性在类中的唯一标识
  2. 默认的属性值
  3. 关联属性和成员变量的关联函数。主要是关联辅助信息与私有成员变量,并将属性访问函数指针存贮在属性辅助信息中,以便访问私有成员变量。

一个类的属性在不同对象中可以有不同的取值,但都共用同一组属性辅助信息。

属性类型有多种,比如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",StringVaule("first-output-attribute.txt"));

 然后保存脚本属性。

ConfigStore outputConfig;
outputConfig.ConfigureDefaults();//保存全部元信息中属性的默认值以及全局属性值
outputConfig.ConfigureAttributes();//保存当前脚本所有创建对象的属性值

以上代码应在整个脚本之后,Simulator::Run()之前。

2)属性加载

只需要把属性保存部分的代码中“Mode”属性值设置为“Load”。

ConfigureDefaults()读取全部元信息中属性的默认值以及全局属性值;

ConfigureAttributes()读取保存当前脚本所有创建对象的属性值。

二、trace变量

1、创建trace

trace变量本质是C++类中的一个函数指针成员变量。它的创建类似于属性创建。关键信息有以下3个:

  1. trace名:trace变量在一个类中的唯一标识。
  2. MakeTraceSourceAccessor。创建了一个trace访问函数并将这个函数指针存贮在trace辅助信息中。它的作用是关联trace辅助信息和C++类中的私有指针变量。
  3. 回调函数的签名格式。

2、trace类型

trace变量之间不同的只是函数指针签名格式,主要有:

  1. TracedCallback签名类型:用于与分组相关的行为事件(如分组收发、丢失等)。
  2. TracedVaule签名类型: 用于一个数值变量的大小变化事件(如Tcp拥塞窗口大小变化、一个队列中分组数目变化等)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/384529.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号