remove TraceContext argument from TraceResolver constructor and move it to Connect
authorMathieu Lacage <mathieu.lacage@sophia.inria.fr>
Thu, 09 Aug 2007 21:25:23 +0200
changeset 1325 f3be9eed2d90
parent 1259 67584d6fc928
child 1326 5ddb45fb3b4b
remove TraceContext argument from TraceResolver constructor and move it to Connect
src/common/array-trace-resolver.h
src/common/composite-trace-resolver.cc
src/common/composite-trace-resolver.h
src/common/empty-trace-resolver.cc
src/common/empty-trace-resolver.h
src/common/terminal-trace-resolver.h
src/common/trace-resolver.cc
src/common/trace-resolver.h
src/common/trace-root.cc
src/common/trace-root.h
src/devices/csma-cd/csma-cd-net-device.cc
src/devices/csma-cd/csma-cd-net-device.h
src/devices/point-to-point/point-to-point-net-device.cc
src/devices/point-to-point/point-to-point-net-device.h
src/internet-node/arp-ipv4-interface.cc
src/internet-node/arp-ipv4-interface.h
src/internet-node/arp-l3-protocol.cc
src/internet-node/arp-l3-protocol.h
src/internet-node/ipv4-interface.cc
src/internet-node/ipv4-interface.h
src/internet-node/ipv4-l3-protocol.cc
src/internet-node/ipv4-l3-protocol.h
src/internet-node/ipv4-l4-demux.cc
src/internet-node/ipv4-l4-demux.h
src/internet-node/ipv4-l4-protocol.h
src/internet-node/ipv4-loopback-interface.cc
src/internet-node/ipv4-loopback-interface.h
src/internet-node/udp-l4-protocol.cc
src/internet-node/udp-l4-protocol.h
src/node/net-device.cc
src/node/net-device.h
src/node/node-list.cc
src/node/node-list.h
src/node/node.cc
src/node/node.h
src/node/queue.cc
src/node/queue.h
--- a/src/common/array-trace-resolver.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/array-trace-resolver.h	Thu Aug 09 21:25:23 2007 +0200
@@ -37,7 +37,6 @@
 {
 public:
   /**
-   * \param context trace context associated to this trace resolver
    * \param getSize callback which returns dynamically the size of underlying array
    * \param get callback which returns any element in the underlying array
    *
@@ -51,8 +50,7 @@
    * a pointer to a TraceResolver. i.e. the signature is:
    * TraceResolver * (*) (TraceContext const &)
    */
-  ArrayTraceResolver (TraceContext const &context,
-                      Callback<uint32_t> getSize, 
+  ArrayTraceResolver (Callback<uint32_t> getSize, 
                       Callback<T, uint32_t> get);
 private:
   virtual TraceResolverList DoLookup (std::string id) const;
@@ -64,11 +62,9 @@
 namespace ns3 {
 
 template <typename T, typename INDEX>
-ArrayTraceResolver<T,INDEX>::ArrayTraceResolver (TraceContext const &context,
-                                                 Callback<uint32_t> getSize, 
+ArrayTraceResolver<T,INDEX>::ArrayTraceResolver (Callback<uint32_t> getSize, 
                                                  Callback<T, uint32_t> get)
-  : TraceResolver (context),
-    m_getSize (getSize),
+  : m_getSize (getSize),
     m_get (get)
 {}
 template <typename T, typename INDEX>
@@ -80,10 +76,10 @@
   {
     for (uint32_t i = 0; i < m_getSize (); i++)
     {
-      TraceContext context = GetContext ();
+      TraceContext context;
       INDEX index = i;
       context.Add (index);
-      list.push_back (m_get (i)->CreateTraceResolver (context));
+      list.push_back (std::make_pair (m_get (i)->CreateTraceResolver (), context));
     }
   }
   return list;
--- a/src/common/composite-trace-resolver.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/composite-trace-resolver.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -22,8 +22,7 @@
 
 namespace ns3 {
 
-CompositeTraceResolver::CompositeTraceResolver (TraceContext const &context)
-  : TraceResolver (context)
+CompositeTraceResolver::CompositeTraceResolver ()
 {}
 
 CompositeTraceResolver::~CompositeTraceResolver ()
@@ -31,15 +30,14 @@
 
 void 
 CompositeTraceResolver::Add (std::string name, 
-                             Callback<TraceResolver *,TraceContext const &> createResolver)
+                             Callback<TraceResolver *> createResolver)
 {
-  TraceContext traceContext = GetContext ();
-  DoAdd (name, createResolver, traceContext);
+  DoAdd (name, createResolver, TraceContext ());
 }
 
 void 
 CompositeTraceResolver::DoAdd (std::string name, 
-			       Callback<TraceResolver *,TraceContext const &> createResolver,
+			       Callback<TraceResolver *> createResolver,
 			       TraceContext const &context)
 {
   struct CallbackTraceSourceItem item;
@@ -57,7 +55,7 @@
       TraceResolver::TraceResolverList list;
       for (TraceItems::const_iterator i = m_items.begin (); i != m_items.end (); i++)
 	{
-	  list.push_back (i->createResolver (i->context));
+	  list.push_back (std::make_pair (i->createResolver (), i->context));
 	}
       return list;
     }
@@ -71,7 +69,7 @@
 	  if (i->name == id)
 	    {
 	      TraceResolver::TraceResolverList list;
-	      list.push_back (i->createResolver (i->context));
+	      list.push_back (std::make_pair (i->createResolver (), i->context));
 	      return list;
 	    }
 	}
@@ -102,7 +100,7 @@
 	{
 	  if (j->name == *i)
 	    {
-	      list.push_back (j->createResolver (j->context));
+	      list.push_back (std::make_pair (j->createResolver (), j->context));
 	      break;
 	    }
 	}
@@ -168,7 +166,7 @@
 private:
   void TraceDouble (TraceContext const &context, double v);
   void TraceInt (TraceContext const &context, int v);
-  TraceResolver *CreateSubResolver (TraceContext const &context);
+  TraceResolver *CreateSubResolver ();
 
 
   bool m_gotDoubleA;
@@ -209,9 +207,9 @@
 }
 
 TraceResolver *
-CompositeTraceResolverTest::CreateSubResolver (TraceContext const &context)
+CompositeTraceResolverTest::CreateSubResolver (void)
 {
-  CompositeTraceResolver *subresolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *subresolver = new CompositeTraceResolver ();
   subresolver->Add ("trace-int", m_traceInt, 
                     SubTraceSourceTest (SubTraceSourceTest::INT));
   return subresolver;
@@ -225,14 +223,14 @@
   CallbackTraceSource<double> traceDoubleB;
   TraceContext context;
 
-  CompositeTraceResolver resolver (context) ;
+  CompositeTraceResolver resolver;
 
   resolver.Add ("trace-double-a", traceDoubleA, 
                 TraceSourceTest (TraceSourceTest::DOUBLEA));
   resolver.Add ("trace-double-b", traceDoubleB, 
                 TraceSourceTest (TraceSourceTest::DOUBLEB));
 
-  resolver.Connect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
+  resolver.Connect ("/*", MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
 
   m_gotDoubleA = false;
   m_gotDoubleB = false;
@@ -263,7 +261,7 @@
     }
 
   resolver.Connect ("/trace-double-a", 
-		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
+		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
   m_gotDoubleA = false;
   m_gotDoubleB = false;
   traceDoubleA (0);
@@ -276,7 +274,7 @@
 		       MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
 
   resolver.Connect ("/(trace-double-a)", 
-		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
+		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
   m_gotDoubleA = false;
   m_gotDoubleB = false;
   traceDoubleA (0);
@@ -289,7 +287,7 @@
 		       MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
 
   resolver.Connect ("/(trace-double-a|trace-double-b)", 
-		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this));
+		    MakeCallback (&CompositeTraceResolverTest::TraceDouble, this), TraceContext ());
   m_gotDoubleA = false;
   m_gotDoubleB = false;
   traceDoubleA (0);
@@ -326,7 +324,7 @@
 		TraceSourceTest (TraceSourceTest::SUBRESOLVER));
 
   resolver.Connect ("/subresolver/trace-int", 
-		    MakeCallback (&CompositeTraceResolverTest::TraceInt, this));
+		    MakeCallback (&CompositeTraceResolverTest::TraceInt, this), TraceContext ());
   m_gotInt = false;
   m_traceInt (1);
   if (!m_gotInt)
@@ -344,7 +342,7 @@
     }
 
   resolver.Connect ("/*/trace-int", 
-		    MakeCallback (&CompositeTraceResolverTest::TraceInt, this));
+		    MakeCallback (&CompositeTraceResolverTest::TraceInt, this), TraceContext ());
   m_gotInt = false;
   m_traceInt (1);
   if (!m_gotInt)
