sd_bus_add_object_manager systemd sd_bus_add_object_manager 3 sd_bus_add_object_manager Add a D-Bus object manager for a D-Bus object sub-tree #include <systemd/sd-bus.h> int sd_bus_add_object_manager sd_bus *bus sd_bus_slot **slot const char *path Description sd_bus_add_object_manager() installs a handler for the given path that implements the GetManagedObjects() method of the org.freedesktop.DBus.ObjectManager interface. See org.freedesktop.DBus.ObjectManager for more information. To implement the InterfacesAdded and InterfacesRemoved signals of the org.freedesktop.DBus.ObjectManager interface, call sd_bus_emit_interfaces_added3 and sd_bus_emit_interfaces_removed3 whenever interfaces are added or removed from the sub-tree, respectively. When sd_bus_add_object_manager() succeeds, a slot is created internally. If the output parameter slot is NULL, a "floating" slot object is created, see sd_bus_slot_set_floating3. Otherwise, a pointer to the slot object is returned. In that case, the reference to the slot object should be dropped when the object manager is not needed anymore, see sd_bus_slot_unref3. Return Value On success, sd_bus_add_object_manager() returns a non-negative integer. On failure, it returns a negative errno-style error code. Errors Returned errors may indicate the following problems: -EINVAL One of the required parameters is NULL or path is not a valid object path. -ENOPKG The bus cannot be resolved. -ECHILD The bus was created in a different process. -ENOMEM Memory allocation failed. See Also sd-bus3, busctl1, sd_bus_add_object_vtable3, sd_bus_emit_interfaces_added3, sd_bus_slot_unref3