summaryrefslogtreecommitdiffstats
path: root/mainapp.cpp
diff options
context:
space:
mode:
authorVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-04-04 14:07:25 +0530
committerVishwanatha Subbanna <vishwa@linux.vnet.ibm.com>2017-04-27 14:42:05 +0530
commit0b95603eb48a72234b8fc618dcc4db13b6f4d079 (patch)
tree627c1ce7766aa3ace52aa6782bbf96fb4cdc9028 /mainapp.cpp
parent4902a10c9fabcdf5e1f2868f28cba2d571d55f03 (diff)
downloadphosphor-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.cpp19
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;
}
OpenPOWER on IntegriCloud