ns-3 fourth.cc trace使用

/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
/*
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation;
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#include "ns3/object.h"
#include "ns3/uinteger.h"
#include "ns3/traced-value.h"
#include "ns3/trace-source-accessor.h"
#include  "ns3/mymqtt-module.h"
#include <iostream>
#include "ns3/core-module.h"
using namespace ns3;

class MyObject : public Object
{
public:
  /**
   * Register this type.
   * \return The TypeId.
   */
  static TypeId GetTypeId (void)
  {
    static TypeId tid = TypeId ("MyObject")
      .SetParent<Object> ()
      .SetGroupName ("Tutorial")
      .AddConstructor<MyObject> ()
      .AddTraceSource ("MyInteger",
                       "An integer value to trace.",
                       MakeTraceSourceAccessor (&MyObject::m_myInt),
                       "ns3::TracedValueCallback::Int32")//这个位置必须是ns3::TracedValueCallback::___下划线处内容按ctrl+鼠标移动                                                                                   到TracedValueCallback上可在eclipse下看到备选的内容如下图1,2所示
    ;
    return tid;
  }

  MyObject () {}
  TracedValue<int32_t> m_myInt;
};

void
IntTrace (int32_t oldValue, int32_t newValue)
{
  std::cout << "Traced " << oldValue << " to " << newValue << std::endl;
}

//void
//TimeTrace (Time oldValue, Time newValue)
//{
//  std::cout << "Traced " << oldValue << " to " << newValue << std::endl;
//}
int
main (int argc, char *argv[])
{

  Ptr<MyObject> myObject = CreateObject<MyObject> ();//此处必须是由CreateObject创建,不能是Create
  myObject->TraceConnectWithoutContext ("MyInteger", MakeCallback (&IntTrace));

  myObject->m_myInt = 1234;

//  Ptr<broker> myObject = CreateObject<bbbbb> ();
 // myObject->TraceConnectWithoutContext ("MyInteger", MakeCallback (&IntTrace));
 // myObject->m_myInt = 1234;
//  myObject->TraceConnectWithoutContext ("_time", MakeCallback (&TimeTrace));
   //myObject->rec_time=Time(10);
}

                                                               图1

                                                               图2

另外有篇文章大家可参考下

https://www.h3399.cn/201912/742778.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值