src/node/node.cc
changeset 568 e1660959ecbb
parent 535 fb6735f93868
child 579 7e31a7f75fee
equal deleted inserted replaced
567:6fb98941c36f 568:e1660959ecbb
    67 {
    67 {
    68   m_sid = s;
    68   m_sid = s;
    69 }
    69 }
    70 
    70 
    71 uint32_t 
    71 uint32_t 
    72 Node::AddDevice (NetDevice *device)
    72 Node::AddDevice (Ptr<NetDevice> device)
    73 {
    73 {
    74   device->Ref ();
       
    75   uint32_t index = m_devices.size ();
    74   uint32_t index = m_devices.size ();
    76   m_devices.push_back (device);
    75   m_devices.push_back (device);
    77   DoAddDevice (device);
    76   DoAddDevice (device);
    78   device->SetIfIndex(index);
    77   device->SetIfIndex(index);
    79   return index;
    78   return index;
    80 }
    79 }
    81 NetDevice *
    80 Ptr<NetDevice>
    82 Node::GetDevice (uint32_t index) const
    81 Node::GetDevice (uint32_t index) const
    83 {
    82 {
    84   return m_devices[index];
    83   return m_devices[index];
    85 }
    84 }
    86 uint32_t 
    85 uint32_t 
    89   return m_devices.size ();
    88   return m_devices.size ();
    90 }
    89 }
    91 
    90 
    92 void Node::DoDispose()
    91 void Node::DoDispose()
    93 {
    92 {
    94   for (std::vector<NetDevice *>::iterator i = m_devices.begin ();
    93   for (std::vector<Ptr<NetDevice> >::iterator i = m_devices.begin ();
    95        i != m_devices.end (); i++)
    94        i != m_devices.end (); i++)
    96     {
    95     {
    97       NetDevice *device = *i;
    96       Ptr<NetDevice> device = *i;
    98       device->Dispose ();
    97       device->Dispose ();
    99       device->Unref ();
    98       *i = 0;
   100     }
    99     }
   101   m_devices.clear ();
   100   m_devices.clear ();
   102   NsUnknown::DoDispose ();
   101   NsUnknown::DoDispose ();
   103 }
   102 }
   104 
   103