--- a/src/common/composite-trace-resolver.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/composite-trace-resolver.h	Thu Aug 09 21:25:23 2007 +0200
@@ -38,7 +38,7 @@
 class CompositeTraceResolver : public TraceResolver
 {
 public:
-  CompositeTraceResolver (TraceContext const &context);
+  CompositeTraceResolver ();
   virtual ~CompositeTraceResolver ();
   /**
    * \param name name of trace source
@@ -109,7 +109,7 @@
    */
   template <typename T>
   void Add (std::string name, 
-            Callback<TraceResolver *,TraceContext const &> createResolver,
+            Callback<TraceResolver *> createResolver,
             T const &context);
 
   /**
@@ -122,23 +122,22 @@
    * will be invoked to create the child trace resolver.
    */
   void Add (std::string name, 
-            Callback<TraceResolver *,TraceContext const &> createResolver);
+            Callback<TraceResolver *> createResolver);
 private:
   template <typename SOURCE, typename CONTEXT>
   void DoAddTraceSource (std::string name,
                          SOURCE &traceSource, CONTEXT const &context);
   template <typename SOURCE>
-  static TraceResolver *CreateTerminalTraceResolver (SOURCE *trace, 
-                                                     TraceContext const &context);
+  static TraceResolver *CreateTerminalTraceResolver (SOURCE *trace);
   void DoAdd (std::string name, 
-              Callback<TraceResolver *,TraceContext const &> createResolver,
+              Callback<TraceResolver *> createResolver,
               TraceContext const &context);
   virtual TraceResolverList DoLookup (std::string id) const;
 
   struct CallbackTraceSourceItem
   {
     std::string name;
-    Callback<TraceResolver *,TraceContext const &> createResolver;
+    Callback<TraceResolver *> createResolver;
     TraceContext context;
   };
 
