diff --git a/include/sdbus-c++/IConnection.h b/include/sdbus-c++/IConnection.h index 0fdb717..462d771 100644 --- a/include/sdbus-c++/IConnection.h +++ b/include/sdbus-c++/IConnection.h @@ -79,7 +79,7 @@ namespace sdbus { * * @throws sdbus::Error in case of failure */ - virtual std::string getUniqueName() = 0; + virtual std::string getUniqueName() const = 0; /*! * @brief Enters the D-Bus processing loop @@ -137,7 +137,7 @@ namespace sdbus { * * @throws sdbus::Error in case of failure */ - virtual PollData getProcessLoopPollData() = 0; + virtual PollData getProcessLoopPollData() const = 0; /*! * @brief Process a pending request diff --git a/src/Connection.cpp b/src/Connection.cpp index 025245b..db385f3 100644 --- a/src/Connection.cpp +++ b/src/Connection.cpp @@ -76,7 +76,7 @@ void Connection::releaseName(const std::string& name) SDBUS_THROW_ERROR_IF(r < 0, "Failed to release bus name", -r); } -std::string Connection::getUniqueName() +std::string Connection::getUniqueName() const { const char* unique = nullptr; auto r = iface_->sd_bus_get_unique_name(bus_.get(), &unique); @@ -110,7 +110,7 @@ void Connection::leaveProcessingLoop() joinWithProcessingLoop(); } -sdbus::IConnection::PollData Connection::getProcessLoopPollData() +sdbus::IConnection::PollData Connection::getProcessLoopPollData() const { ISdBus::PollData pollData; auto r = iface_->sd_bus_get_poll_data(bus_.get(), &pollData); diff --git a/src/Connection.h b/src/Connection.h index 1b9bf24..d5c6b57 100644 --- a/src/Connection.h +++ b/src/Connection.h @@ -57,11 +57,11 @@ namespace sdbus { namespace internal { void requestName(const std::string& name) override; void releaseName(const std::string& name) override; - std::string getUniqueName() override; + std::string getUniqueName() const override; void enterProcessingLoop() override; void enterProcessingLoopAsync() override; void leaveProcessingLoop() override; - sdbus::IConnection::PollData getProcessLoopPollData() override; + sdbus::IConnection::PollData getProcessLoopPollData() const override; bool processPendingRequest() override; void addObjectManager(const std::string& objectPath) override; diff --git a/tests/unittests/mocks/SdBusMock.h b/tests/unittests/mocks/SdBusMock.h index df8e48c..468e0be 100644 --- a/tests/unittests/mocks/SdBusMock.h +++ b/tests/unittests/mocks/SdBusMock.h @@ -61,6 +61,7 @@ public: MOCK_METHOD2(sd_bus_open_system_remote, int(sd_bus **ret, const char *host)); MOCK_METHOD3(sd_bus_request_name, int(sd_bus *bus, const char *name, uint64_t flags)); MOCK_METHOD2(sd_bus_release_name, int(sd_bus *bus, const char *name)); + MOCK_METHOD2(sd_bus_get_unique_name, int(sd_bus *bus, const char **name)); MOCK_METHOD6(sd_bus_add_object_vtable, int(sd_bus *bus, sd_bus_slot **slot, const char *path, const char *interface, const sd_bus_vtable *vtable, void *userdata)); MOCK_METHOD3(sd_bus_add_object_manager, int(sd_bus *bus, sd_bus_slot **slot, const char *path)); MOCK_METHOD5(sd_bus_add_match, int(sd_bus *bus, sd_bus_slot **slot, const char *match, sd_bus_message_handler_t callback, void *userdata));