summaryrefslogtreecommitdiffstats
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
commitbdc59018d3d85af8c300bf62aecbac9610fd4f66 (patch)
treed6735e3f5151efe32cb6471e70ba5123240c445d
parentf9f288150823b7a55bd70cebb6dee25517080a8e (diff)
downloadsdeventplus-bdc59018d3d85af8c300bf62aecbac9610fd4f66.tar.gz
sdeventplus-bdc59018d3d85af8c300bf62aecbac9610fd4f66.zip
event: Allow extracting the event and sdevent impl
-rw-r--r--src/sdeventplus/event.cpp10
-rw-r--r--src/sdeventplus/event.hpp3
-rw-r--r--test/event.cpp8
3 files changed, 21 insertions, 0 deletions
diff --git a/src/sdeventplus/event.cpp b/src/sdeventplus/event.cpp
index 1d31f91..f65750e 100644
--- a/src/sdeventplus/event.cpp
+++ b/src/sdeventplus/event.cpp
@@ -44,6 +44,16 @@ Event Event::get_default(const internal::SdEvent* sdevent)
return Event(event, std::false_type(), sdevent);
}
+sd_event* Event::get() const
+{
+ return event.get();
+}
+
+const internal::SdEvent* Event::getSdEvent() const
+{
+ return sdevent;
+}
+
int Event::loop() const
{
int r = sdevent->sd_event_loop(event.get());
diff --git a/src/sdeventplus/event.hpp b/src/sdeventplus/event.hpp
index a583dfb..b979cfc 100644
--- a/src/sdeventplus/event.hpp
+++ b/src/sdeventplus/event.hpp
@@ -20,6 +20,9 @@ class Event
static Event
get_default(const internal::SdEvent* sdevent = &internal::sdevent_impl);
+ sd_event* get() const;
+ const internal::SdEvent* getSdEvent() const;
+
int loop() const;
int get_watchdog() const;
int set_watchdog(int b) const;
diff --git a/test/event.cpp b/test/event.cpp
index ef762b8..7149ac4 100644
--- a/test/event.cpp
+++ b/test/event.cpp
@@ -27,6 +27,8 @@ TEST_F(EventTest, NewEventRef)
EXPECT_CALL(mock, sd_event_ref(expected_event))
.WillOnce(Return(expected_event));
Event event(expected_event, &mock);
+ EXPECT_EQ(&mock, event.getSdEvent());
+ EXPECT_EQ(expected_event, event.get());
EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr));
}
@@ -34,6 +36,8 @@ TEST_F(EventTest, NewEventRef)
TEST_F(EventTest, NewEventNoRef)
{
Event event(expected_event, std::false_type(), &mock);
+ EXPECT_EQ(&mock, event.getSdEvent());
+ EXPECT_EQ(expected_event, event.get());
EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr));
}
@@ -43,6 +47,8 @@ TEST_F(EventTest, GetNewEvent)
EXPECT_CALL(mock, sd_event_new(testing::_))
.WillOnce(DoAll(SetArgPointee<0>(expected_event), Return(0)));
Event event = Event::get_new(&mock);
+ EXPECT_EQ(&mock, event.getSdEvent());
+ EXPECT_EQ(expected_event, event.get());
EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr));
}
@@ -58,6 +64,8 @@ TEST_F(EventTest, GetDefaultEvent)
EXPECT_CALL(mock, sd_event_default(testing::_))
.WillOnce(DoAll(SetArgPointee<0>(expected_event), Return(0)));
Event event = Event::get_default(&mock);
+ EXPECT_EQ(&mock, event.getSdEvent());
+ EXPECT_EQ(expected_event, event.get());
EXPECT_CALL(mock, sd_event_unref(expected_event)).WillOnce(Return(nullptr));
}
OpenPOWER on IntegriCloud