Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(673)

Unified Diff: src/helper/ipv4-routing-helper.cc

Issue 3613041: ns-3 print routing tables
Patch Set: provide const version of Purge() Created 13 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Please Sign in to add in-line comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: src/helper/ipv4-routing-helper.cc
===================================================================
--- a/src/helper/ipv4-routing-helper.cc
+++ b/src/helper/ipv4-routing-helper.cc
@@ -17,11 +17,67 @@
*
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
*/
+#include "ns3/node.h"
+#include "ns3/node-list.h"
+#include "ns3/simulator.h"
+#include "ns3/ipv4-routing-protocol.h"
#include "ipv4-routing-helper.h"
namespace ns3 {
Ipv4RoutingHelper::~Ipv4RoutingHelper ()
-{}
+{
+}
+
+void
+Ipv4RoutingHelper::PrintRoutingTableAllAt (Time printTime, Ptr<OutputStreamWrapper> stream) const
+{
+ for (uint32_t i = 0; i < NodeList::GetNNodes (); i++)
+ {
+ Ptr<Node> node = NodeList::GetNode (i);
+ Simulator::Schedule (printTime, &Ipv4RoutingHelper::Print, this, node, stream);
+ }
+}
+
+void
+Ipv4RoutingHelper::PrintRoutingTableAllEvery (Time printInterval, Ptr<OutputStreamWrapper> stream) const
+{
+ for (uint32_t i = 0; i < NodeList::GetNNodes (); i++)
+ {
+ Ptr<Node> node = NodeList::GetNode (i);
+ Simulator::Schedule (printInterval, &Ipv4RoutingHelper::PrintEvery, this, printInterval, node, stream);
+ }
+}
+
+void
+Ipv4RoutingHelper::PrintRoutingTableAt (Time printTime, Ptr<Node> node, Ptr<OutputStreamWrapper> stream) const
+{
+ Simulator::Schedule (printTime, &Ipv4RoutingHelper::Print, this, node, stream);
+}
+
+void
+Ipv4RoutingHelper::PrintRoutingTableEvery (Time printInterval,Ptr<Node> node, Ptr<OutputStreamWrapper> stream) const
+{
+ Simulator::Schedule (printInterval, &Ipv4RoutingHelper::PrintEvery, this, printInterval, node, stream);
+}
+
+void
+Ipv4RoutingHelper::Print (Ptr<Node> node, Ptr<OutputStreamWrapper> stream) const
+{
+ Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();
+ Ptr<Ipv4RoutingProtocol> rp = ipv4->GetRoutingProtocol ();
+ NS_ASSERT (rp);
+ rp->PrintRoutingTable (stream);
+}
+
+void
+Ipv4RoutingHelper::PrintEvery (Time printInterval, Ptr<Node> node, Ptr<OutputStreamWrapper> stream) const
+{
+ Ptr<Ipv4> ipv4 = node->GetObject<Ipv4> ();
+ Ptr<Ipv4RoutingProtocol> rp = ipv4->GetRoutingProtocol ();
+ NS_ASSERT (rp);
+ rp->PrintRoutingTable (stream);
+ Simulator::Schedule (printInterval, &Ipv4RoutingHelper::PrintEvery, this, printInterval, node, stream);
+}
} // namespace ns3

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b