convert Arp code to use Ptr<Node> instead of Node *

Mathieu Lacage 2007-05-10 07:33:26 +02:00
parent c12d5a1142
commit b67d398976
2 changed files with 7 additions and 14 deletions

View File

@ -36,17 +36,13 @@ namespace ns3 {
const uint16_t Arp::PROT_NUMBER = 0x0806; const uint16_t Arp::PROT_NUMBER = 0x0806;
Arp::Arp (Node *node) Arp::Arp (Ptr<Node> node)
: L3Protocol (PROT_NUMBER, 0/* XXX: correct version number ? */ ), : L3Protocol (PROT_NUMBER, 0/* XXX: correct version number ? */ ),
m_node (node) m_node (node)
{ {}
m_node->Ref ();
}
Arp::~Arp () Arp::~Arp ()
{ {}
Dispose ();
}
void void
Arp::DoDispose (void) Arp::DoDispose (void)
@ -56,11 +52,7 @@ Arp::DoDispose (void)
delete *i; delete *i;
} }
m_cacheList.clear (); m_cacheList.clear ();
if (m_node != 0) m_node = 0;
{
m_node->Unref ();
m_node = 0;
}
L3Protocol::DoDispose (); L3Protocol::DoDispose ();
} }

View File

@ -24,6 +24,7 @@
#include <list> #include <list>
#include "ns3/ipv4-address.h" #include "ns3/ipv4-address.h"
#include "ns3/mac-address.h" #include "ns3/mac-address.h"
#include "ns3/ptr.h"
#include "l3-protocol.h" #include "l3-protocol.h"
namespace ns3 { namespace ns3 {
@ -40,7 +41,7 @@ class Arp : public L3Protocol
public: public:
static const uint16_t PROT_NUMBER; static const uint16_t PROT_NUMBER;
Arp (Node *node); Arp (Ptr<Node> node);
~Arp (); ~Arp ();
virtual TraceResolver *CreateTraceResolver (TraceContext const &context); virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
@ -57,7 +58,7 @@ private:
void SendArpRequest (ArpCache const *cache, Ipv4Address to); void SendArpRequest (ArpCache const *cache, Ipv4Address to);
void SendArpReply (ArpCache const *cache, Ipv4Address toIp, MacAddress toMac); void SendArpReply (ArpCache const *cache, Ipv4Address toIp, MacAddress toMac);
CacheList m_cacheList; CacheList m_cacheList;
Node *m_node; Ptr<Node> m_node;
}; };
}//namespace ns3 }//namespace ns3