ns3重要类
1. simple-ref-count
递归模板,使得通过定义T:SimpleRefCount<T>使得T类都具有计数功能
template <typename T, typename PARENT = empty, typename DELETER = DefaultDeleter<T> >
class SimpleRefCount : public PARENT{}
2.Ptr
Ptr类默认数据成员T类型的指针自带引用计数功能(一般是simple-ref-count的子类)
3.TypeTraits类
用于将某一种类型定性(通过typedef将某种类型重定义为是否为常数类型,是否为指针类型,是否为引用类型等。)
4.Attribute相关
抽象类:都是SimpleRefCount的派生类
AttributeValue- Copy
- SerializeToString 将AttributeValue转换成string形式
- DeserializeFromString 将string形式的AttributeValue转换成其他形式
AttributeAccessor隐藏attribute的设置和查询- Set
(ObjectBase *, const AttributeValue &) - Get
- HasGetter
- HasSetter
- Set
AttributeChecker- CreateValidValue
- Check:类型bool
- GetValueTypeName
- Create:创建对应的
Ptr<AttributeValue> - Copy:简单实现两个AttributeValue之间的赋值
Attribute相关宏
ATTRIBUTE_HELPER_HEADER(type)对应checker,value,accessor三种类定义宏
ATTRIBUTE_HELPER_CPP(type)对应checker,value三种类的实现的宏
《type##Value》
实现序列化和反序列化的时候需要用到<<和>>,因此内置类型必须定义这两种操作。
- 新增的函数
c++
//和Accessor的set函数配合使用,T对应于Accessor中目标服务类的类型
bool GetAccessor (T &value) const {
value = T (m_value);
return true;
}
《type##Checker》
- 《type##Value>》完全继承AttributeChecker,不做任何修改(也是空实现)
MakeSimpleAttributeChecker函数模板,传入模板实参为:对应AttributeValue的内置成员类型,《type##Checker》类型。来实现具体的函数
Accessor
只是定义了Make##type##Accessor函数模板(输入形参为1个或者两个)。用户要生成对应的Accessor还需调用该函数。生成的AttributeAccessor可用于日后设置相应的AttributeValue
5.Callback
6.Trace
TracedCallback
定义callbacklist:
list<Callback<void,T1,T2,T3,T4,T5,T6,T7,T8> > CallbackList;
CallbackList m_callbackList;
TraceValue: 封装一种基本类型和对应的list<callback>所有回调的输入形参都是(旧值,新值)。c++ T m_v; TracedCallback<T,T> m_cb;回调输入的两个Arg都是T类型MakeTraceSourceAccessor- 生成对应的TraceValue的TraceSourceAccessor
c++ Ptr<const TraceSourceAccessor> MakeTraceSourceAccessor MakeTraceSourceAccessor<TraceValue>;
- 生成对应的TraceValue的TraceSourceAccessor
TraceSourceAccessor::connect()调用TraceSourceAccessor的connect函数就能把sink(callback)和TraceSource连接起来
7.TypeId
- 创建一个类的时候,要生成与类名对应的TypeID,并SetParent,AddConstructor。
ns3重要类的更多相关文章
- Java类的继承与多态特性-入门笔记
相信对于继承和多态的概念性我就不在怎么解释啦!不管你是.Net还是Java面向对象编程都是比不缺少一堂课~~Net如此Java亦也有同样的思想成分包含其中. 继承,多态,封装是Java面向对象的3大特 ...
- ns3 Tutorial 中的日志模块(翻译)
转载地址:http://blog.sina.com.cn/s/blog_8ecca79b0101d7fe.html 1 日志模块的使用 在运行 first.cc 脚本时,我们已经简单 ...
- NS3 日志(Logging)、命令行参数、Tracing系统概述(转载)
NS-3日志子系统的提供了各种查看仿真结果的渠道: 一.使用Logging Module 1 [预备知识]日志级别及其对应的宏 NS-3 提供了若干个日志级别来满足不同的 Debug 需求,每一级的日 ...
- cocos2d-x实战 C++卷 学习笔记--第4章 字符串 __String类
前言: <cocos2d-x实战C++卷>学习笔记.(cocos2d-x 是3.0版本) 介绍 cocos2d-x 通用的字符串类 __String . 使用cocos2d::__Str ...
- (五岁以下儿童)NS3样本演示:桥模块演示样品csma-bridge.cc凝视程序
(五岁以下儿童)NS3:桥模块演示样品csma-bridge.cc凝视程序 1.Ns3 bridge模csma-bridge.cc演示示例程序的目光 // Network topology // // ...
- JAVA类与对象(课堂总结)
一:"=="的不同含义 当"=="施加于原始数据类型变量时,是比较变量所保存的数据是否相等当"=="施加于引用类型变量时,是比较这两个变量是 ...
- 类string解析
原创作品,转载请注明来源:http://www.cnblogs.com/shrimp-can/p/5645248.html 在涉及字符串的时候,我们可以定义字符数组或指针,其实还有一个类,专门是为字符 ...
- ns3 myfirst.cc 两个节点点对点通信
首先在ns3.25/examples/tutorial/下找到 first.cc文件,将他拷贝到到scratch目录下. 然后为了方便将代码打出来 /* -*- Mode:C++; c-file-st ...
- Java编程思想学习笔记——复用类
前言 复用代码是Java众多引人注目的功能之一. 达到复用代码的方法有: 组合:新的类由现有类的对象所组成.(复用现有代码的功能,而非它的形式) 继承:按照现有类的类型组建新类.(不改变现有类的形式, ...
随机推荐
- T-Sql学习系列完结
T-Sql(一)简单语法 T-Sql(二)事务(Transaction) T-Sql(三)存储过程(Procedure) T-Sql(四)表关联和视图(view) T-Sql(五)xml操作 T-Sq ...
- T-Sql(二)事务(Transaction)
今天讲下T-Sql语法中事务的用法,事务在项目中一般用的很少,主要用于转账,或是一些多表操作,第一步完成不了滚回,不执行接下的步骤.要么都不完成要么都完成,这是事务的特征. 语法很简单,示例代码如下: ...
- 用PHP抓取页面并分析
在做抓取前,记得把php.ini中的max_execution_time设置的大点,不然会报错的.
- Oracle客户端简易连接报错ORA-12154,TNS-03505
环境: 服务端:RHEL6.5 + Oracle Server 11.2.0.4 客户端:Win2003 + Oracle Client 10.2.0.1 1.问题现象 2.Troubleshooti ...
- 1Z0-053 争议题目解析419
1Z0-053 争议题目解析419 考试科目:1Z0-053 题库版本:V13.02 题库中原题为: 419.In Oracle 11g, by default which one of the fo ...
- 【JS】heatmap.js v1.0 到 v2.0,详细总结一下:)
前段时间,项目要开发热力图插件,研究了heatmap.js,打算好好总结一下. 本文主要有以下几部分内容: 部分源码理解 如何迁移到v2.0 v2.0官方文档译文 关于heatmap.js介绍,请看这 ...
- 一些很棒的js代码
本来是想放在博客园首页的,貌似篇幅不够被移除掉了.后来慢慢补上,看这篇文章吧:一些优秀的代码分析与学习[持续更新],里面的内容会持续更新,这篇文章作废了 1.jQuery初始化代码段 技术亮点:jQu ...
- 你真的了解DOM事件么?
你真的了解DOM事件么? 我们大家都知道,人与人之间的交流可以通过语言,文字,肢体动作,面部微表情等,但是你知道Javascript和HTML之间是通过什么进行交互的么?你又知道Javascript和 ...
- centos6搭建gitlab
前言 原来的项目放在公网的gitlab上,处于安全考虑,在内网搭建一套,有图形界面,可以直接从外网git导入进来,使用了一下觉得挺方便,把安装流程记录下来,参考官网:https://gitlab.co ...
- padding/border与width的关系
本文讲述 padding / border 的设置后是否对 width 有影响,width 等于 auto 与 100% 的区别 CSS 框模型 (Box Model) 规定了元素框处理元素内容.内边 ...