From 0b34c336f7f5e3c33b60792cb51bb7b02e3da392 Mon Sep 17 00:00:00 2001 From: Mathieu Lacage Date: Fri, 10 Aug 2007 15:47:13 +0200 Subject: [PATCH] convert TraceResolver * to Ptr --- src/common/array-trace-resolver.h | 8 +++---- src/common/composite-trace-resolver.cc | 13 ++++++------ src/common/composite-trace-resolver.h | 21 ++++++++++--------- src/common/trace-resolver.cc | 4 ++++ src/common/trace-root.cc | 10 ++++----- src/common/trace-root.h | 4 ++-- src/devices/csma-cd/csma-cd-net-device.cc | 4 ++-- src/devices/csma-cd/csma-cd-net-device.h | 2 +- .../point-to-point-net-device.cc | 5 +++-- .../point-to-point-net-device.h | 2 +- src/internet-node/arp-ipv4-interface.cc | 4 ++-- src/internet-node/arp-ipv4-interface.h | 2 +- src/internet-node/arp-l3-protocol.cc | 4 ++-- src/internet-node/arp-l3-protocol.h | 2 +- src/internet-node/ipv4-interface.cc | 3 ++- src/internet-node/ipv4-interface.h | 4 ++-- src/internet-node/ipv4-l3-protocol.cc | 10 ++++----- src/internet-node/ipv4-l3-protocol.h | 4 ++-- src/internet-node/ipv4-l4-demux.cc | 4 ++-- src/internet-node/ipv4-l4-demux.h | 2 +- src/internet-node/ipv4-l4-protocol.h | 2 +- src/internet-node/ipv4-loopback-interface.cc | 4 ++-- src/internet-node/ipv4-loopback-interface.h | 2 +- src/internet-node/udp-l4-protocol.cc | 4 ++-- src/internet-node/udp-l4-protocol.h | 2 +- src/node/net-device.cc | 3 ++- src/node/net-device.h | 4 ++-- src/node/node-list.cc | 10 ++++----- src/node/node-list.h | 2 +- src/node/node.cc | 12 +++++------ src/node/node.h | 4 ++-- src/node/queue.cc | 4 ++-- src/node/queue.h | 2 +- 33 files changed, 86 insertions(+), 81 deletions(-) diff --git a/src/common/array-trace-resolver.h b/src/common/array-trace-resolver.h index 65fe2b546..b6ffe0212 100644 --- a/src/common/array-trace-resolver.h +++ b/src/common/array-trace-resolver.h @@ -48,7 +48,7 @@ public: * to provide a method named CreateTraceResolver which takes as * only argument a reference to a const TraceContext and returns * a pointer to a TraceResolver. i.e. the signature is: - * TraceResolver * (*) (TraceContext const &) + * Ptr (*) (void) */ ArrayTraceResolver (Callback getSize, Callback get); @@ -83,9 +83,8 @@ ArrayTraceResolver::Connect (std::string path, CallbackBase const &cb, TraceContext tmp = context; INDEX index = i; tmp.Add (index); - TraceResolver *resolver = m_get (i)->CreateTraceResolver (); + Ptr resolver = m_get (i)->CreateTraceResolver (); resolver->Connect (subpath, cb, tmp); - delete resolver; } } } @@ -99,9 +98,8 @@ ArrayTraceResolver::Disconnect (std::string path, CallbackBase const &c { for (uint32_t i = 0; i < m_getSize (); i++) { - TraceResolver *resolver = m_get (i)->CreateTraceResolver (); + Ptr resolver = m_get (i)->CreateTraceResolver (); resolver->Disconnect (subpath, cb); - delete resolver; } } } diff --git a/src/common/composite-trace-resolver.cc b/src/common/composite-trace-resolver.cc index fa7157afb..ee19ae960 100644 --- a/src/common/composite-trace-resolver.cc +++ b/src/common/composite-trace-resolver.cc @@ -33,14 +33,14 @@ CompositeTraceResolver::~CompositeTraceResolver () void CompositeTraceResolver::Add (std::string name, - Callback createResolver) + Callback > createResolver) { DoAdd (name, createResolver, TraceContext ()); } void CompositeTraceResolver::DoAdd (std::string name, - Callback createResolver, + Callback > createResolver, TraceContext const &context) { struct CallbackTraceSourceItem item; @@ -125,7 +125,7 @@ CompositeTraceResolver::OperationOne (std::string subpath, const TraceContext &context, enum Operation op) { - TraceResolver *resolver = i->createResolver (); + Ptr resolver = i->createResolver (); switch (op) { case CONNECT: { NS_DEBUG ("connect to path="< void Add (std::string name, - Callback createResolver, + Callback > createResolver, T const &context); /** @@ -122,7 +123,7 @@ public: * will be invoked to create the child trace resolver. */ void Add (std::string name, - Callback createResolver); + Callback > createResolver); virtual void Connect (std::string path, CallbackBase const &cb, const TraceContext &context); virtual void Disconnect (std::string path, CallbackBase const &cb); @@ -130,7 +131,7 @@ private: struct CallbackTraceSourceItem { std::string name; - Callback createResolver; + Callback > createResolver; TraceContext context; }; typedef std::list TraceItems; @@ -143,9 +144,9 @@ private: void DoAddTraceSource (std::string name, SOURCE &traceSource, CONTEXT const &context); template - static TraceResolver *CreateTerminalTraceResolver (SOURCE *trace); + static Ptr CreateTerminalTraceResolver (SOURCE *trace); void DoAdd (std::string name, - Callback createResolver, + Callback > createResolver, TraceContext const &context); void OperationOne (std::string subpath, TraceItems::const_iterator i, @@ -170,9 +171,9 @@ void CompositeTraceResolver::DoAddTraceSource (std::string name, SOURCE &traceSource, CONTEXT const &context) { - TraceResolver *(*create) (SOURCE *trace); + Ptr (*create) (SOURCE *trace); create = &CompositeTraceResolver::CreateTerminalTraceResolver; - Callback createResolver = + Callback > createResolver = MakeBoundCallback (create, &traceSource); TraceContext ctx; @@ -181,10 +182,10 @@ CompositeTraceResolver::DoAddTraceSource (std::string name, } template -TraceResolver * +Ptr CompositeTraceResolver::CreateTerminalTraceResolver (SOURCE *traceSource) { - return new TerminalTraceResolver (*traceSource); + return Create > (traceSource); } @@ -224,7 +225,7 @@ CompositeTraceResolver::Add (std::string name, template void CompositeTraceResolver::Add (std::string name, - Callback createResolver, + Callback > createResolver, T const &context) { TraceContext ctx; diff --git a/src/common/trace-resolver.cc b/src/common/trace-resolver.cc index 1dd6126a3..0bd3e0443 100644 --- a/src/common/trace-resolver.cc +++ b/src/common/trace-resolver.cc @@ -19,6 +19,9 @@ * Author: Mathieu Lacage */ #include "trace-resolver.h" +#include "ns3/debug.h" + +NS_DEBUG_COMPONENT_DEFINE ("TraceResolver"); namespace ns3 { @@ -40,6 +43,7 @@ TraceResolver::Unref (void) m_count--; if (m_count == 0) { + NS_DEBUG ("delete "< resolver = GetComposite (); resolver->Connect (path, cb, TraceContext ()); } void TraceRoot::Disconnect (std::string path, CallbackBase const &cb) { - TraceResolver *resolver = GetComposite (); + Ptr resolver = GetComposite (); resolver->Disconnect (path, cb); } void TraceRoot::Register (std::string name, - Callback createResolver) + Callback > createResolver) { - CompositeTraceResolver *resolver = GetComposite (); + Ptr resolver = GetComposite (); resolver->Add (name, createResolver); } -CompositeTraceResolver * +Ptr TraceRoot::GetComposite (void) { static CompositeTraceResolver resolver; diff --git a/src/common/trace-root.h b/src/common/trace-root.h index 270747fce..76b6a7efb 100644 --- a/src/common/trace-root.h +++ b/src/common/trace-root.h @@ -325,9 +325,9 @@ public: static void Connect (std::string path, CallbackBase const &cb); static void Disconnect (std::string path, CallbackBase const &cb); static void Register (std::string name, - Callback createResolver); + Callback > createResolver); private: - static CompositeTraceResolver *GetComposite (void); + static Ptr GetComposite (void); }; }// namespace ns3 diff --git a/src/devices/csma-cd/csma-cd-net-device.cc b/src/devices/csma-cd/csma-cd-net-device.cc index bb51fd36a..e587bb089 100644 --- a/src/devices/csma-cd/csma-cd-net-device.cc +++ b/src/devices/csma-cd/csma-cd-net-device.cc @@ -449,10 +449,10 @@ CsmaCdNetDevice::TransmitReadyEvent (void) } } -TraceResolver * +Ptr CsmaCdNetDevice::DoCreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); + Ptr resolver = Create (); resolver->Add ("queue", MakeCallback (&Queue::CreateTraceResolver, PeekPointer (m_queue))); diff --git a/src/devices/csma-cd/csma-cd-net-device.h b/src/devices/csma-cd/csma-cd-net-device.h index 51b3db8ea..42b85f3b5 100644 --- a/src/devices/csma-cd/csma-cd-net-device.h +++ b/src/devices/csma-cd/csma-cd-net-device.h @@ -311,7 +311,7 @@ private: * (NOT TESTED) * @see class TraceResolver */ - virtual TraceResolver *DoCreateTraceResolver (void); + virtual Ptr DoCreateTraceResolver (void); /** * Aborts the transmission of the current packet diff --git a/src/devices/point-to-point/point-to-point-net-device.cc b/src/devices/point-to-point/point-to-point-net-device.cc index f09810f82..5275b6209 100644 --- a/src/devices/point-to-point/point-to-point-net-device.cc +++ b/src/devices/point-to-point/point-to-point-net-device.cc @@ -188,9 +188,10 @@ void PointToPointNetDevice::TransmitComplete (void) TransmitStart(p); } -TraceResolver* PointToPointNetDevice::DoCreateTraceResolver (void) +Ptr +PointToPointNetDevice::DoCreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); + Ptr resolver = Create (); resolver->Add ("queue", MakeCallback (&Queue::CreateTraceResolver, PeekPointer (m_queue))); resolver->Add ("rx", diff --git a/src/devices/point-to-point/point-to-point-net-device.h b/src/devices/point-to-point/point-to-point-net-device.h index 8d2a02fe2..3a1bc1e0e 100644 --- a/src/devices/point-to-point/point-to-point-net-device.h +++ b/src/devices/point-to-point/point-to-point-net-device.h @@ -243,7 +243,7 @@ private: * * @see class TraceResolver */ - virtual TraceResolver* DoCreateTraceResolver (void); + virtual Ptr DoCreateTraceResolver (void); virtual bool DoNeedsArp (void) const; /** * Enumeration of the states of the transmit machine of the net device. diff --git a/src/internet-node/arp-ipv4-interface.cc b/src/internet-node/arp-ipv4-interface.cc index 7077d0903..3c353efe6 100644 --- a/src/internet-node/arp-ipv4-interface.cc +++ b/src/internet-node/arp-ipv4-interface.cc @@ -40,10 +40,10 @@ ArpIpv4Interface::ArpIpv4Interface (Ptr node, Ptr device) ArpIpv4Interface::~ArpIpv4Interface () {} -TraceResolver * +Ptr ArpIpv4Interface::DoCreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); + Ptr resolver = Create (); if (GetDevice () != 0) { resolver->Add ("netdevice", diff --git a/src/internet-node/arp-ipv4-interface.h b/src/internet-node/arp-ipv4-interface.h index 537a16a2f..a31039478 100644 --- a/src/internet-node/arp-ipv4-interface.h +++ b/src/internet-node/arp-ipv4-interface.h @@ -44,7 +44,7 @@ class ArpIpv4Interface : public Ipv4Interface private: virtual void SendTo (Packet p, Ipv4Address dest); - virtual TraceResolver *DoCreateTraceResolver (void); + virtual Ptr DoCreateTraceResolver (void); Ptr m_node; }; diff --git a/src/internet-node/arp-l3-protocol.cc b/src/internet-node/arp-l3-protocol.cc index 46654c89e..b116ce648 100644 --- a/src/internet-node/arp-l3-protocol.cc +++ b/src/internet-node/arp-l3-protocol.cc @@ -58,10 +58,10 @@ ArpL3Protocol::DoDispose (void) Object::DoDispose (); } -TraceResolver * +Ptr ArpL3Protocol::CreateTraceResolver (void) { - return new EmptyTraceResolver (); + return Create (); } ArpCache * diff --git a/src/internet-node/arp-l3-protocol.h b/src/internet-node/arp-l3-protocol.h index 3d752b46e..468c301b6 100644 --- a/src/internet-node/arp-l3-protocol.h +++ b/src/internet-node/arp-l3-protocol.h @@ -49,7 +49,7 @@ public: ArpL3Protocol (Ptr node); virtual ~ArpL3Protocol (); - virtual TraceResolver *CreateTraceResolver (void); + virtual Ptr CreateTraceResolver (void); /** * \brief Recieve a packet */ diff --git a/src/internet-node/ipv4-interface.cc b/src/internet-node/ipv4-interface.cc index d44edf130..699d6109d 100644 --- a/src/internet-node/ipv4-interface.cc +++ b/src/internet-node/ipv4-interface.cc @@ -22,6 +22,7 @@ #include "ipv4-interface.h" #include "ns3/ipv4-address.h" #include "ns3/net-device.h" +#include "ns3/trace-resolver.h" namespace ns3 { @@ -45,7 +46,7 @@ Ipv4Interface::GetDevice (void) const return m_netdevice; } -TraceResolver * +Ptr Ipv4Interface::CreateTraceResolver (void) { return DoCreateTraceResolver (); diff --git a/src/internet-node/ipv4-interface.h b/src/internet-node/ipv4-interface.h index e5c6788eb..a462d5be5 100644 --- a/src/internet-node/ipv4-interface.h +++ b/src/internet-node/ipv4-interface.h @@ -83,7 +83,7 @@ public: * This method will delegate the work to the private DoCreateTraceResolver * method which is supposed to be implemented by subclasses. */ - TraceResolver *CreateTraceResolver (void); + Ptr CreateTraceResolver (void); /** * \returns the underlying NetDevice. This method can return * zero if this interface has no associated NetDevice. @@ -153,7 +153,7 @@ public: private: virtual void SendTo (Packet p, Ipv4Address dest) = 0; - virtual TraceResolver *DoCreateTraceResolver (void) = 0; + virtual Ptr DoCreateTraceResolver (void) = 0; Ptr m_netdevice; bool m_ifup; Ipv4Address m_address; diff --git a/src/internet-node/ipv4-l3-protocol.cc b/src/internet-node/ipv4-l3-protocol.cc index 9fd06abba..df97fafc0 100644 --- a/src/internet-node/ipv4-l3-protocol.cc +++ b/src/internet-node/ipv4-l3-protocol.cc @@ -153,10 +153,10 @@ Ipv4L3Protocol::SetupLoopback (void) interface->SetUp (); } -TraceResolver * +Ptr Ipv4L3Protocol::CreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); + Ptr resolver = Create (); resolver->Add ("tx", m_txTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::TX)); resolver->Add ("rx", m_rxTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::RX)); resolver->Add ("drop", m_dropTrace, Ipv4L3ProtocolTraceContextElement (Ipv4L3ProtocolTraceContextElement::DROP)); @@ -165,11 +165,11 @@ Ipv4L3Protocol::CreateTraceResolver (void) return resolver; } -TraceResolver * +Ptr Ipv4L3Protocol::InterfacesCreateTraceResolver (void) const { - ArrayTraceResolver *resolver = - new ArrayTraceResolver + Ptr >resolver = + Create > (MakeCallback (&Ipv4L3Protocol::GetNInterfaces, this), MakeCallback (&Ipv4L3Protocol::GetInterface, this)); return resolver; diff --git a/src/internet-node/ipv4-l3-protocol.h b/src/internet-node/ipv4-l3-protocol.h index 4209019ad..f6fcec7a7 100644 --- a/src/internet-node/ipv4-l3-protocol.h +++ b/src/internet-node/ipv4-l3-protocol.h @@ -92,7 +92,7 @@ public: * performed in this object. The caller must * delete the returned object. */ - virtual TraceResolver *CreateTraceResolver (void); + virtual Ptr CreateTraceResolver (void); /** * \param ttl default ttl to use @@ -189,7 +189,7 @@ private: void ForwardUp (Packet p, Ipv4Header const&ip); uint32_t AddIpv4Interface (Ipv4Interface *interface); void SetupLoopback (void); - TraceResolver *InterfacesCreateTraceResolver (void) const; + Ptr InterfacesCreateTraceResolver (void) const; typedef std::list Ipv4InterfaceList; typedef std::list< std::pair< int, Ptr > > Ipv4RoutingProtocolList; diff --git a/src/internet-node/ipv4-l4-demux.cc b/src/internet-node/ipv4-l4-demux.cc index 9981a718d..56ee9eb9a 100644 --- a/src/internet-node/ipv4-l4-demux.cc +++ b/src/internet-node/ipv4-l4-demux.cc @@ -78,10 +78,10 @@ Ipv4L4Demux::DoDispose (void) Object::DoDispose (); } -TraceResolver * +Ptr Ipv4L4Demux::CreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); + Ptr resolver = Create (); for (L4List_t::const_iterator i = m_protocols.begin(); i != m_protocols.end(); ++i) { Ptr protocol = *i; diff --git a/src/internet-node/ipv4-l4-demux.h b/src/internet-node/ipv4-l4-demux.h index 8431e1e48..0b4755435 100644 --- a/src/internet-node/ipv4-l4-demux.h +++ b/src/internet-node/ipv4-l4-demux.h @@ -66,7 +66,7 @@ public: * performed in this object. The caller must * delete the returned object. */ - TraceResolver *CreateTraceResolver (void); + Ptr CreateTraceResolver (void); /** * \param protocol a template for the protocol to add to this L4 Demux. * \returns the L4Protocol effectively added. diff --git a/src/internet-node/ipv4-l4-protocol.h b/src/internet-node/ipv4-l4-protocol.h index 4ecd5a142..c658318a1 100644 --- a/src/internet-node/ipv4-l4-protocol.h +++ b/src/internet-node/ipv4-l4-protocol.h @@ -59,7 +59,7 @@ public: */ int GetVersion() const; - virtual TraceResolver *CreateTraceResolver () = 0; + virtual Ptr CreateTraceResolver () = 0; /** * \param p packet to forward up diff --git a/src/internet-node/ipv4-loopback-interface.cc b/src/internet-node/ipv4-loopback-interface.cc index 4e23abde3..1364e2daf 100644 --- a/src/internet-node/ipv4-loopback-interface.cc +++ b/src/internet-node/ipv4-loopback-interface.cc @@ -34,10 +34,10 @@ Ipv4LoopbackInterface::Ipv4LoopbackInterface (Ptr node) Ipv4LoopbackInterface::~Ipv4LoopbackInterface () {} -TraceResolver * +Ptr Ipv4LoopbackInterface::DoCreateTraceResolver (void) { - return new EmptyTraceResolver (); + return Create (); } void diff --git a/src/internet-node/ipv4-loopback-interface.h b/src/internet-node/ipv4-loopback-interface.h index b17f46449..e9df32007 100644 --- a/src/internet-node/ipv4-loopback-interface.h +++ b/src/internet-node/ipv4-loopback-interface.h @@ -43,7 +43,7 @@ class Ipv4LoopbackInterface : public Ipv4Interface private: virtual void SendTo (Packet p, Ipv4Address dest); - virtual TraceResolver *DoCreateTraceResolver (void); + virtual Ptr DoCreateTraceResolver (void); Ptr m_node; }; diff --git a/src/internet-node/udp-l4-protocol.cc b/src/internet-node/udp-l4-protocol.cc index a83cb4657..13e937d3c 100644 --- a/src/internet-node/udp-l4-protocol.cc +++ b/src/internet-node/udp-l4-protocol.cc @@ -45,10 +45,10 @@ UdpL4Protocol::UdpL4Protocol (Ptr node) UdpL4Protocol::~UdpL4Protocol () {} -TraceResolver * +Ptr UdpL4Protocol::CreateTraceResolver (void) { - return new EmptyTraceResolver (); + return Create (); } void diff --git a/src/internet-node/udp-l4-protocol.h b/src/internet-node/udp-l4-protocol.h index d41bbb839..da2cd0e2d 100644 --- a/src/internet-node/udp-l4-protocol.h +++ b/src/internet-node/udp-l4-protocol.h @@ -49,7 +49,7 @@ public: UdpL4Protocol (Ptr node); virtual ~UdpL4Protocol (); - virtual TraceResolver *CreateTraceResolver (void); + virtual Ptr CreateTraceResolver (void); /** * \return A smart Socket pointer to a UdpSocket, allocated by this instance * of the UDP protocol diff --git a/src/node/net-device.cc b/src/node/net-device.cc index 626b82c63..cdc1f63f3 100644 --- a/src/node/net-device.cc +++ b/src/node/net-device.cc @@ -23,6 +23,7 @@ #include "ns3/assert.h" #include "ns3/object.h" #include "ns3/debug.h" +#include "ns3/trace-resolver.h" #include "channel.h" @@ -183,7 +184,7 @@ NetDevice::Send(Packet& p, const Address& dest, uint16_t protocolNumber) } } -TraceResolver * +Ptr NetDevice::CreateTraceResolver (void) { return DoCreateTraceResolver (); diff --git a/src/node/net-device.h b/src/node/net-device.h index cadd70dfc..af63be5b4 100644 --- a/src/node/net-device.h +++ b/src/node/net-device.h @@ -69,7 +69,7 @@ public: * performed in this object. The caller must * delete the returned object. */ - TraceResolver *CreateTraceResolver (void); + Ptr CreateTraceResolver (void); /** * \return the channel this NetDevice is connected to. The value @@ -290,7 +290,7 @@ public: * * Subclasses must implement this method. */ - virtual TraceResolver *DoCreateTraceResolver (void) = 0; + virtual Ptr DoCreateTraceResolver (void) = 0; /** * \returns the channel associated to this NetDevice. * diff --git a/src/node/node-list.cc b/src/node/node-list.cc index 761717c9f..823b92a0c 100644 --- a/src/node/node-list.cc +++ b/src/node/node-list.cc @@ -76,7 +76,7 @@ public: uint32_t Add (Ptr node); NodeList::Iterator Begin (void); NodeList::Iterator End (void); - TraceResolver *CreateTraceResolver (void); + Ptr CreateTraceResolver (void); Ptr GetNode (uint32_t n); uint32_t GetNNodes (void); @@ -130,11 +130,11 @@ NodeListPriv::GetNode (uint32_t n) } -TraceResolver * +Ptr NodeListPriv::CreateTraceResolver (void) { - ArrayTraceResolver, NodeListIndex> *resolver = - new ArrayTraceResolver, NodeListIndex> + Ptr, NodeListIndex> >resolver = + Create, NodeListIndex> > (MakeCallback (&NodeListPriv::GetNNodes, this), MakeCallback (&NodeListPriv::GetNode, this)); return resolver; @@ -164,7 +164,7 @@ NodeList::End (void) { return SimulationSingleton::Get ()->End (); } -TraceResolver * +Ptr NodeList::CreateTraceResolver (void) { return SimulationSingleton::Get ()->CreateTraceResolver (); diff --git a/src/node/node-list.h b/src/node/node-list.h index beda5611c..66cd6965d 100644 --- a/src/node/node-list.h +++ b/src/node/node-list.h @@ -79,7 +79,7 @@ public: * \returns the requested trace resolver. The caller * takes ownership of the returned pointer. */ - static TraceResolver *CreateTraceResolver (void); + static Ptr CreateTraceResolver (void); /** * \param n index of requested node. diff --git a/src/node/node.cc b/src/node/node.cc index 4de3a93ad..554431db1 100644 --- a/src/node/node.cc +++ b/src/node/node.cc @@ -82,11 +82,11 @@ Node::Construct (void) Node::~Node () {} -TraceResolver * +Ptr Node::CreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); - DoFillTraceResolver (*resolver); + Ptr resolver = Create (); + DoFillTraceResolver (*PeekPointer (resolver)); return resolver; } @@ -141,11 +141,11 @@ Node::GetNApplications (void) const return m_applications.size (); } -TraceResolver * +Ptr Node::CreateDevicesTraceResolver (void) { - ArrayTraceResolver,NodeNetDeviceIndex> *resolver = - new ArrayTraceResolver,NodeNetDeviceIndex> + Ptr,NodeNetDeviceIndex> >resolver = + Create,NodeNetDeviceIndex> > (MakeCallback (&Node::GetNDevices, this), MakeCallback (&Node::GetDevice, this)); diff --git a/src/node/node.h b/src/node/node.h index 104f3a2a4..7931dd001 100644 --- a/src/node/node.h +++ b/src/node/node.h @@ -92,7 +92,7 @@ public: * could be used directly by a user who needs access to very low-level * trace configuration. */ - TraceResolver *CreateTraceResolver (void); + Ptr CreateTraceResolver (void); /** * \returns the unique id of this node. @@ -212,7 +212,7 @@ private: bool ReceiveFromDevice (Ptr device, const Packet &packet, uint16_t protocol, const Address &from); void Construct (void); - TraceResolver *CreateDevicesTraceResolver (void); + Ptr CreateDevicesTraceResolver (void); struct ProtocolHandlerEntry { ProtocolHandler handler; diff --git a/src/node/queue.cc b/src/node/queue.cc index 163f73ffc..8a6725e4e 100644 --- a/src/node/queue.cc +++ b/src/node/queue.cc @@ -94,10 +94,10 @@ Queue::~Queue() NS_DEBUG("Queue::~Queue ()"); } -TraceResolver * +Ptr Queue::CreateTraceResolver (void) { - CompositeTraceResolver *resolver = new CompositeTraceResolver (); + Ptr resolver = Create (); resolver->Add ("enqueue", m_traceEnqueue, QueueTraceType (QueueTraceType::ENQUEUE)); resolver->Add ("dequeue", m_traceDequeue, QueueTraceType (QueueTraceType::DEQUEUE)); resolver->Add ("drop", m_traceDrop, QueueTraceType (QueueTraceType::DROP)); diff --git a/src/node/queue.h b/src/node/queue.h index 2c010c363..bf2c6a2d6 100644 --- a/src/node/queue.h +++ b/src/node/queue.h @@ -70,7 +70,7 @@ public: Queue (); virtual ~Queue (); - TraceResolver *CreateTraceResolver (void); + Ptr CreateTraceResolver (void); /** * \return true if the queue is empty; false otherwise