Patch from Mathieu, makes EnableNodes templated
authorGustavo J. A. M. Carneiro <gjc@inescporto.pt>
Mon, 30 Jul 2007 19:11:21 +0100
changeset 1735 9675c6b5452c
parent 1734 64dcaf0b2bd3
child 1736 b967654a135a
Patch from Mathieu, makes EnableNodes templated
src/routing/olsr/olsr.cc
src/routing/olsr/olsr.h
--- a/src/routing/olsr/olsr.cc	Mon Jul 30 17:43:52 2007 +0100
+++ b/src/routing/olsr/olsr.cc	Mon Jul 30 19:11:21 2007 +0100
@@ -28,23 +28,14 @@
 void
 EnableAllNodes (void)
 {
-    EnableNodes (NodeList::Begin (), NodeList::End ());
-}
-
-void
-EnableNodes (NodeList::Iterator begin, NodeList::Iterator end)
-{
-    for (NodeList::Iterator i = begin; i != end; i++)
-    {
-        EnableNode (*i);
-    }
+  EnableNodes <NodeList::Iterator> (NodeList::Begin (), NodeList::End ());
 }
 
 void
 EnableNode (Ptr<Node> node)
 {
-    ComponentManager::Create<OlsrAgent, Ptr<Node> >
-        (OlsrAgent::cid, OlsrAgent::iid, node)->Start ();
+  ComponentManager::Create<OlsrAgent, Ptr<Node> >
+    (OlsrAgent::cid, OlsrAgent::iid, node)->Start ();
 }
 
 
--- a/src/routing/olsr/olsr.h	Mon Jul 30 17:43:52 2007 +0100
+++ b/src/routing/olsr/olsr.h	Mon Jul 30 19:11:21 2007 +0100
@@ -32,11 +32,30 @@
     void EnableAllNodes (void);
 
     // \brief Start the OLSR routing agent on a given list of nodes
-    void EnableNodes (NodeList::Iterator begin, NodeList::Iterator end);
+    template <typename InputIterator>
+    void EnableNodes (InputIterator begin, InputIterator end);
 
     // \brief Start the OLSR routing agent on the given nodes
     void EnableNode (Ptr<Node> node);
   }
 }
 
+
+// implementation
+namespace ns3
+{
+  namespace olsr
+  {
+    template <typename InputIterator>
+    void EnableNodes (InputIterator begin, InputIterator end)
+    {
+      for (InputIterator i = begin; i != end; i++)
+        {
+          EnableNode (*i);
+        }
+    }
+  }
+}
+
+
 #endif /* OLSR_H */