diff options
author | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2017-04-04 14:07:25 +0530 |
---|---|---|
committer | Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com> | 2017-04-27 14:42:05 +0530 |
commit | 0b95603eb48a72234b8fc618dcc4db13b6f4d079 (patch) | |
tree | 627c1ce7766aa3ace52aa6782bbf96fb4cdc9028 /mainapp.cpp | |
parent | 4902a10c9fabcdf5e1f2868f28cba2d571d55f03 (diff) | |
download | phosphor-gpio-monitor-0b95603eb48a72234b8fc618dcc4db13b6f4d079.tar.gz phosphor-gpio-monitor-0b95603eb48a72234b8fc618dcc4db13b6f4d079.zip |
Add sd_event loop and callback handler
Change-Id: I032d1156be2b8082fdf347a60ec883a9bc0038ae
Signed-off-by: Vishwanatha Subbanna <vishwa@linux.vnet.ibm.com>
Diffstat (limited to 'mainapp.cpp')
-rw-r--r-- | mainapp.cpp | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/mainapp.cpp b/mainapp.cpp index 18bc4ca..6290366 100644 --- a/mainapp.cpp +++ b/mainapp.cpp @@ -16,9 +16,12 @@ #include <iostream> #include <string> +#include <systemd/sd-event.h> +#include <phosphor-logging/log.hpp> #include "argument.hpp" #include "monitor.hpp" +using namespace phosphor::logging; static void exitWithError(const char* err, char** argv) { phosphor::gpio::ArgumentParser::usage(argv); @@ -59,9 +62,21 @@ int main(int argc, char** argv) // on meeting a condition. auto target = (options)["target"]; - // Create a GPIO monitor object and let it do all the rest + sd_event* event = nullptr; + auto r = sd_event_default(&event); + if (r < 0) + { + log<level::ERR>("Error creating a default sd_event handler"); + return r; + } + phosphor::gpio::EventPtr eventP{event}; + event = nullptr; + + // Create a monitor object and let it do all the rest phosphor::gpio::Monitor monitor(path, std::stoi(key), - std::stoi(polarity),target); + std::stoi(polarity), target, eventP); + // Wait for events + sd_event_loop(eventP.get()); return 0; } |