From 2f682ca9f8d424dfb70c9ad1ef77693c74b7b16a Mon Sep 17 00:00:00 2001 From: Craig Dowell Date: Mon, 23 Jul 2007 15:53:37 -0700 Subject: [PATCH] single populate call --- examples/simple-static-routing.cc | 3 +-- src/routing/static-route-manager.cc | 7 +++++++ src/routing/static-route-manager.h | 19 ++++++++++++++++--- 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/examples/simple-static-routing.cc b/examples/simple-static-routing.cc index 544e68721..02efaa407 100644 --- a/examples/simple-static-routing.cc +++ b/examples/simple-static-routing.cc @@ -143,8 +143,7 @@ int main (int argc, char *argv[]) if (RoutingEnvironment::StaticRoutingEnabled ()) { - StaticRouteManager::BuildStaticRoutingDatabase (); - StaticRouteManager::InitializeRoutes (); + StaticRouteManager::PopulateRoutingTables (); } // Create the OnOff application to send UDP datagrams of size diff --git a/src/routing/static-route-manager.cc b/src/routing/static-route-manager.cc index 09ced494f..b3a0cb6ff 100644 --- a/src/routing/static-route-manager.cc +++ b/src/routing/static-route-manager.cc @@ -28,6 +28,13 @@ namespace ns3 { // // --------------------------------------------------------------------------- + void +StaticRouteManager::PopulateRoutingTables () +{ + BuildStaticRoutingDatabase (); + InitializeRoutes (); +} + void StaticRouteManager::BuildStaticRoutingDatabase () { diff --git a/src/routing/static-route-manager.h b/src/routing/static-route-manager.h index e8616d573..4f1cdc8ae 100644 --- a/src/routing/static-route-manager.h +++ b/src/routing/static-route-manager.h @@ -33,18 +33,31 @@ namespace ns3 { class StaticRouteManager { public: +/** + * @brief Build a routing database and initialize the routing tables of + * the nodes in the simulation. + * + * All this function does is call BuildStaticRoutingDatabase () and + * InitializeRoutes (). There's no reason to export the two-step process + * since a high-level caller has no need to know how we're implementing the + * process. + * + * @see BuildStaticRoutingDatabase (); + * @see InitializeRoutes (); + */ + static void PopulateRoutingTables (); +private: /** * @brief Build the routing database by gathering Link State Advertisements * from each node exporting a StaticRouter interface. * */ - static void BuildStaticRoutingDatabase(); + static void BuildStaticRoutingDatabase (); /** * @brief Compute routes using a Dijkstra SPF computation and populate * per-node forwarding tables */ - static void InitializeRoutes(); -private: + static void InitializeRoutes (); /** * @brief Static Route Manager copy construction is disallowed. There's no * need for it and a compiler provided shallow copy would be hopelessly wrong.