TypeId Node::GetTypeId (void) { static TypeId tid = TypeId ("ns3::Node") .SetParent<Object> () .SetGroupName("Network") .AddConstructor<Node> () .AddAttribute ("DeviceList", "The list of devices associated to this Node.", ObjectVectorValue (), MakeObjectVectorAccessor (&Node::m_devices), MakeObjectVectorChecker<NetDevice> ()) .AddAttribute ("ApplicationList", "The list of applications associated to this Node.", ObjectVectorValue (), MakeObjectVectorAccessor (&Node::m_applications), MakeObjectVectorChecker<Application> ()) .AddAttribute ("Id", "The id (unique integer) of this Node.", TypeId::ATTR_GET, // allow only getting it. UintegerValue (0), MakeUintegerAccessor (&Node::m_id), MakeUintegerChecker<uint32_t> ()) .AddAttribute ("SystemId", "The systemId of this node: a unique integer used for parallel simulations.", TypeId::ATTR_GET | TypeId::ATTR_SET, UintegerValue (0), MakeUintegerAccessor (&Node::m_sid), MakeUintegerChecker<uint32_t> ()) ; return tid; }
时间: 2023-06-15 17:03:30 浏览: 157
C++中的RTTI机制详解
这段代码定义了 Node 类的 GetTypeId 函数,用于获取 Node 类的 TypeId。在函数中,首先定义了一个 static 变量 tid,存储了 TypeId 的值。然后使用 SetParent 设置该类的父类为 Object,使用 SetGroupName 设置该类所在的组为 Network。接着,使用 AddConstructor 添加了一个构造函数,使用 AddAttribute 添加了三个属性,分别是 DeviceList,ApplicationList 和 Id,这些属性可以通过相应的访问器和检查器进行访问和修改。最后,返回了 tid。
阅读全文