NS3 中Attribute 学习

在NS3中,每个类都有与之相关的属性,这些属性可以看作是对基本类型的封装,这些属性存储在与类相关的TypeId类中。下面来介绍一下attribute的相关实现:

与属性相关的文件主要位于src/core/model文件夹下面文件名中带有attribute关键字的文件

最基本的类有三个:AttributeValue ,AttributeAccessor和  AttributeChecker 另外还有一个特殊的EmptyAttributeValue

在NS3中,任何属性,都有三个相关量,即属性值,属性访问器,属性检查器。

如果要定义自己的类型,则需要分别创建相应的AttributeValue ,AttributeAccessor和  AttributeChecker。为了方便创建,NS3为我们定义了一些宏,位于文件attribute-helper中。

现在,以integer.h文件中对integer类型的定义为例进行学习:

首先,文件中使用了两个宏,如下所示:

ATTRIBUTE_VALUE_DEFINE_WITH_NAME (int64_t, Integer);
ATTRIBUTE_ACCESSOR_DEFINE (Integer);
从attribute-helper.h中可以找到宏的定义:

#define ATTRIBUTE_VALUE_DEFINE_WITH_NAME(type,name)                     \
  class name ## Value : public AttributeValue                           \
  {                                                                     \
  public:                                                               \
    name ## Value ();                                                   \
    name ## Value (const type &value);                                  \
    void Set (const type &value);                                       \
    type Get (void) const;                                              \
    template <typename T>                                               \
      bool 
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值