@@ -155,21 +154,21 @@
 CompositeTraceResolver::DoAddTraceSource (std::string name,
                                           SOURCE &traceSource, CONTEXT const &context)
 {
-  TraceContext traceContext = GetContext ();
-  traceContext.Add (context);
-  TraceResolver *(*create) (SOURCE *trace, TraceContext const &context);
+  TraceResolver *(*create) (SOURCE *trace);
   create = &CompositeTraceResolver::CreateTerminalTraceResolver<SOURCE>;
-  Callback<TraceResolver *,TraceContext const &> createResolver = 
+  Callback<TraceResolver *> createResolver = 
     MakeBoundCallback (create, &traceSource);
-  DoAdd (name, createResolver, traceContext);
+
+  TraceContext ctx;
+  ctx.Add (context);
+  DoAdd (name, createResolver, ctx);
 }
 
 template <typename SOURCE>
 TraceResolver *
-CompositeTraceResolver::CreateTerminalTraceResolver (SOURCE *traceSource, 
-                                                     TraceContext const &context)
+CompositeTraceResolver::CreateTerminalTraceResolver (SOURCE *traceSource)
 {
-  return new TerminalTraceResolver<SOURCE> (*traceSource, context);
+  return new TerminalTraceResolver<SOURCE> (*traceSource);
 }
 
 
@@ -209,12 +208,12 @@
 template <typename T>
 void 
 CompositeTraceResolver::Add (std::string name, 
-                             Callback<TraceResolver *,TraceContext const &> createResolver,
+                             Callback<TraceResolver *> createResolver,
                              T const &context)
 {
-  TraceContext traceContext = GetContext ();
-  traceContext.Add (context);
-  DoAdd (name, createResolver, traceContext);
+  TraceContext ctx;
+  ctx.Add (context);
+  DoAdd (name, createResolver, ctx);
 }
 
 }//namespace ns3
--- a/src/common/empty-trace-resolver.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/empty-trace-resolver.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -20,6 +20,5 @@
  */
 #include "empty-trace-resolver.h"
 
-ns3::EmptyTraceResolver::EmptyTraceResolver (TraceContext const &context)
-  : TraceResolver (context)
+ns3::EmptyTraceResolver::EmptyTraceResolver ()
 {}
--- a/src/common/empty-trace-resolver.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/empty-trace-resolver.h	Thu Aug 09 21:25:23 2007 +0200
@@ -44,7 +44,7 @@
    *
    * The only constructor exported by this class.
    */
-  EmptyTraceResolver (TraceContext const &o);
+  EmptyTraceResolver ();
 };
 
 }//namespace ns3
--- a/src/common/terminal-trace-resolver.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/terminal-trace-resolver.h	Thu Aug 09 21:25:23 2007 +0200
@@ -31,9 +31,9 @@
 class TerminalTraceResolver : public TraceResolver
 {
  public:
-  TerminalTraceResolver (T &traceSource, TraceContext const &context);
+  TerminalTraceResolver (T &traceSource);
  private:
-  virtual void DoConnect (CallbackBase const &cb);
+  virtual void DoConnect (CallbackBase const &cb, const TraceContext &context);
   virtual void DoDisconnect (CallbackBase const &cb);
   T &m_traceSource;
 };
