13b025e69SAndrew Geissler #pragma once 23b025e69SAndrew Geissler 33b025e69SAndrew Geissler #include <boost/container/flat_map.hpp> 4*82815dacSAndrew Geissler #include <boost/container/flat_set.hpp> 53b025e69SAndrew Geissler #include <string> 63b025e69SAndrew Geissler 7*82815dacSAndrew Geissler /** @brief Define white list and black list data structure */ 8*82815dacSAndrew Geissler using WhiteBlackList = boost::container::flat_set<std::string>; 9*82815dacSAndrew Geissler 103b025e69SAndrew Geissler /** @brief Get well known name of input unique name 113b025e69SAndrew Geissler * 123b025e69SAndrew Geissler * If user passes in well known name then that will be returned. 133b025e69SAndrew Geissler * 143b025e69SAndrew Geissler * @param[in] owners - Current list of owners 153b025e69SAndrew Geissler * @param[in] request - The name to look up 163b025e69SAndrew Geissler * @param[out] wellKnown - The well known name if found 173b025e69SAndrew Geissler * 183b025e69SAndrew Geissler * @return True if well known name is found, false otherwise 193b025e69SAndrew Geissler */ 203b025e69SAndrew Geissler bool getWellKnown( 213b025e69SAndrew Geissler const boost::container::flat_map<std::string, std::string>& owners, 22*82815dacSAndrew Geissler const std::string& request, std::string& well_known); 23*82815dacSAndrew Geissler 24*82815dacSAndrew Geissler /** @brief Determine if dbus service is something to monitor 25*82815dacSAndrew Geissler * 26*82815dacSAndrew Geissler * mapper supports a whitelist and blacklist concept. If a whitelist is provided 27*82815dacSAndrew Geissler * as input then only dbus objects matching that list is monitored. If a 28*82815dacSAndrew Geissler * blacklist is provided then objects matching it will not be monitored. 29*82815dacSAndrew Geissler * 30*82815dacSAndrew Geissler * @param[in] processName - Dbus service name 31*82815dacSAndrew Geissler * @param[in] whiteList - The white list 32*82815dacSAndrew Geissler * @param[in] blackList - The black list 33*82815dacSAndrew Geissler * 34*82815dacSAndrew Geissler * @return True if input process_name should be monitored, false otherwise 35*82815dacSAndrew Geissler */ 36*82815dacSAndrew Geissler bool needToIntrospect(const std::string& processName, 37*82815dacSAndrew Geissler const WhiteBlackList& whiteList, 38*82815dacSAndrew Geissler const WhiteBlackList& blackList); 39