From df1b7cfc395e2e48c9924186a6127d06a77541ea Mon Sep 17 00:00:00 2001 From: Matt Spinler Date: Tue, 31 Oct 2017 14:17:23 -0500 Subject: Add getBusName() utility function to SDBusPlus Add a function to SDBusPlus to get the D-Bus bus name for an object path and interface. Change-Id: I7d7a533c7430fcf42e1e0f6a21a2453e6c8197ea Signed-off-by: Matt Spinler --- src/sdbusplus.hpp | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) (limited to 'src/sdbusplus.hpp') diff --git a/src/sdbusplus.hpp b/src/sdbusplus.hpp index aba5a36..d62a5d4 100644 --- a/src/sdbusplus.hpp +++ b/src/sdbusplus.hpp @@ -3,6 +3,7 @@ #include #include #include +#include "data_types.hpp" struct Loop; @@ -104,6 +105,29 @@ class SDBusPlus callback); } + /** @brief Look up the bus name for a path and interface */ + static auto getBusName( + const std::string& path, + const std::string& interface) + { + std::vector interfaces{interface}; + + auto object = callMethodAndRead( + MAPPER_BUSNAME, + MAPPER_PATH, + MAPPER_INTERFACE, + "GetObject", + path, + interfaces); + + std::string name; + if (!object.empty()) + { + name = object.begin()->first; + } + return name; + } + friend Loop; }; -- cgit v1.2.1