File: sd_bus_message_get_seqnum.html

package info (click to toggle)
systemd 215-17
  • links: PTS, VCS
  • area: main
  • in suites: jessie-kfreebsd
  • size: 49,568 kB
  • sloc: ansic: 192,789; xml: 39,586; sh: 13,002; makefile: 4,700; perl: 1,461; python: 1,355
file content (80 lines) | stat: -rw-r--r-- 8,949 bytes parent folder | download | duplicates (6)
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
<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>sd_bus_message_get_monotonic_usec</title><meta name="generator" content="DocBook XSL Stylesheets V1.78.1"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><style>
    a.headerlink {
      color: #c60f0f;
      font-size: 0.8em;
      padding: 0 4px 0 4px;
      text-decoration: none;
      visibility: hidden;
    }

    a.headerlink:hover {
      background-color: #c60f0f;
      color: white;
    }

    h1:hover > a.headerlink, h2:hover > a.headerlink, h3:hover > a.headerlink, dt:hover > a.headerlink {
      visibility: visible;
    }
  </style><a href="index.html">Index </a>·
  <a href="systemd.directives.html">Directives </a>·
  <a href="../python-systemd/index.html">Python </a>·
  <a href="../libudev/index.html">libudev </a>·
  <a href="../libudev/index.html">gudev </a><span style="float:right">systemd 215</span><hr><div class="refentry"><a name="sd_bus_message_get_monotonic_usec"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>sd_bus_message_get_monotonic_usec, sd_bus_message_get_realtime_usec, sd_bus_message_get_seqnum — Retrieve the sender timestamps and sequence number of a message</p></div><div class="refsynopsisdiv"><h2>Synopsis</h2><div class="funcsynopsis"><pre class="funcsynopsisinfo">#include &lt;systemd/sd-bus.h&gt;</pre><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_monotonic_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_realtime_usec</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">usec</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div><table border="0" class="funcprototype-table" summary="Function synopsis" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">int <b class="fsfunc">sd_bus_message_get_seqnum</b>(</code></td><td>sd_bus_message *<var class="pdparam">message</var>, </td></tr><tr><td> </td><td>uint64_t *<var class="pdparam">seqnum</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a name="idm214167303664"></a><h2 id="Description">Description<a class="headerlink" title="Permalink to this headline" href="#Description">¶</a></h2><p><code class="function">sd_bus_message_get_monotonic_usec()</code>
                returns the monotonic timestamp of the time the
                message was sent. This value is in microseconds since
                the "<code class="literal">CLOCK_MONOTONIC</code>" epoch, see
                <a href="clock_gettime.html"><span class="citerefentry"><span class="refentrytitle">clock_gettime</span>(2)</span></a>
                for details.</p><p>Similar,
                <code class="function">sd_bus_message_get_realtime_usec()</code>
                returns the realtime (wallclock) timestamp of the time
                the message was sent. This value is in microseconds
                since Jan 1st, 1970, i.e. in the
                "<code class="literal">CLOCK_REALTIME</code>" clock.</p><p><code class="function">sd_bus_message_get_seqnum()</code>
                returns the kernel-assigned sequence number of the
                message. The kernel assigns a global, monotonically
                increasing sequence number to all messages transmitted
                on the local system, at the time the message was
                sent. This sequence number is useful for determining
                message send order, even across different busses of
                the local system. The sequence number combined with
                the boot ID of the system (as returned by
                <a href="sd_id128_get_boot.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_boot</span>(3)</span></a>)
                is a suitable globally unique identifier for bus
                messages.</p><p>Note that the sending order and receiving order
                of messages might differ, in particular for broadcast
                messages. This means that the sequence number and the
                timestamps of messages a client reads are not
                necessarily monotonically increasing.</p><p>These timestamps and the sequence number are
                attached to each message by the kernel and cannot be
                manipulated by the sender.</p><p>Note that these timestamps are only available on
                some bus transports, and only after support for them
                has been negotiated with the
                <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>
                call.</p></div><div class="refsect1"><a name="idm214166630240"></a><h2 id="Return Value">Return Value<a class="headerlink" title="Permalink to this headline" href="#Return%20Value">¶</a></h2><p>On success, these calls return 0 or a positive
                integer. On failure, these calls return a negative
                errno-style error code.</p><p>On success, the timestamp or sequence number is
                returned in the specified 64-bit unsigned integer
                variable.</p></div><div class="refsect1"><a name="idm214166835648"></a><h2 id="Errors">Errors<a class="headerlink" title="Permalink to this headline" href="#Errors">¶</a></h2><p>Returned errors may indicate the following problems:</p><div class="variablelist"><dl class="variablelist"><dt id="-EINVAL"><span class="term"><code class="varname">-EINVAL</code></span><a class="headerlink" title="Permalink to this term" href="#-EINVAL">¶</a></dt><dd><p>A specified parameter
                                is invalid.</p></dd><dt id="-ENODATA"><span class="term"><code class="varname">-ENODATA</code></span><a class="headerlink" title="Permalink to this term" href="#-ENODATA">¶</a></dt><dd><p>No timestamp or
                                sequence number information is
                                attached to the passed message. This
                                error is returned if the underlying
                                transport does not support
                                timestamping or assigning of sequence
                                numbers, or if this feature has not
                                been negotiated with
                                <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>.</p></dd></dl></div></div><div class="refsect1"><a name="idm214166448368"></a><h2 id="Notes">Notes<a class="headerlink" title="Permalink to this headline" href="#Notes">¶</a></h2><p>The
                <code class="function">sd_bus_message_get_monotonic_usec()</code>,
                <code class="function">sd_bus_message_get_realtime_usec()</code>,
                and <code class="function">sd_bus_message_get_seqnum()</code>
                interfaces are available as a shared library, which
                can be compiled and linked to with the
                <code class="constant">libsystemd</code> <a href="pkg-config.html"><span class="citerefentry"><span class="refentrytitle">pkg-config</span>(1)</span></a>
                file.</p></div><div class="refsect1"><a name="idm214168606432"></a><h2 id="See Also">See Also<a class="headerlink" title="Permalink to this headline" href="#See%20Also">¶</a></h2><p>
                        <a href="systemd.html"><span class="citerefentry"><span class="refentrytitle">systemd</span>(1)</span></a>,
                        <a href="sd-bus.html"><span class="citerefentry"><span class="refentrytitle">sd-bus</span>(3)</span></a>,
                        <a href="sd_bus_new.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_new</span>(3)</span></a>,
                        <a href="sd_bus_negotiate_timestamp.html"><span class="citerefentry"><span class="refentrytitle">sd_bus_negotiate_timestamp</span>(3)</span></a>,
                        <a href="clock_gettime.html"><span class="citerefentry"><span class="refentrytitle">clock_gettime</span>(2)</span></a>,
                        <a href="sd_id128_get_boot.html"><span class="citerefentry"><span class="refentrytitle">sd_id128_get_boot</span>(3)</span></a>
                </p></div></div></body></html>