diff --git a/include/sdbus-c++/Message.h b/include/sdbus-c++/Message.h index 9d9c26e..7a48bf9 100644 --- a/include/sdbus-c++/Message.h +++ b/include/sdbus-c++/Message.h @@ -131,6 +131,8 @@ namespace sdbus { std::string getInterfaceName() const; std::string getMemberName() const; std::string getSender() const; + std::string getPath() const; + std::string getDestination() const; void peekType(std::string& type, std::string& contents) const; bool isValid() const; bool isEmpty() const; diff --git a/src/Message.cpp b/src/Message.cpp index f54273c..5f89fe0 100644 --- a/src/Message.cpp +++ b/src/Message.cpp @@ -583,12 +583,14 @@ void Message::rewind(bool complete) std::string Message::getInterfaceName() const { - return sd_bus_message_get_interface((sd_bus_message*)msg_); + auto interface = sd_bus_message_get_interface((sd_bus_message*)msg_); + return interface != nullptr ? interface : ""; } std::string Message::getMemberName() const { - return sd_bus_message_get_member((sd_bus_message*)msg_); + auto member = sd_bus_message_get_member((sd_bus_message*)msg_); + return member != nullptr ? member : ""; } std::string Message::getSender() const @@ -596,6 +598,18 @@ std::string Message::getSender() const return sd_bus_message_get_sender((sd_bus_message*)msg_); } +std::string Message::getPath() const +{ + auto path = sd_bus_message_get_path((sd_bus_message*)msg_); + return path != nullptr ? path : ""; +} + +std::string Message::getDestination() const +{ + auto destination = sd_bus_message_get_destination((sd_bus_message*)msg_); + return destination != nullptr ? destination : ""; +} + void Message::peekType(std::string& type, std::string& contents) const { char typeSig;