summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorWilliam A. Kennington III <wak@google.com>2018-07-17 14:40:14 -0700
committerWilliam A. Kennington III <wak@google.com>2018-07-17 14:40:14 -0700
commit631c246025f40f79da940c2f13323d75182053e1 (patch)
tree2cb01a624aa1d42a79752c03b610f44d88d6c9fd /src
parentdcc08b6cde29e434a3e7dfd95a6c42fb4bd8484b (diff)
downloadsdeventplus-631c246025f40f79da940c2f13323d75182053e1.tar.gz
sdeventplus-631c246025f40f79da940c2f13323d75182053e1.zip
event: Add watchdog functions
Diffstat (limited to 'src')
-rw-r--r--src/sdeventplus/event.cpp20
-rw-r--r--src/sdeventplus/event.hpp2
-rw-r--r--src/sdeventplus/internal/sdevent.hpp12
-rw-r--r--src/sdeventplus/test/sdevent.hpp2
4 files changed, 36 insertions, 0 deletions
diff --git a/src/sdeventplus/event.cpp b/src/sdeventplus/event.cpp
index a955f41..b472602 100644
--- a/src/sdeventplus/event.cpp
+++ b/src/sdeventplus/event.cpp
@@ -51,4 +51,24 @@ int Event::loop()
return r;
}
+int Event::get_watchdog()
+{
+ int r = intf->sd_event_get_watchdog(event.get());
+ if (r < 0)
+ {
+ throw SdEventError(-r, "sd_event_get_watchdog");
+ }
+ return r;
+}
+
+int Event::set_watchdog(int b)
+{
+ int r = intf->sd_event_set_watchdog(event.get(), b);
+ if (r < 0)
+ {
+ throw SdEventError(-r, "sd_event_set_watchdog");
+ }
+ return r;
+}
+
} // namespace sdeventplus
diff --git a/src/sdeventplus/event.hpp b/src/sdeventplus/event.hpp
index 9c72de2..9206ee9 100644
--- a/src/sdeventplus/event.hpp
+++ b/src/sdeventplus/event.hpp
@@ -17,6 +17,8 @@ class Event
static Event get_default(SdEventInterface* intf = &sdevent_impl);
int loop();
+ int get_watchdog();
+ int set_watchdog(int b);
private:
SdEventInterface* intf;
diff --git a/src/sdeventplus/internal/sdevent.hpp b/src/sdeventplus/internal/sdevent.hpp
index fd4bd77..670d46a 100644
--- a/src/sdeventplus/internal/sdevent.hpp
+++ b/src/sdeventplus/internal/sdevent.hpp
@@ -16,6 +16,8 @@ class SdEventInterface
virtual sd_event *sd_event_unref(sd_event *event) const = 0;
virtual int sd_event_loop(sd_event *event) const = 0;
+ virtual int sd_event_get_watchdog(sd_event *event) const = 0;
+ virtual int sd_event_set_watchdog(sd_event *event, int b) const = 0;
virtual sd_event_source *
sd_event_source_ref(sd_event_source *source) const = 0;
@@ -51,6 +53,16 @@ class SdEventImpl : public SdEventInterface
return ::sd_event_loop(event);
}
+ int sd_event_get_watchdog(sd_event *event) const override
+ {
+ return ::sd_event_get_watchdog(event);
+ }
+
+ int sd_event_set_watchdog(sd_event *event, int b) const override
+ {
+ return ::sd_event_set_watchdog(event, b);
+ }
+
sd_event_source *sd_event_source_ref(sd_event_source *source) const override
{
return ::sd_event_source_ref(source);
diff --git a/src/sdeventplus/test/sdevent.hpp b/src/sdeventplus/test/sdevent.hpp
index c43b983..e85b13e 100644
--- a/src/sdeventplus/test/sdevent.hpp
+++ b/src/sdeventplus/test/sdevent.hpp
@@ -16,6 +16,8 @@ class SdEventMock : public SdEventInterface
MOCK_CONST_METHOD1(sd_event_unref, sd_event *(sd_event *));
MOCK_CONST_METHOD1(sd_event_loop, int(sd_event *));
+ MOCK_CONST_METHOD1(sd_event_get_watchdog, int(sd_event *));
+ MOCK_CONST_METHOD2(sd_event_set_watchdog, int(sd_event *, int b));
MOCK_CONST_METHOD1(sd_event_source_ref,
sd_event_source *(sd_event_source *));
OpenPOWER on IntegriCloud