summaryrefslogtreecommitdiffstats
path: root/timer.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'timer.hpp')
-rw-r--r--timer.hpp156
1 files changed, 78 insertions, 78 deletions
diff --git a/timer.hpp b/timer.hpp
index e39d85c..ec432ba 100644
--- a/timer.hpp
+++ b/timer.hpp
@@ -1,8 +1,9 @@
#pragma once
+#include <systemd/sd-event.h>
+
#include <chrono>
#include <functional>
-#include <systemd/sd-event.h>
namespace phosphor
{
namespace ipmi
@@ -13,88 +14,87 @@ namespace ipmi
*/
class Timer
{
- public:
- /** @brief Only need the default Timer */
- Timer() = delete;
- Timer(const Timer&) = delete;
- Timer& operator=(const Timer&) = delete;
- Timer(Timer&&) = delete;
- Timer& operator=(Timer&&) = delete;
-
- /** @brief Constructs timer object
- *
- * @param[in] events - sd_event pointer
- * @param[in] funcCallBack - optional function callback for timer
- * expirations
- */
- Timer(sd_event* events,
- std::function<void()> userCallBack = nullptr)
- : timeEvent(events), userCallBack(userCallBack)
- {
- // Initialize the timer
- initialize();
- }
+ public:
+ /** @brief Only need the default Timer */
+ Timer() = delete;
+ Timer(const Timer&) = delete;
+ Timer& operator=(const Timer&) = delete;
+ Timer(Timer&&) = delete;
+ Timer& operator=(Timer&&) = delete;
- ~Timer()
- {
- if (eventSource)
- {
- eventSource = sd_event_source_unref(eventSource);
- }
- }
+ /** @brief Constructs timer object
+ *
+ * @param[in] events - sd_event pointer
+ * @param[in] funcCallBack - optional function callback for timer
+ * expirations
+ */
+ Timer(sd_event* events, std::function<void()> userCallBack = nullptr) :
+ timeEvent(events), userCallBack(userCallBack)
+ {
+ // Initialize the timer
+ initialize();
+ }
- inline auto isExpired() const
+ ~Timer()
+ {
+ if (eventSource)
{
- return expired;
+ eventSource = sd_event_source_unref(eventSource);
}
+ }
+
+ inline auto isExpired() const
+ {
+ return expired;
+ }
+
+ /** @brief Starts the timer with specified expiration value.
+ * input is an offset from the current steady_clock
+ */
+ int startTimer(std::chrono::microseconds usec);
+
+ /** @brief Enables / disables the timer */
+ int setTimer(int action);
+
+ private:
+ /** @brief the sd_event structure */
+ sd_event* timeEvent = nullptr;
+
+ /** @brief Source of events */
+ sd_event_source* eventSource = nullptr;
+
+ /** @brief Returns if the associated timer is expired
+ *
+ * This is set to true when the timeoutHandler is called into
+ */
+ bool expired = true;
+
+ /** @brief Initializes the timer object with infinite
+ * expiration time and sets up the callback handler
+ *
+ * @return None.
+ *
+ * @error std::runtime exception thrown
+ */
+ void initialize();
+
+ /** @brief Callback function when timer goes off
+ *
+ * On getting the signal, initiate the hard power off request
+ *
+ * @param[in] eventSource - Source of the event
+ * @param[in] usec - time in micro seconds
+ * @param[in] userData - User data pointer
+ *
+ */
+ static int timeoutHandler(sd_event_source* eventSource, uint64_t usec,
+ void* userData);
+
+ /** @brief Gets the current time from steady clock */
+ static std::chrono::microseconds getTime();
- /** @brief Starts the timer with specified expiration value.
- * input is an offset from the current steady_clock
- */
- int startTimer(std::chrono::microseconds usec);
-
- /** @brief Enables / disables the timer */
- int setTimer(int action);
-
- private:
- /** @brief the sd_event structure */
- sd_event* timeEvent = nullptr;
-
- /** @brief Source of events */
- sd_event_source* eventSource = nullptr;
-
- /** @brief Returns if the associated timer is expired
- *
- * This is set to true when the timeoutHandler is called into
- */
- bool expired = true;
-
- /** @brief Initializes the timer object with infinite
- * expiration time and sets up the callback handler
- *
- * @return None.
- *
- * @error std::runtime exception thrown
- */
- void initialize();
-
- /** @brief Callback function when timer goes off
- *
- * On getting the signal, initiate the hard power off request
- *
- * @param[in] eventSource - Source of the event
- * @param[in] usec - time in micro seconds
- * @param[in] userData - User data pointer
- *
- */
- static int timeoutHandler(sd_event_source* eventSource,
- uint64_t usec, void* userData);
-
- /** @brief Gets the current time from steady clock */
- static std::chrono::microseconds getTime();
-
- /** @brief Optional function to call on timer expiration */
- std::function<void()> userCallBack;
+ /** @brief Optional function to call on timer expiration */
+ std::function<void()> userCallBack;
};
} // namespace ipmi
OpenPOWER on IntegriCloud