summaryrefslogtreecommitdiffstats
path: root/example/heartbeat_timer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'example/heartbeat_timer.cpp')
-rw-r--r--example/heartbeat_timer.cpp35
1 files changed, 35 insertions, 0 deletions
diff --git a/example/heartbeat_timer.cpp b/example/heartbeat_timer.cpp
new file mode 100644
index 0000000..c8354e8
--- /dev/null
+++ b/example/heartbeat_timer.cpp
@@ -0,0 +1,35 @@
+/**
+ * A simple example of a repeating timer that prints out a message for
+ * each timer expiration.
+ */
+
+#include <chrono>
+#include <cstdio>
+#include <sdeventplus/clock.hpp>
+#include <sdeventplus/event.hpp>
+#include <sdeventplus/utility/timer.hpp>
+#include <string>
+
+using sdeventplus::Clock;
+using sdeventplus::ClockId;
+using sdeventplus::Event;
+
+constexpr auto clockId = ClockId::RealTime;
+using Timer = sdeventplus::utility::Timer<clockId>;
+
+int main(int argc, char* argv[])
+{
+ if (argc != 2)
+ {
+ fprintf(stderr, "Usage: %s [seconds]\n", argv[0]);
+ return 1;
+ }
+
+ unsigned interval = std::stoul(argv[1]);
+ fprintf(stderr, "Beating every %u seconds\n", interval);
+
+ auto event = Event::get_default();
+ Timer timer(event, [](Timer&) { printf("Beat\n"); },
+ std::chrono::seconds{interval});
+ return event.loop();
+}
OpenPOWER on IntegriCloud