summaryrefslogtreecommitdiffstats
path: root/man/sd_bus_message_read_array.xml
blob: 31481272bb06b08db517fc995a675b153aede8e3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
<?xml version='1.0'?>
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
  "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
<!-- SPDX-License-Identifier: LGPL-2.1+ -->

<refentry id="sd_bus_message_read_array">

  <refentryinfo>
    <title>sd_bus_message_read_array</title>
    <productname>systemd</productname>
  </refentryinfo>

  <refmeta>
    <refentrytitle>sd_bus_message_read_array</refentrytitle>
    <manvolnum>3</manvolnum>
  </refmeta>

  <refnamediv>
    <refname>sd_bus_message_read_array</refname>

    <refpurpose>Access an array of elements in a message</refpurpose>
  </refnamediv>

  <refsynopsisdiv>
    <funcsynopsis>
      <funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>

      <funcprototype>
        <funcdef>int <function>sd_bus_message_read_array</function></funcdef>
        <paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
        <paramdef>char <parameter>type</parameter></paramdef>
        <paramdef>const void **<parameter>ptr</parameter></paramdef>
        <paramdef>size_t *<parameter>size</parameter></paramdef>
      </funcprototype>
    </funcsynopsis>
  </refsynopsisdiv>

  <refsect1>
    <title>Description</title>

    <para><function>sd_bus_message_read_array()</function> gives access to an element array in
    message <parameter>m</parameter>. The "read pointer" in the message must be right before an
    array of type <parameter>type</parameter>. As a special case, <parameter>type</parameter> may be
    <constant>NUL</constant>, in which case any type is acceptable. A pointer to the array data is
    returned in the parameter <parameter>ptr</parameter> and the size of array data (in bytes) is
    returned in the parameter <parameter>size</parameter>. If <parameter>size</parameter> is 0, a
    valid non-null pointer will be returned, but it may not be dereferenced. The data is aligned as
    appropriate for the data type. The data is part of the message  it may not be modified and is
    valid only as long as the message is referenced. After this function returns, the "read pointer"
    points at the next element after the array.</para>
  </refsect1>

  <refsect1>
    <title>Return Value</title>

    <para>
      On success, <function>sd_bus_message_read_array()</function> returns 0 or
      a positive integer. On failure, it returns a negative errno-style error
      code.
    </para>
  </refsect1>

  <refsect1 id='errors'>
    <title>Errors</title>

    <para>Returned errors may indicate the following problems:</para>

    <variablelist>
      <varlistentry>
        <term><constant>-EINVAL</constant></term>

        <listitem><para>Specified type is invalid or the message parameter or one of the output
        parameters are <constant>NULL</constant>.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><constant>-EOPNOTSUPP</constant></term>

        <listitem><para>The byte order in the message is different than native byte
        order.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><constant>-EPERM</constant></term>

        <listitem><para>The message is not sealed.</para></listitem>
      </varlistentry>

      <varlistentry>
        <term><constant>-EBADMSG</constant></term>

        <listitem><para>The message cannot be parsed.</para></listitem>
      </varlistentry>

    </variablelist>
  </refsect1>

  <refsect1>
    <title>See Also</title>

    <para>
      <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
      <citerefentry><refentrytitle>sd_bus_message_read</refentrytitle><manvolnum>3</manvolnum></citerefentry>
    </para>
  </refsect1>

</refentry>