Movatterモバイル変換


[0]ホーム

URL:


man7.org > Linux >man-pages

Linux/UNIX system programming training


sd_bus_add_node_enumerator(3) — Linux manual page

NAME |SYNOPSIS |DESCRIPTION |RETURN VALUE |NOTES |HISTORY |SEE ALSO |COLOPHON

SD_BUS_A...UMERATOR(3)  sd_bus_add_node_enumeratorSD_BUS_A...UMERATOR(3)

NAME        top

       sd_bus_add_node_enumerator - Add a node enumerator for a D-Bus       object path prefix

SYNOPSIS        top

#include <systemd/sd-bus.h>typedef int (*sd_bus_node_enumerator_t)(sd_bus *bus,const char *prefix,void *userdata,char ***ret_nodes,sd_bus_error *ret_error);int sd_bus_add_node_enumerator(sd_bus *bus, sd_bus_slot **slot,const char *path,sd_bus_node_enumerator_tcallback,void *userdata);

DESCRIPTION        top

sd_bus_add_node_enumerator()adds a D-Bus node enumerator for the       given path prefix. The given callback is called to enumerate all       the available objects with the given path prefix when required       (e.g. whenorg.freedesktop.DBus.Introspectable.Introspectororg.freedesktop.DBus.ObjectManager.GetManagedObjectsare called on       a D-Bus service managed by sd-bus).callback is called with the path and userdata pointer registered       withsd_bus_add_node_enumerator(). When called, it should store       all the child object paths of the given path prefix inret_nodes       with a NULL terminator item. The callback should return a       non-negative value on success. If an error occurs, it can either       return a negative integer, setret_error to a non-empty error or       do both. Any errors returned by the callback are encoded as D-Bus       errors and sent back to the caller. Errors inret_error take       priority over negative return values.       Note that a node enumerator callback will only ever be called for       a single path prefix and hence, for normal operation,prefix can       be ignored. Also, a node enumerator is only used to enumerate the       available child objects under a given prefix. To install a handler       for a set of dynamic child objects, usesd_bus_add_fallback_vtable(3).       Whensd_bus_add_node_enumerator()succeeds, a slot is created       internally. If the output parameterslot isNULL, a "floating"       slot object is created, seesd_bus_slot_set_floating(3).       Otherwise, a pointer to the slot object is returned. In that case,       the reference to the slot object should be dropped when the node       enumerator is not needed anymore, seesd_bus_slot_unref(3).

RETURN VALUE        top

       On success,sd_bus_add_node_enumerator()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 isNULLorpath is not a valid           object path.-ENOPKG           The bus cannot be resolved.-ECHILD           The bus was created in a different process, library or module           instance.-ENOMEM           Memory allocation failed.

NOTES        top

       Functions described here are available as a shared library, which       can be compiled against and linked to with thelibsystemd pkg-config(1) file.       The code described here usesgetenv(3), which is declared to be       not multi-thread-safe. This means that the code calling the       functions described here must not callsetenv(3) from a parallel       thread. It is recommended to only do calls tosetenv()from an       early phase of the program when no other threads have been       started.

HISTORY        top

sd_bus_node_enumerator_t()andsd_bus_add_node_enumerator()were       added in version 221.

SEE ALSO        top

sd-bus(3),busctl(1),sd_bus_add_fallback_vtable(3),sd_bus_slot_unref(3)

COLOPHON        top

       This page is part of thesystemd (systemd system and service       manager) project.  Information about the project can be found at       ⟨http://www.freedesktop.org/wiki/Software/systemd⟩.  If you have a       bug report for this manual page, see       ⟨http://www.freedesktop.org/wiki/Software/systemd/#bugreports⟩.       This page was obtained from the project's upstream Git repository       ⟨https://github.com/systemd/systemd.git⟩ on 2025-08-11.  (At that       time, the date of the most recent commit that was found in the       repository was 2025-08-11.)  If you discover any rendering       problems in this HTML version of the page, or you believe there is       a better or more up-to-date source for the page, or you have       corrections or improvements to the information in this COLOPHON       (which isnot part of the original manual page), send a mail to       man-pages@man7.orgsystemd 258~rc2SD_BUS_A...UMERATOR(3)

Pages that refer to this page:sd-bus(3)systemd.directives(7)systemd.index(7)



HTML rendering created 2025-09-06 byMichael Kerrisk, author ofThe Linux Programming Interface.

For details of in-depthLinux/UNIX system programming training courses that I teach, lookhere.

Hosting byjambit GmbH.

Cover of TLPI


[8]ページ先頭

©2009-2025 Movatter.jp