@@ -43,16 +43,14 @@
 namespace ns3 {
 
 template <typename T>
-TerminalTraceResolver<T>::TerminalTraceResolver (T &traceSource, 
-						 TraceContext const &context)
-  : TraceResolver (context),
-    m_traceSource (traceSource)
+TerminalTraceResolver<T>::TerminalTraceResolver (T &traceSource)
+  : m_traceSource (traceSource)
 {}
 template <typename T>
 void 
-TerminalTraceResolver<T>::DoConnect (CallbackBase const &cb)
+TerminalTraceResolver<T>::DoConnect (CallbackBase const &cb, const TraceContext &context)
 {
-  m_traceSource.AddCallback (cb, GetContext ());
+  m_traceSource.AddCallback (cb, context);
 }
 template <typename T>
 void 
--- a/src/common/trace-resolver.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/trace-resolver.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -22,21 +22,12 @@
 
 namespace ns3 {
 
-TraceResolver::TraceResolver (TraceContext const &context)
-  : m_context (context)
-{}
 
 TraceResolver::~TraceResolver ()
 {}
 
-TraceContext const &
-TraceResolver::GetContext (void) const
-{
-  return m_context;
-}
-
 void 
-TraceResolver::Connect (std::string path, CallbackBase const &cb)
+TraceResolver::Connect (std::string path, CallbackBase const &cb, const TraceContext &context)
 {
   std::string::size_type cur = 1;
   // check that first char is "/"
@@ -45,16 +36,18 @@
   TraceResolverList resolverList = DoLookup (element);
   for (TraceResolverList::iterator i = resolverList.begin (); i != resolverList.end (); i++)
     {
-      TraceResolver *resolver = *i;
+      TraceResolver *resolver = i->first;
+      TraceContext tmp = context;
+      tmp.Add (i->second);
       if (next == std::string::npos) 
 	{
 	  // we really break the recursion here.
-	  resolver->DoConnect (cb);
+	  resolver->DoConnect (cb, tmp);
 	}
       else
 	{
 	  std::string subpath = std::string (path, next, std::string::npos);
-          resolver->Connect (subpath, cb);
+          resolver->Connect (subpath, cb, tmp);
 	}
       delete resolver;
     }
@@ -71,7 +64,7 @@
   TraceResolverList resolverList = DoLookup (element);
   for (TraceResolverList::iterator i = resolverList.begin (); i != resolverList.end (); i++)
     {
-      TraceResolver *resolver = *i;
+      TraceResolver *resolver = i->first;
       if (next == std::string::npos) 
 	{
 	  // we really break the recursion here.
@@ -93,7 +86,7 @@
   return TraceResolverList ();
 }
 void 
-TraceResolver::DoConnect (CallbackBase const &cb)
+TraceResolver::DoConnect (CallbackBase const &cb, const TraceContext &context)
 {}
 
 void 
--- a/src/common/trace-resolver.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/trace-resolver.h	Thu Aug 09 21:25:23 2007 +0200
@@ -59,7 +59,7 @@
    * users could also conceivably call it directly if they want to
    * skip the ns3::TraceRoot.
    */
-  void Connect (std::string path, CallbackBase const &cb);
+  void Connect (std::string path, CallbackBase const &cb, const TraceContext &context);
   /**
    * \param path the namespace path to resolver
    * \param cb the callback to disconnect in the matching namespace
@@ -70,23 +70,8 @@
    */
   void Disconnect (std::string path, CallbackBase const &cb);
 protected:
-  /**
-   * \param context the context used to initialize this TraceResolver.
-   *
-   * Every subclass must call this constructor
-   */
-  TraceResolver (TraceContext const &context);
-  /**
-   * \returns the ns3::TraceContext stored in this ns3::TraceResolver.
-   *
-   * Subclasses usually invoke this method to get access to the
-   * TraceContext stored here to pass it down to the TraceResolver
-   * constructors invoked from within the DoLookup method.
-   */
-  TraceContext const &GetContext (void) const;
-  typedef std::list<TraceResolver *> TraceResolverList;
+  typedef std::list<std::pair<TraceResolver *, TraceContext> > TraceResolverList;
 private:
-  TraceResolver ();
   /**
    * \param id the id to resolve. This is supposed to be
    * one element of the global tracing namespace.
@@ -104,7 +89,7 @@
    *
    * This method is invoked on leaf trace resolvers.
    */
-  virtual void DoConnect (CallbackBase const &cb);
+  virtual void DoConnect (CallbackBase const &cb, const TraceContext &context);
   /**
    * \param cb callback to disconnect
    *
--- a/src/common/trace-root.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/trace-root.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -28,7 +28,7 @@
 TraceRoot::Connect (std::string path, CallbackBase const &cb)
 {
   TraceResolver *resolver = GetComposite ();
-  resolver->Connect (path, cb);
+  resolver->Connect (path, cb, TraceContext ());
 }
 void 
 TraceRoot::Disconnect (std::string path, CallbackBase const &cb)
@@ -38,7 +38,7 @@
 }
 void 
 TraceRoot::Register (std::string name, 
-                     Callback<TraceResolver *,TraceContext const &> createResolver)
+                     Callback<TraceResolver *> createResolver)
 {
   CompositeTraceResolver *resolver = GetComposite ();
   resolver->Add (name, createResolver);
@@ -47,7 +47,7 @@
 CompositeTraceResolver *
 TraceRoot::GetComposite (void)
 {
-  static CompositeTraceResolver resolver = CompositeTraceResolver (TraceContext ());
+  static CompositeTraceResolver resolver;
   return &resolver;
 }
 
--- a/src/common/trace-root.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/common/trace-root.h	Thu Aug 09 21:25:23 2007 +0200
@@ -325,7 +325,7 @@
   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<TraceResolver *,TraceContext const &> createResolver);
+                        Callback<TraceResolver *> createResolver);
 private:
   static CompositeTraceResolver *GetComposite (void);
 };
--- a/src/devices/csma-cd/csma-cd-net-device.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/devices/csma-cd/csma-cd-net-device.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -450,9 +450,9 @@
 }
 
 TraceResolver *
-CsmaCdNetDevice::DoCreateTraceResolver (TraceContext const &context)
+CsmaCdNetDevice::DoCreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   resolver->Add ("queue", 
                  MakeCallback (&Queue::CreateTraceResolver, 
                                PeekPointer (m_queue)));
--- a/src/devices/csma-cd/csma-cd-net-device.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/devices/csma-cd/csma-cd-net-device.h	Thu Aug 09 21:25:23 2007 +0200
@@ -311,7 +311,7 @@
    * (NOT TESTED)
    * @see class TraceResolver
    */
-  virtual TraceResolver *DoCreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver *DoCreateTraceResolver (void);
 
   /**
    * Aborts the transmission of the current packet
--- a/src/devices/point-to-point/point-to-point-net-device.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/devices/point-to-point/point-to-point-net-device.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -188,10 +188,9 @@
   TransmitStart(p);
 }
 
-TraceResolver* PointToPointNetDevice::DoCreateTraceResolver (
-                                      TraceContext const &context)
+TraceResolver* PointToPointNetDevice::DoCreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   resolver->Add ("queue", 
                  MakeCallback (&Queue::CreateTraceResolver, PeekPointer (m_queue)));
   resolver->Add ("rx",
--- a/src/devices/point-to-point/point-to-point-net-device.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/devices/point-to-point/point-to-point-net-device.h	Thu Aug 09 21:25:23 2007 +0200
@@ -243,7 +243,7 @@
    *
    * @see class TraceResolver
    */
-  virtual TraceResolver* DoCreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver* DoCreateTraceResolver (void);
   virtual bool DoNeedsArp (void) const;
   /**
    * Enumeration of the states of the transmit machine of the net device.
--- a/src/internet-node/arp-ipv4-interface.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/arp-ipv4-interface.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -41,9 +41,9 @@
 {}
 
 TraceResolver *
-ArpIpv4Interface::DoCreateTraceResolver (TraceContext const &context)
+ArpIpv4Interface::DoCreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   if (GetDevice () != 0)
     {
       resolver->Add ("netdevice",
--- a/src/internet-node/arp-ipv4-interface.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/arp-ipv4-interface.h	Thu Aug 09 21:25:23 2007 +0200
@@ -44,7 +44,7 @@
 
  private:
   virtual void SendTo (Packet p, Ipv4Address dest);
-  virtual TraceResolver *DoCreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver *DoCreateTraceResolver (void);
   Ptr<Node> m_node;
 };
 
--- a/src/internet-node/arp-l3-protocol.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/arp-l3-protocol.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -59,9 +59,9 @@
 }
 
 TraceResolver *
-ArpL3Protocol::CreateTraceResolver (TraceContext const &context)
+ArpL3Protocol::CreateTraceResolver (void)
 {
-  return new EmptyTraceResolver (context);
+  return new EmptyTraceResolver ();
 }
 
 ArpCache *
--- a/src/internet-node/arp-l3-protocol.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/arp-l3-protocol.h	Thu Aug 09 21:25:23 2007 +0200
@@ -49,7 +49,7 @@
   ArpL3Protocol (Ptr<Node> node);
   virtual ~ArpL3Protocol ();
 
-  virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver *CreateTraceResolver (void);
   /**
    * \brief Recieve a packet
    */
--- a/src/internet-node/ipv4-interface.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-interface.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -46,9 +46,9 @@
 }
 
 TraceResolver *
-Ipv4Interface::CreateTraceResolver (TraceContext const &context)
+Ipv4Interface::CreateTraceResolver (void)
 {
-  return DoCreateTraceResolver (context);
+  return DoCreateTraceResolver ();
 }
 
 void 
--- a/src/internet-node/ipv4-interface.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-interface.h	Thu Aug 09 21:25:23 2007 +0200
@@ -83,7 +83,7 @@
    * This method will delegate the work to the private DoCreateTraceResolver 
    * method which is supposed to be implemented by subclasses.
    */
-  TraceResolver *CreateTraceResolver (TraceContext const &context);
+  TraceResolver *CreateTraceResolver (void);
   /**
    * \returns the underlying NetDevice. This method can return
    *          zero if this interface has no associated NetDevice.
@@ -153,7 +153,7 @@
 
  private:
   virtual void SendTo (Packet p, Ipv4Address dest) = 0;
-  virtual TraceResolver *DoCreateTraceResolver (TraceContext const &context) = 0;
+  virtual TraceResolver *DoCreateTraceResolver (void) = 0;
   Ptr<NetDevice> m_netdevice;
   bool m_ifup;
   Ipv4Address m_address;
--- a/src/internet-node/ipv4-l3-protocol.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-l3-protocol.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -154,9 +154,9 @@
 }
 
 TraceResolver *
-Ipv4L3Protocol::CreateTraceResolver (TraceContext const &context)
+Ipv4L3Protocol::CreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   resolver->Add ("tx", m_txTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::TX));
   resolver->Add ("rx", m_rxTrace, Ipv4L3ProtocolTraceContextElement(Ipv4L3ProtocolTraceContextElement::RX));
   resolver->Add ("drop", m_dropTrace, Ipv4L3ProtocolTraceContextElement (Ipv4L3ProtocolTraceContextElement::DROP));
@@ -166,12 +166,11 @@
 }
 
 TraceResolver *
-Ipv4L3Protocol::InterfacesCreateTraceResolver (TraceContext const &context) const
+Ipv4L3Protocol::InterfacesCreateTraceResolver (void) const
 {
   ArrayTraceResolver<Ipv4Interface *, Ipv4l3ProtocolInterfaceIndex> *resolver = 
     new ArrayTraceResolver<Ipv4Interface *,Ipv4l3ProtocolInterfaceIndex> 
-    (context,
-     MakeCallback (&Ipv4L3Protocol::GetNInterfaces, this),
+    (MakeCallback (&Ipv4L3Protocol::GetNInterfaces, this),
      MakeCallback (&Ipv4L3Protocol::GetInterface, this));
   return resolver;
 }
--- a/src/internet-node/ipv4-l3-protocol.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-l3-protocol.h	Thu Aug 09 21:25:23 2007 +0200
@@ -92,7 +92,7 @@
    *          performed in this object. The caller must
    *          delete the returned object.
    */
-  virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver *CreateTraceResolver (void);
 
   /**
    * \param ttl default ttl to use
@@ -189,7 +189,7 @@
   void ForwardUp (Packet p, Ipv4Header const&ip);
   uint32_t AddIpv4Interface (Ipv4Interface *interface);
   void SetupLoopback (void);
-  TraceResolver *InterfacesCreateTraceResolver (TraceContext const &context) const;
+  TraceResolver *InterfacesCreateTraceResolver (void) const;
 
   typedef std::list<Ipv4Interface*> Ipv4InterfaceList;
   typedef std::list< std::pair< int, Ptr<Ipv4RoutingProtocol> > > Ipv4RoutingProtocolList;
--- a/src/internet-node/ipv4-l4-demux.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-l4-demux.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -79,9 +79,9 @@
 }
 
 TraceResolver *
-Ipv4L4Demux::CreateTraceResolver (TraceContext const &context)
+Ipv4L4Demux::CreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   for (L4List_t::const_iterator i = m_protocols.begin(); i != m_protocols.end(); ++i)
     {
       Ptr<Ipv4L4Protocol> protocol = *i;
--- a/src/internet-node/ipv4-l4-demux.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-l4-demux.h	Thu Aug 09 21:25:23 2007 +0200
@@ -66,7 +66,7 @@
    *          performed in this object. The caller must
    *          delete the returned object.
    */
-  TraceResolver *CreateTraceResolver (TraceContext const &context);
+  TraceResolver *CreateTraceResolver (void);
   /**
    * \param protocol a template for the protocol to add to this L4 Demux.
    * \returns the L4Protocol effectively added.
--- a/src/internet-node/ipv4-l4-protocol.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-l4-protocol.h	Thu Aug 09 21:25:23 2007 +0200
@@ -59,7 +59,7 @@
    */
   int GetVersion() const;
 
-  virtual TraceResolver *CreateTraceResolver (TraceContext const &context) = 0;
+  virtual TraceResolver *CreateTraceResolver () = 0;
 
   /**
    * \param p packet to forward up
--- a/src/internet-node/ipv4-loopback-interface.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-loopback-interface.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -35,9 +35,9 @@
 {}
 
 TraceResolver *
-Ipv4LoopbackInterface::DoCreateTraceResolver (TraceContext const &context)
+Ipv4LoopbackInterface::DoCreateTraceResolver (void)
 {
-  return new EmptyTraceResolver (context);
+  return new EmptyTraceResolver ();
 }
 
 void 
--- a/src/internet-node/ipv4-loopback-interface.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/ipv4-loopback-interface.h	Thu Aug 09 21:25:23 2007 +0200
@@ -43,7 +43,7 @@
 
  private:
   virtual void SendTo (Packet p, Ipv4Address dest);
-  virtual TraceResolver *DoCreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver *DoCreateTraceResolver (void);
 
   Ptr<Node> m_node;
 };
--- a/src/internet-node/udp-l4-protocol.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/udp-l4-protocol.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -46,9 +46,9 @@
 {}
 
 TraceResolver *
-UdpL4Protocol::CreateTraceResolver (TraceContext const &context)
+UdpL4Protocol::CreateTraceResolver (void)
 {
-  return new EmptyTraceResolver (context);
+  return new EmptyTraceResolver ();
 }
 
 void
--- a/src/internet-node/udp-l4-protocol.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/internet-node/udp-l4-protocol.h	Thu Aug 09 21:25:23 2007 +0200
@@ -49,7 +49,7 @@
   UdpL4Protocol (Ptr<Node> node);
   virtual ~UdpL4Protocol ();
 
-  virtual TraceResolver *CreateTraceResolver (TraceContext const &context);
+  virtual TraceResolver *CreateTraceResolver (void);
   /**
    * \return A smart Socket pointer to a UdpSocket, allocated by this instance
    * of the UDP protocol
--- a/src/node/net-device.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/net-device.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -184,9 +184,9 @@
 }
 
 TraceResolver *
-NetDevice::CreateTraceResolver (TraceContext const &context)
+NetDevice::CreateTraceResolver (void)
 {
-  return DoCreateTraceResolver (context);
+  return DoCreateTraceResolver ();
 }
 
 Ptr<Channel>
--- a/src/node/net-device.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/net-device.h	Thu Aug 09 21:25:23 2007 +0200
@@ -69,7 +69,7 @@
    *          performed in this object. The caller must
    *          delete the returned object.
    */
-  TraceResolver *CreateTraceResolver (TraceContext const &context);
+  TraceResolver *CreateTraceResolver (void);
 
   /**
    * \return the channel this NetDevice is connected to. The value
@@ -290,7 +290,7 @@
    *
    * Subclasses must implement this method.
    */
-  virtual TraceResolver *DoCreateTraceResolver (TraceContext const &context) = 0;
+  virtual TraceResolver *DoCreateTraceResolver (void) = 0;
   /**
    * \returns the channel associated to this NetDevice.
    *
--- a/src/node/node-list.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/node-list.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -76,7 +76,7 @@
   uint32_t Add (Ptr<Node> node);
   NodeList::Iterator Begin (void);
   NodeList::Iterator End (void);
-  TraceResolver *CreateTraceResolver (TraceContext const &context);
+  TraceResolver *CreateTraceResolver (void);
   Ptr<Node> GetNode (uint32_t n);
   uint32_t GetNNodes (void);
 
@@ -131,12 +131,11 @@
 
 
 TraceResolver *
-NodeListPriv::CreateTraceResolver (TraceContext const &context)
+NodeListPriv::CreateTraceResolver (void)
 {
   ArrayTraceResolver<Ptr<Node>, NodeListIndex> *resolver =
     new ArrayTraceResolver<Ptr<Node>, NodeListIndex>
-    (context, 
-     MakeCallback (&NodeListPriv::GetNNodes, this),
+    (MakeCallback (&NodeListPriv::GetNNodes, this),
      MakeCallback (&NodeListPriv::GetNode, this));
   return resolver;
 }
@@ -166,9 +165,9 @@
   return SimulationSingleton<NodeListPriv>::Get ()->End ();
 }
 TraceResolver *
-NodeList::CreateTraceResolver (TraceContext const &context)
+NodeList::CreateTraceResolver (void)
 {
-  return SimulationSingleton<NodeListPriv>::Get ()->CreateTraceResolver (context);
+  return SimulationSingleton<NodeListPriv>::Get ()->CreateTraceResolver ();
 }
 Ptr<Node>
 NodeList::GetNode (uint32_t n)
--- a/src/node/node-list.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/node-list.h	Thu Aug 09 21:25:23 2007 +0200
@@ -79,7 +79,7 @@
    * \returns the requested trace resolver. The caller
    *          takes ownership of the returned pointer.
    */
-  static TraceResolver *CreateTraceResolver (TraceContext const &context);
+  static TraceResolver *CreateTraceResolver (void);
 
   /**
    * \param n index of requested node.
--- a/src/node/node.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/node.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -83,9 +83,9 @@
 {}
 
 TraceResolver *
-Node::CreateTraceResolver (TraceContext const &context)
+Node::CreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   DoFillTraceResolver (*resolver);
   return resolver;
 }
@@ -142,12 +142,11 @@
 }
 
 TraceResolver *
-Node::CreateDevicesTraceResolver (const TraceContext &context)
+Node::CreateDevicesTraceResolver (void)
 {
   ArrayTraceResolver<Ptr<NetDevice>,NodeNetDeviceIndex> *resolver = 
     new ArrayTraceResolver<Ptr<NetDevice>,NodeNetDeviceIndex> 
-    (context,
-     MakeCallback (&Node::GetNDevices, this), 
+    (MakeCallback (&Node::GetNDevices, this), 
      MakeCallback (&Node::GetDevice, this));
   
   return resolver;
--- a/src/node/node.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/node.h	Thu Aug 09 21:25:23 2007 +0200
@@ -85,7 +85,6 @@
   virtual ~Node();
 
   /**
-   * \param context the trace context for the TraceResolver to create
    * \returns a newly-created TraceResolver. The caller takes
    *          ownership of the returned pointer.
    *
@@ -93,7 +92,7 @@
    * could be used directly by a user who needs access to very low-level
    * trace configuration.
    */
-  TraceResolver *CreateTraceResolver (TraceContext const &context);
+  TraceResolver *CreateTraceResolver (void);
 
   /**
    * \returns the unique id of this node.
@@ -213,7 +212,7 @@
   bool ReceiveFromDevice (Ptr<NetDevice> device, const Packet &packet, 
                           uint16_t protocol, const Address &from);
   void Construct (void);
-  TraceResolver *CreateDevicesTraceResolver (const TraceContext &context);
+  TraceResolver *CreateDevicesTraceResolver (void);
 
   struct ProtocolHandlerEntry {
     ProtocolHandler handler;
--- a/src/node/queue.cc	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/queue.cc	Thu Aug 09 21:25:23 2007 +0200
@@ -95,9 +95,9 @@
 }
 
 TraceResolver *
-Queue::CreateTraceResolver (TraceContext const &context)
+Queue::CreateTraceResolver (void)
 {
-  CompositeTraceResolver *resolver = new CompositeTraceResolver (context);
+  CompositeTraceResolver *resolver = new CompositeTraceResolver ();
   resolver->Add ("enqueue", m_traceEnqueue, QueueTraceType (QueueTraceType::ENQUEUE));
   resolver->Add ("dequeue", m_traceDequeue, QueueTraceType (QueueTraceType::DEQUEUE));
   resolver->Add ("drop", m_traceDrop, QueueTraceType (QueueTraceType::DROP));
--- a/src/node/queue.h	Thu Aug 09 13:42:42 2007 +0200
+++ b/src/node/queue.h	Thu Aug 09 21:25:23 2007 +0200
@@ -70,7 +70,7 @@
   Queue ();
   virtual ~Queue ();
 
-  TraceResolver *CreateTraceResolver (TraceContext const &context);
+  TraceResolver *CreateTraceResolver (void);
   
   /**
    * \return true if the queue is empty; false otherwise