ObjectManager接口可以一次性拿到对象及子对象的所有property,在交互中经常会用到。
sdbusplus提供了add_manager完成该接口的添加:
//server_obj.cpp
#include <sdbusplus/asio/connection.hpp>
#include <sdbusplus/asio/object_server.hpp>
#include <sdbusplus/bus.hpp>
#include <iostream>
#include <string>
using namespace std;
int main()
{
boost::asio::io_context io;
auto conn = std::make_shared<sdbusplus::asio::connection>(io);
conn->request_name("family.service");
auto server = sdbusplus::asio::object_server(conn);
server.add_manager("/home");
shared_ptr<sdbusplus::asio::dbus_interface> iface = server.add_interface("/home/parent_obj","parent.data");
iface->register_property("father", "Liming"s, sdbusplus::asio::PropertyPermission::readWrite);
iface->register_property("mother", "Zhanghong"s, sdbusplus::asio::PropertyPerm