diff options
| author | William A. Kennington III <wak@google.com> | 2018-07-23 18:33:04 -0700 |
|---|---|---|
| committer | William A. Kennington III <wak@google.com> | 2018-07-23 18:33:04 -0700 |
| commit | 8fd0cd4c83a68940cc0a06c5007415c329af19bd (patch) | |
| tree | 634d6d9d132a953a5a5462b7a6f261e0cfb2a9a3 | |
| parent | 3c845caaf8921c85878df7ffab92fb9a08737bbb (diff) | |
| download | sdeventplus-8fd0cd4c83a68940cc0a06c5007415c329af19bd.tar.gz sdeventplus-8fd0cd4c83a68940cc0a06c5007415c329af19bd.zip | |
source/base: Improve some method types
| -rw-r--r-- | example/heartbeat.cpp | 2 | ||||
| -rw-r--r-- | src/sdeventplus/source/base.cpp | 16 | ||||
| -rw-r--r-- | src/sdeventplus/source/base.hpp | 17 | ||||
| -rw-r--r-- | test/source/base.cpp | 13 |
4 files changed, 30 insertions, 18 deletions
diff --git a/example/heartbeat.cpp b/example/heartbeat.cpp index e45ae89..1840f60 100644 --- a/example/heartbeat.cpp +++ b/example/heartbeat.cpp @@ -30,6 +30,6 @@ int main(int argc, char* argv[]) }; Time<ClockId::RealTime> time(event, Clock<ClockId::RealTime>(event).now(), std::chrono::seconds{1}, std::move(hbFunc)); - time.set_enabled(SD_EVENT_ON); + time.set_enabled(sdeventplus::source::Enabled::On); return event.loop(); } diff --git a/src/sdeventplus/source/base.cpp b/src/sdeventplus/source/base.cpp index d63a03e..9915132 100644 --- a/src/sdeventplus/source/base.cpp +++ b/src/sdeventplus/source/base.cpp @@ -14,7 +14,7 @@ Base::~Base() { if (source) { - set_enabled(SD_EVENT_OFF); + set_enabled(Enabled::Off); } } @@ -67,7 +67,7 @@ const Base::Callback& Base::get_prepare() const return prepare; } -int Base::get_pending() const +bool Base::get_pending() const { int r = event.getSdEvent()->sd_event_source_get_pending(source.get()); if (r < 0) @@ -99,7 +99,7 @@ void Base::set_priority(int64_t priority) const } } -int Base::get_enabled() const +Enabled Base::get_enabled() const { int enabled; int r = @@ -108,13 +108,13 @@ int Base::get_enabled() const { throw SdEventError(-r, "sd_event_source_get_enabled"); } - return enabled; + return static_cast<Enabled>(enabled); } -void Base::set_enabled(int enabled) const +void Base::set_enabled(Enabled enabled) const { - int r = - event.getSdEvent()->sd_event_source_set_enabled(source.get(), enabled); + int r = event.getSdEvent()->sd_event_source_set_enabled( + source.get(), static_cast<int>(enabled)); if (r < 0) { throw SdEventError(-r, "sd_event_source_set_enabled"); @@ -152,7 +152,7 @@ Base& Base::operator=(Base&& other) // after it gets deleted in the move if (source) { - set_enabled(SD_EVENT_OFF); + set_enabled(Enabled::Off); } event = std::move(other.event); diff --git a/src/sdeventplus/source/base.hpp b/src/sdeventplus/source/base.hpp index 5a5d12b..dd2a715 100644 --- a/src/sdeventplus/source/base.hpp +++ b/src/sdeventplus/source/base.hpp @@ -15,6 +15,17 @@ namespace sdeventplus namespace source { +/** @class Enabled + * @brief Mapping of sdeventplus source enable values to the sd-event + * equivalent + */ +enum class Enabled +{ + Off = SD_EVENT_OFF, + On = SD_EVENT_ON, + OneShot = SD_EVENT_ONESHOT, +}; + /** @class Base * @brief The base class for all sources implementing common source methods * Not instantiated directly by end users @@ -67,7 +78,7 @@ class Base * @return 'true' if the source has pending events * 'false' otherwise */ - int get_pending() const; + bool get_pending() const; /** @brief Gets the priority of the source relative to other sources * The lower the priority the more important the source @@ -90,14 +101,14 @@ class Base * @throws SdEventError for underlying sd_event errors * @return The enabled status of the source */ - int get_enabled() const; + Enabled get_enabled() const; /** @brief Sets the enablement value of the source * * @param[in] enabled - The new state of the source * @throws SdEventError for underlying sd_event errors */ - void set_enabled(int enabled) const; + void set_enabled(Enabled enabled) const; protected: Event event; diff --git a/test/source/base.cpp b/test/source/base.cpp index bc0eec0..df855c1 100644 --- a/test/source/base.cpp +++ b/test/source/base.cpp @@ -355,10 +355,10 @@ TEST_F(BaseMethodTest, GetPendingSuccess) { EXPECT_CALL(mock, sd_event_source_get_pending(expected_source)) .WillOnce(Return(0)); - EXPECT_EQ(0, base->get_pending()); + EXPECT_FALSE(base->get_pending()); EXPECT_CALL(mock, sd_event_source_get_pending(expected_source)) .WillOnce(Return(4)); - EXPECT_EQ(4, base->get_pending()); + EXPECT_TRUE(base->get_pending()); } TEST_F(BaseMethodTest, GetPendingError) @@ -400,7 +400,7 @@ TEST_F(BaseMethodTest, GetEnabledSuccess) { EXPECT_CALL(mock, sd_event_source_get_enabled(expected_source, testing::_)) .WillOnce(DoAll(SetArgPointee<1>(SD_EVENT_ON), Return(0))); - EXPECT_EQ(SD_EVENT_ON, base->get_enabled()); + EXPECT_EQ(Enabled::On, base->get_enabled()); } TEST_F(BaseMethodTest, GetEnabledError) @@ -414,14 +414,15 @@ TEST_F(BaseMethodTest, SetEnabledSuccess) { EXPECT_CALL(mock, sd_event_source_set_enabled(expected_source, SD_EVENT_ON)) .WillOnce(Return(0)); - base->set_enabled(SD_EVENT_ON); + base->set_enabled(Enabled::On); } TEST_F(BaseMethodTest, SetEnabledError) { - EXPECT_CALL(mock, sd_event_source_set_enabled(expected_source, SD_EVENT_ON)) + EXPECT_CALL(mock, + sd_event_source_set_enabled(expected_source, SD_EVENT_ONESHOT)) .WillOnce(Return(-EINVAL)); - EXPECT_THROW(base->set_enabled(SD_EVENT_ON), SdEventError); + EXPECT_THROW(base->set_enabled(Enabled::OneShot), SdEventError); } } // namespace |

