src/node/node.cc
changeset 1194 b8e957eb0a94
parent 1186 909e9eb2124e
child 1195 53f1175dbe94
equal deleted inserted replaced
1193:ea2185e4e097 1194:b8e957eb0a94
    22 #include "node-list.h"
    22 #include "node-list.h"
    23 #include "net-device.h"
    23 #include "net-device.h"
    24 #include "application.h"
    24 #include "application.h"
    25 #include "packet-socket-factory.h"
    25 #include "packet-socket-factory.h"
    26 #include "ns3/simulator.h"
    26 #include "ns3/simulator.h"
    27 #include "ns3/empty-trace-resolver.h"
    27 #include "ns3/composite-trace-resolver.h"
    28 
    28 
    29 namespace ns3{
    29 namespace ns3{
    30 
    30 
    31 const InterfaceId Node::iid = MakeInterfaceId ("Node", Object::iid);
    31 const InterfaceId Node::iid = MakeInterfaceId ("Node", Object::iid);
    32 
    32 
    57 {}
    57 {}
    58 
    58 
    59 TraceResolver *
    59 TraceResolver *
    60 Node::CreateTraceResolver (TraceContext const &context)
    60 Node::CreateTraceResolver (TraceContext const &context)
    61 {
    61 {
    62   return DoCreateTraceResolver (context);
    62   CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
       
    63   DoFillTraceResolver (*resolver);
       
    64   return resolver;
    63 }
    65 }
    64 
    66 
    65 uint32_t 
    67 uint32_t 
    66 Node::GetId (void) const
    68 Node::GetId (void) const
    67 {
    69 {
   118 Node::GetNApplications (void) const
   120 Node::GetNApplications (void) const
   119 {
   121 {
   120   return m_applications.size ();
   122   return m_applications.size ();
   121 }
   123 }
   122 
   124 
   123 
   125 TraceResolver *
   124 void Node::DoDispose()
   126 Node::CreateDevicesTraceResolver (const TraceContext &context)
       
   127 {
       
   128   ArrayTraceResolver<Ptr<NetDevice> > *resolver = 
       
   129     new ArrayTraceResolver<Ptr<NetDevice> > (context,
       
   130                                              MakeCallback (&Node::GetNDevices, this), 
       
   131                                              MakeCallback (&Node::GetDevice, this));
       
   132   
       
   133   return resolver;
       
   134 }
       
   135 
       
   136 void
       
   137 Node::DoFillTraceResolver (CompositeTraceResolver &resolver)
       
   138 {
       
   139   resolver.Add ("devices", 
       
   140                 MakeCallback (&Node::CreateDevicesTraceResolver, this),
       
   141                 Node::DEVICES);
       
   142 }
       
   143 
       
   144 void 
       
   145 Node::DoDispose()
   125 {
   146 {
   126   for (std::vector<Ptr<NetDevice> >::iterator i = m_devices.begin ();
   147   for (std::vector<Ptr<NetDevice> >::iterator i = m_devices.begin ();
   127        i != m_devices.end (); i++)
   148        i != m_devices.end (); i++)
   128     {
   149     {
   129       Ptr<NetDevice> device = *i;
   150       Ptr<NetDevice> device = *i;
   140     }
   161     }
   141   m_applications.clear ();
   162   m_applications.clear ();
   142   Object::DoDispose ();
   163   Object::DoDispose ();
   143 }
   164 }
   144 
   165 
   145 TraceResolver *
       
   146 Node::DoCreateTraceResolver (TraceContext const &context)
       
   147 {
       
   148   return new EmptyTraceResolver (context);
       
   149 }
       
   150 void 
   166 void 
   151 Node::NotifyDeviceAdded (Ptr<NetDevice> device)
   167 Node::NotifyDeviceAdded (Ptr<NetDevice> device)
   152 {}
   168 {}
   153 
   169 
   154 void
   170 void