Provided by: libsystemd-dev_242-7ubuntu3_amd64 bug

NAME

       sd_bus_message_read_basic - Read a basic type from a message

SYNOPSIS

       #include <systemd/sd-bus.h>

       int sd_bus_message_read_basic(sd_bus_message *m, char type, void *p);

DESCRIPTION

       sd_bus_message_read_basic() reads a basic type from a message and advances the read
       position in the message. The set of basic types and their ascii codes passed in type are
       described in the D-Bus Specification[1].

       If p is not NULL, it should contain a pointer to an appropriate object. For example, if
       type is 'y', the object passed in p should have type uint8_t *. If type is 's', the object
       passed in p should have type const char **. Note that, if the basic type is a pointer
       (e.g., const char * in the case of a string), the pointer is only borrowed and the
       contents must be copied if they are to be used after the end of the messages lifetime.
       Similarly, during the lifetime of such a pointer, the message must not be modified. See
       the table below for a complete list of allowed types.

       Table 1. Item type specifiers
       ┌──────────┬─────────────────────────┬──────────────────┬─────────────────┐
       │SpecifierConstantDescriptionExpected C Type │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"y"       │ SD_BUS_TYPE_BYTE        │ unsigned integer │ uint8_t *       │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"b"       │ SD_BUS_TYPE_BOOLEAN     │ boolean          │ int *           │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"n"       │ SD_BUS_TYPE_INT16       │ signed integer   │ int16_t *       │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"q"       │ SD_BUS_TYPE_UINT16      │ unsigned integer │ uint16_t *      │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"i"       │ SD_BUS_TYPE_INT32       │ signed integer   │ int32_t *       │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"u"       │ SD_BUS_TYPE_UINT32      │ unsigned integer │ uint32_t *      │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"x"       │ SD_BUS_TYPE_INT64       │ signed integer   │ int64_t *       │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"t"       │ SD_BUS_TYPE_UINT64      │ unsigned integer │ uint64_t *      │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"d"       │ SD_BUS_TYPE_DOUBLE      │ floating-point   │ double *        │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"s"       │ SD_BUS_TYPE_STRING      │ Unicode string   │ const char **   │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"o"       │ SD_BUS_TYPE_OBJECT_PATH │ object path      │ const char **   │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"g"       │ SD_BUS_TYPE_SIGNATURE   │ signature        │ const char **   │
       ├──────────┼─────────────────────────┼──────────────────┼─────────────────┤
       │"h"       │ SD_BUS_TYPE_UNIX_FD     │ UNIX file        │ int *           │
       │          │                         │ descriptor       │                 │
       └──────────┴─────────────────────────┴──────────────────┴─────────────────┘

       If there is no object of the specified type at the current position in the message, an
       error is returned.

RETURN VALUE

       On success, sd_bus_message_read_basic() returns 0 or a positive integer. On failure, it
       returns a negative errno-style error code.

   Errors
       Returned errors may indicate the following problems:

       -EINVAL
           Specified type string is invalid or the message parameter is NULL.

       -ENXIO
           The message does not contain the specified type at current position.

       -EBADMSG
           The message cannot be parsed.

SEE ALSO

       systemd(1), sd-bus(3), sd_bus_message_append_basic(3), sd_bus_message_skip(3),
       sd_bus_message_read(3)

NOTES

        1. D-Bus Specification
           https://dbus.freedesktop.org/doc/dbus-specification.html