From fa9431d52f37bf51a2aa0d3a85eaaf027db8488f Mon Sep 17 00:00:00 2001 From: "William A. Kennington III" Date: Tue, 25 Sep 2018 14:28:31 -0700 Subject: example: Add a repeating timer sample Tested: Ran through unit test suite and manually executed the example program to make sure it works as expected. Change-Id: I77cffdd038df4eab774f0d162f49273650638ad6 Signed-off-by: William A. Kennington III --- example/heartbeat_timer.cpp | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 example/heartbeat_timer.cpp (limited to 'example/heartbeat_timer.cpp') 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 +#include +#include +#include +#include +#include + +using sdeventplus::Clock; +using sdeventplus::ClockId; +using sdeventplus::Event; + +constexpr auto clockId = ClockId::RealTime; +using Timer = sdeventplus::utility::Timer; + +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(); +} -- cgit v1.2.3