diff --git a/src/Connection.cpp b/src/Connection.cpp index 8f3f180..c08ece0 100755 --- a/src/Connection.cpp +++ b/src/Connection.cpp @@ -359,7 +359,7 @@ std::unique_ptr createConnection(const std::string& name) std::unique_ptr createSystemBusConnection() { - auto interface = std::make_unique(); + auto interface = std::make_unique(); assert(interface != nullptr); return std::make_unique(sdbus::internal::Connection::BusType::eSystem, std::move(interface)); @@ -374,7 +374,7 @@ std::unique_ptr createSystemBusConnection(const std::string& std::unique_ptr createSessionBusConnection() { - auto interface = std::make_unique(); + auto interface = std::make_unique(); assert(interface != nullptr); return std::make_unique(sdbus::internal::Connection::BusType::eSession, std::move(interface)); diff --git a/src/ISdBus.h b/src/ISdBus.h index bcbb4b4..b18297f 100644 --- a/src/ISdBus.h +++ b/src/ISdBus.h @@ -29,27 +29,31 @@ #include -class ISdBus -{ -public: - virtual int sd_bus_request_name(sd_bus *bus, const char *name, uint64_t flags) = 0; - virtual int sd_bus_release_name(sd_bus *bus, const char *name) = 0; - virtual int sd_bus_add_object_vtable(sd_bus *bus, sd_bus_slot **slot, const char *path, const char *interface, const sd_bus_vtable *vtable, void *userdata) = 0; - virtual sd_bus_slot* sd_bus_slot_unref(sd_bus_slot *slot) = 0; - virtual int sd_bus_message_new_method_call(sd_bus *bus, sd_bus_message **m, const char *destination, const char *path, const char *interface, const char *member) = 0; - virtual sd_bus_message* sd_bus_message_unref(sd_bus_message *m) = 0; - virtual int sd_bus_message_new_signal(sd_bus *bus, sd_bus_message **m, const char *path, const char *interface, const char *member) = 0; - virtual int sd_bus_add_match(sd_bus *bus, sd_bus_slot **slot, const char *match, sd_bus_message_handler_t callback, void *userdata) = 0; - virtual int sd_bus_open_user(sd_bus **ret) = 0; - virtual int sd_bus_open_system(sd_bus **ret) = 0; - virtual int sd_bus_flush(sd_bus *bus) = 0; - virtual int sd_bus_process(sd_bus *bus, sd_bus_message **r) = 0; - virtual int sd_bus_get_fd(sd_bus *bus) = 0; - virtual int sd_bus_get_events(sd_bus *bus) = 0; - virtual int sd_bus_get_timeout(sd_bus *bus, uint64_t *timeout_usec) = 0; - virtual sd_bus *sd_bus_flush_close_unref(sd_bus *bus) = 0; +namespace sdbus { namespace internal { - virtual ~ISdBus() = default; -}; + class ISdBus + { + public: + virtual int sd_bus_request_name(sd_bus *bus, const char *name, uint64_t flags) = 0; + virtual int sd_bus_release_name(sd_bus *bus, const char *name) = 0; + virtual int sd_bus_add_object_vtable(sd_bus *bus, sd_bus_slot **slot, const char *path, const char *interface, const sd_bus_vtable *vtable, void *userdata) = 0; + virtual sd_bus_slot* sd_bus_slot_unref(sd_bus_slot *slot) = 0; + virtual int sd_bus_message_new_method_call(sd_bus *bus, sd_bus_message **m, const char *destination, const char *path, const char *interface, const char *member) = 0; + virtual sd_bus_message* sd_bus_message_unref(sd_bus_message *m) = 0; + virtual int sd_bus_message_new_signal(sd_bus *bus, sd_bus_message **m, const char *path, const char *interface, const char *member) = 0; + virtual int sd_bus_add_match(sd_bus *bus, sd_bus_slot **slot, const char *match, sd_bus_message_handler_t callback, void *userdata) = 0; + virtual int sd_bus_open_user(sd_bus **ret) = 0; + virtual int sd_bus_open_system(sd_bus **ret) = 0; + virtual int sd_bus_flush(sd_bus *bus) = 0; + virtual int sd_bus_process(sd_bus *bus, sd_bus_message **r) = 0; + virtual int sd_bus_get_fd(sd_bus *bus) = 0; + virtual int sd_bus_get_events(sd_bus *bus) = 0; + virtual int sd_bus_get_timeout(sd_bus *bus, uint64_t *timeout_usec) = 0; + virtual sd_bus *sd_bus_flush_close_unref(sd_bus *bus) = 0; + + virtual ~ISdBus() = default; + }; + +}} #endif //SDBUS_CXX_ISDBUS_H diff --git a/src/SdBus.cpp b/src/SdBus.cpp index 3e64721..5b5cd70 100644 --- a/src/SdBus.cpp +++ b/src/SdBus.cpp @@ -26,6 +26,8 @@ #include "SdBus.h" +namespace sdbus { namespace internal { + int SdBus::sd_bus_request_name(sd_bus *bus, const char *name, uint64_t flags) { return ::sd_bus_request_name(bus, name, flags); @@ -105,3 +107,5 @@ sd_bus* SdBus::sd_bus_flush_close_unref(sd_bus *bus) { return ::sd_bus_flush_close_unref(bus); } + +}} diff --git a/src/SdBus.h b/src/SdBus.h index 521f9e8..d9e45d6 100644 --- a/src/SdBus.h +++ b/src/SdBus.h @@ -29,6 +29,8 @@ #include "ISdBus.h" +namespace sdbus { namespace internal { + class SdBus : public ISdBus { public: @@ -50,4 +52,6 @@ public: sd_bus *sd_bus_flush_close_unref(sd_bus *bus) override; }; +}} + #endif //SDBUS_C_SDBUS_H diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index ad9a1c1..9ee43d4 100755 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -37,7 +37,8 @@ set(UNITTESTS_SRCS ${UNITTESTS_SOURCE_DIR}/Message_test.cpp ${UNITTESTS_SOURCE_DIR}/Types_test.cpp ${UNITTESTS_SOURCE_DIR}/TypeTraits_test.cpp - ${UNITTESTS_SOURCE_DIR}/Connection_test.cpp) + ${UNITTESTS_SOURCE_DIR}/Connection_test.cpp + ${UNITTESTS_SOURCE_DIR}/mocks/SdBusMock.h) set(INTEGRATIONTESTS_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/integrationtests) set(INTEGRATIONTESTS_SRCS diff --git a/test/integrationtests/AdaptorAndProxy_test.cpp b/test/integrationtests/AdaptorAndProxy_test.cpp index 5a91682..492a852 100644 --- a/test/integrationtests/AdaptorAndProxy_test.cpp +++ b/test/integrationtests/AdaptorAndProxy_test.cpp @@ -57,20 +57,20 @@ class AdaptorAndProxyFixture : public ::testing::Test public: static void SetUpTestCase() { - m_connection.requestName(INTERFACE_NAME); - m_connection.enterProcessingLoopAsync(); + s_connection->requestName(INTERFACE_NAME); + s_connection->enterProcessingLoopAsync(); } static void TearDownTestCase() { - m_connection.leaveProcessingLoop(); - m_connection.releaseName(INTERFACE_NAME); + s_connection->leaveProcessingLoop(); + s_connection->releaseName(INTERFACE_NAME); } private: void SetUp() override { - m_adaptor = std::make_unique(m_connection); + m_adaptor = std::make_unique(*s_connection); m_proxy = std::make_unique(INTERFACE_NAME, OBJECT_PATH); std::this_thread::sleep_for(50ms); // Give time for the proxy to start listening to signals } @@ -82,14 +82,13 @@ private: } public: - static sdbus::internal::Connection m_connection; + static std::unique_ptr s_connection; std::unique_ptr m_adaptor; std::unique_ptr m_proxy; }; -sdbus::internal::Connection AdaptorAndProxyFixture::m_connection{sdbus::internal::Connection::BusType::eSystem, - std::make_unique()}; +std::unique_ptr AdaptorAndProxyFixture::s_connection = sdbus::createSystemBusConnection(); } diff --git a/test/unittests/mocks/SdBusMock.h b/test/unittests/mocks/SdBusMock.h index 9506c23..22fc13b 100644 --- a/test/unittests/mocks/SdBusMock.h +++ b/test/unittests/mocks/SdBusMock.h @@ -31,7 +31,7 @@ #include -class SdBusMock : public ISdBus +class SdBusMock : public sdbus::internal::ISdBus { public: MOCK_METHOD3(sd_bus_request_name, int(sd_bus *bus, const char *name, uint64_t flags));