treewide: Move timers out of networkd lib scope

Change-Id: I5fd0fc70d007e0851329172b8421846a78016d57
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/network_manager.cpp b/src/network_manager.cpp
index 51863a7..557e826 100644
--- a/src/network_manager.cpp
+++ b/src/network_manager.cpp
@@ -29,7 +29,6 @@
 namespace network
 {
 
-extern std::unique_ptr<Timer> reloadTimer;
 using namespace phosphor::logging;
 using namespace sdbusplus::xyz::openbmc_project::Common::Error;
 using Argument = xyz::openbmc_project::Common::InvalidArgument;
@@ -40,10 +39,11 @@
     "link',interface='org.freedesktop.DBus.Properties',member='"
     "PropertiesChanged',arg0='org.freedesktop.network1.Link',";
 
-Manager::Manager(sdbusplus::bus_t& bus, const char* objPath,
+Manager::Manager(sdbusplus::bus_t& bus, DelayedExecutor& reload,
+                 stdplus::zstring_view objPath,
                  const std::filesystem::path& confDir) :
-    ManagerIface(bus, objPath, ManagerIface::action::defer_emit),
-    bus(bus), objPath(std::string(objPath)), confDir(confDir),
+    ManagerIface(bus, objPath.c_str(), ManagerIface::action::defer_emit),
+    reload(reload), bus(bus), objPath(std::string(objPath)), confDir(confDir),
     systemdNetworkdEnabledMatch(
         bus, enabledMatch, [&](sdbusplus::message_t& m) {
             std::string intf;
@@ -76,6 +76,47 @@
             }
         })
 {
+    reload.setCallback([&]() {
+        for (auto& hook : reloadPreHooks)
+        {
+            try
+            {
+                hook();
+            }
+            catch (const std::exception& ex)
+            {
+                log<level::ERR>("Failed executing reload hook, ignoring",
+                                entry("ERR=%s", ex.what()));
+            }
+        }
+        reloadPreHooks.clear();
+        try
+        {
+            auto method = bus.new_method_call(NETWORKD_BUSNAME, NETWORKD_PATH,
+                                              NETWORKD_INTERFACE, "Reload");
+            bus.call_noreply(method);
+            log<level::INFO>("Reloaded systemd-networkd");
+        }
+        catch (const sdbusplus::exception_t& ex)
+        {
+            log<level::ERR>("Failed to reload configuration",
+                            entry("ERR=%s", ex.what()));
+            reloadPostHooks.clear();
+        }
+        for (auto& hook : reloadPostHooks)
+        {
+            try
+            {
+                hook();
+            }
+            catch (const std::exception& ex)
+            {
+                log<level::ERR>("Failed executing reload hook, ignoring",
+                                entry("ERR=%s", ex.what()));
+            }
+        }
+        reloadPostHooks.clear();
+    });
     std::vector<
         std::tuple<int32_t, std::string, sdbusplus::message::object_path>>
         links;
@@ -463,53 +504,6 @@
     }
 }
 
-void Manager::reloadConfigs()
-{
-    reloadTimer->restartOnce(reloadTimeout);
-}
-
-void Manager::doReloadConfigs()
-{
-    for (auto& hook : reloadPreHooks)
-    {
-        try
-        {
-            hook();
-        }
-        catch (const std::exception& ex)
-        {
-            log<level::ERR>("Failed executing reload hook, ignoring",
-                            entry("ERR=%s", ex.what()));
-        }
-    }
-    reloadPreHooks.clear();
-    try
-    {
-        auto method = bus.new_method_call(NETWORKD_BUSNAME, NETWORKD_PATH,
-                                          NETWORKD_INTERFACE, "Reload");
-        bus.call_noreply(method);
-    }
-    catch (const sdbusplus::exception_t& ex)
-    {
-        log<level::ERR>("Failed to reload configuration",
-                        entry("ERR=%s", ex.what()));
-        reloadPostHooks.clear();
-    }
-    for (auto& hook : reloadPostHooks)
-    {
-        try
-        {
-            hook();
-        }
-        catch (const std::exception& ex)
-        {
-            log<level::ERR>("Failed executing reload hook, ignoring",
-                            entry("ERR=%s", ex.what()));
-        }
-    }
-    reloadPostHooks.clear();
-}
-
 void Manager::handleAdminState(std::string_view state, unsigned ifidx)
 {
     if (state == "initialized" || state == "linger")