network_manager: Upgrade delayed executor to be more generically useful
We can now use this in more parts of the codebase and with timeouts that
have more precision than 1 second.
Change-Id: I77c677230df6c288b29cd0895fe36f3f0158b393
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/src/network_manager.hpp b/src/network_manager.hpp
index 0ea8f2b..e119acc 100644
--- a/src/network_manager.hpp
+++ b/src/network_manager.hpp
@@ -29,15 +29,6 @@
sdbusplus::xyz::openbmc_project::Network::VLAN::server::Create,
sdbusplus::xyz::openbmc_project::Common::server::FactoryReset>;
-class DelayedExecutor
-{
- public:
- virtual ~DelayedExecutor() = default;
-
- virtual void schedule() = 0;
- virtual void setCallback(fu2::unique_function<void()>&& cb) = 0;
-};
-
/** @class Manager
* @brief OpenBMC network manager implementation.
*/
diff --git a/src/network_manager_main.cpp b/src/network_manager_main.cpp
index ca971f3..a65e635 100644
--- a/src/network_manager_main.cpp
+++ b/src/network_manager_main.cpp
@@ -33,7 +33,7 @@
using Timer = sdeventplus::utility::Timer<sdeventplus::ClockId::Monotonic>;
public:
- TimerExecutor(sdeventplus::Event& event, std::chrono::seconds delay) :
+ TimerExecutor(sdeventplus::Event& event, std::chrono::milliseconds delay) :
delay(delay), timer(event, nullptr)
{}
@@ -48,7 +48,7 @@
}
private:
- std::chrono::seconds delay;
+ std::chrono::milliseconds delay;
Timer timer;
};
diff --git a/src/types.hpp b/src/types.hpp
index 14de360..6195c3f 100644
--- a/src/types.hpp
+++ b/src/types.hpp
@@ -1,4 +1,5 @@
#pragma once
+#include <function2/function2.hpp>
#include <stdplus/net/addr/ether.hpp>
#include <stdplus/net/addr/ip.hpp>
#include <stdplus/net/addr/subnet.hpp>
@@ -11,6 +12,15 @@
namespace phosphor::network
{
+class DelayedExecutor
+{
+ public:
+ virtual ~DelayedExecutor() = default;
+
+ virtual void schedule() = 0;
+ virtual void setCallback(fu2::unique_function<void()>&& cb) = 0;
+};
+
/** @class InterfaceInfo
* @brief Information about interfaces from the kernel
*/