diff options
| author | William A. Kennington III <wak@google.com> | 2018-07-17 14:40:14 -0700 |
|---|---|---|
| committer | William A. Kennington III <wak@google.com> | 2018-07-17 14:40:14 -0700 |
| commit | 631c246025f40f79da940c2f13323d75182053e1 (patch) | |
| tree | 2cb01a624aa1d42a79752c03b610f44d88d6c9fd /src | |
| parent | dcc08b6cde29e434a3e7dfd95a6c42fb4bd8484b (diff) | |
| download | sdeventplus-631c246025f40f79da940c2f13323d75182053e1.tar.gz sdeventplus-631c246025f40f79da940c2f13323d75182053e1.zip | |
event: Add watchdog functions
Diffstat (limited to 'src')
| -rw-r--r-- | src/sdeventplus/event.cpp | 20 | ||||
| -rw-r--r-- | src/sdeventplus/event.hpp | 2 | ||||
| -rw-r--r-- | src/sdeventplus/internal/sdevent.hpp | 12 | ||||
| -rw-r--r-- | src/sdeventplus/test/sdevent.hpp | 2 |
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 *)); |

