1 #pragma once 2 3 #include <sdbusplus/bus.hpp> 4 #include <string> 5 6 namespace settings 7 { 8 9 using Path = std::string; 10 using Service = std::string; 11 using Interface = std::string; 12 13 constexpr auto root = "/"; 14 constexpr auto timeSyncIntf = "xyz.openbmc_project.Time.Synchronization"; 15 16 /** @class Objects 17 * @brief Fetch paths of settings D-bus objects of interest upon construction 18 */ 19 struct Objects 20 { 21 public: 22 /** @brief Constructor - fetch settings objects 23 * 24 * @param[in] bus - The D-bus bus object 25 */ 26 Objects() = delete; 27 explicit Objects(sdbusplus::bus::bus&); 28 Objects(const Objects&) = delete; 29 Objects& operator=(const Objects&) = delete; 30 Objects(Objects&&) = default; 31 Objects& operator=(Objects&&) = default; 32 ~Objects() = default; 33 34 /** @brief Fetch D-bus service, given a path and an interface. The 35 * service can't be cached because mapper returns unique 36 * service names. 37 * 38 * @param[in] path - The D-bus object 39 * @param[in] interface - The D-bus interface 40 * 41 * @return std::string - the D-bus service 42 */ 43 Service service(const Path& path, const Interface& interface) const; 44 45 /** @brief time sync method settings object */ 46 Path timeSyncMethod; 47 48 private: 49 sdbusplus::bus::bus& bus; 50 }; 51 52 } // namespace settings 53