基于前面對于sdbusplus的使用,可以看出,使用sdbusplus時可以通過bus完成method的調用,也可以通過connection完成方法的調用,比如:
auto b = bus::new_default_user();
b.new_method_call(...);
boost::asio::io_context io;
auto conn = make_shared<sdbusplus::asio::connection>(io);
auto methodCall = conn->new_method_call(...);
而實際上connection是繼承于bus
//connection.hpp
class connection : public sdbusplus::bus_t
{public:// default to system busconnection(boost::asio::io_context& io) :sdbusplus::bus_t(sdbusplus::bus::new_default()), io_(io),socket(io_.get_executor(), get_fd()){read_immediate();}connection(boost::asio::io_context& io, sd_bus* bus) :sdbusplus::bus_t(bus), io_(io), socket(io_.get_executor(), get_fd()){read_immediate();}
};