path: root/utility.cpp
diff options
authorMatt Spinler <>2017-04-10 14:25:47 -0500
committerMatt Spinler <>2017-04-26 12:48:33 -0500
commit5cfdf94fdf0ac1167c9337cec95ba4d932ad40f7 (patch)
tree45cd297a2f3615c1dc0e160391e7ea051bfd815d /utility.cpp
parente10416eccd32893b68e7ec5fcaacc6520c014d4a (diff)
Fan control: Add getService() utility function
This function returns the service name from the mapper based on the dbus path and interface passed in. Eventually, getInvService can be removed and this call can be used instead. Change-Id: Ieb090a9b650803e8cfaf2f24143f25a4bbf1cd23 Signed-off-by: Matt Spinler <>
Diffstat (limited to 'utility.cpp')
1 files changed, 18 insertions, 7 deletions
diff --git a/utility.cpp b/utility.cpp
index db88712..2cfeac8 100644
--- a/utility.cpp
+++ b/utility.cpp
@@ -20,42 +20,53 @@ namespace phosphor
namespace fan
-namespace presence
+namespace util
+using namespace std::string_literals;
//TODO Should get these from phosphor-objmgr config.h
constexpr auto MAPPER_BUSNAME = "xyz.openbmc_project.ObjectMapper";
constexpr auto MAPPER_PATH = "/xyz/openbmc_project/object_mapper";
constexpr auto MAPPER_INTERFACE = "xyz.openbmc_project.ObjectMapper";
//TODO Should get these from phosphor-inventory-manager config.h
-constexpr auto INVENTORY_PATH = "/xyz/openbmc_project/inventory";
-constexpr auto INVENTORY_INTF = "xyz.openbmc_project.Inventory.Manager";
+const auto INVENTORY_PATH = "/xyz/openbmc_project/inventory"s;
+const auto INVENTORY_INTF = "xyz.openbmc_project.Inventory.Manager"s;
std::string getInvService(sdbusplus::bus::bus& bus)
+ return getService(INVENTORY_PATH, INVENTORY_INTF, bus);
+std::string getService(const std::string& path,
+ const std::string& interface,
+ sdbusplus::bus::bus& bus)
auto mapperCall = bus.new_method_call(MAPPER_BUSNAME,
- mapperCall.append(INVENTORY_PATH);
- mapperCall.append(std::vector<std::string>({INVENTORY_INTF}));
+ mapperCall.append(path);
+ mapperCall.append(std::vector<std::string>({interface}));
auto mapperResponseMsg =;
if (mapperResponseMsg.is_method_error())
throw std::runtime_error(
- "Error in mapper call to get inventory service name");
+ "Error in mapper call to get service name");
std::map<std::string, std::vector<std::string>> mapperResponse;;
if (mapperResponse.empty())
throw std::runtime_error(
- "Error in mapper response for inventory service name");
+ "Error in mapper response for getting service name");
return mapperResponse.begin()->first;
OpenPOWER on IntegriCloud