chiark / gitweb /
b3d5765ee07965f9f7a05cac8f57c6885da58d13
[elogind.git] / man / sd_event_source_set_prepare.xml
1 <?xml version='1.0'?> <!--*- Mode: nxml; nxml-child-indent: 2; indent-tabs-mode: nil -*-->
2 <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4
5 <!--
6   SPDX-License-Identifier: LGPL-2.1+
7
8   Copyright 2015 Lennart Poettering
9 -->
10
11 <refentry id="sd_event_source_set_prepare" xmlns:xi="http://www.w3.org/2001/XInclude">
12
13   <refentryinfo>
14     <title>sd_event_source_set_prepare</title>
15     <productname>elogind</productname>
16
17     <authorgroup>
18       <author>
19         <contrib>Developer</contrib>
20         <firstname>Lennart</firstname>
21         <surname>Poettering</surname>
22         <email>lennart@poettering.net</email>
23       </author>
24     </authorgroup>
25   </refentryinfo>
26
27   <refmeta>
28     <refentrytitle>sd_event_source_set_prepare</refentrytitle>
29     <manvolnum>3</manvolnum>
30   </refmeta>
31
32   <refnamediv>
33     <refname>sd_event_source_set_prepare</refname>
34
35     <refpurpose>Set a preparation callback for event sources</refpurpose>
36   </refnamediv>
37
38   <refsynopsisdiv>
39     <funcsynopsis>
40       <funcsynopsisinfo>#include &lt;elogind/sd-event.h&gt;</funcsynopsisinfo>
41
42       <funcprototype>
43         <funcdef>int <function>sd_event_source_set_prepare</function></funcdef>
44         <paramdef>sd_event_source *<parameter>source</parameter></paramdef>
45         <paramdef>sd_event_handler_t <parameter>callback</parameter></paramdef>
46       </funcprototype>
47
48       <funcprototype>
49         <funcdef>typedef int (*<function>sd_event_handler_t</function>)</funcdef>
50         <paramdef>sd_event_source *<parameter>s</parameter></paramdef>
51         <paramdef>void *<parameter>userdata</parameter></paramdef>
52       </funcprototype>
53
54     </funcsynopsis>
55   </refsynopsisdiv>
56
57   <refsect1>
58     <title>Description</title>
59
60     <para><function>sd_event_source_set_prepare()</function> may be
61     used to set a preparation callback for the event source object
62     specified as <parameter>source</parameter>. The callback function
63     specified as <parameter>callback</parameter> will be invoked
64     immediately before the event loop goes to sleep to wait for
65     incoming events. It is invoked with the user data pointer passed
66     when the event source was created. The event source will be disabled
67     if the callback function returns a negative error code. The callback
68     function may be used to reconfigure the precise events to wait for.
69     If the <parameter>callback</parameter> parameter is passed as NULL
70     the callback function is reset. </para>
71
72     <para>Event source objects have no preparation callback associated
73     when they are first created with calls such as
74     <citerefentry><refentrytitle>sd_event_add_io</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
75     <citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Preparation
76     callback functions are supported for all event source types with
77     the exception of those created with
78     <citerefentry><refentrytitle>sd_event_add_exit</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Preparation
79     callback functions are dispatched in the order indicated by the
80     event source's priority field, as set with
81     <citerefentry><refentrytitle>sd_event_source_set_priority</refentrytitle><manvolnum>3</manvolnum></citerefentry>. Preparation
82     callbacks of disabled event sources (see
83     <citerefentry><refentrytitle>sd_event_source_set_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>)
84     are not invoked.</para>
85   </refsect1>
86
87   <refsect1>
88     <title>Return Value</title>
89
90     <para>On success,
91     <function>sd_event_source_set_prepare()</function> returns a
92     non-negative integer. On failure, it returns a negative
93     errno-style error code.</para>
94   </refsect1>
95
96   <refsect1>
97     <title>Errors</title>
98
99     <para>Returned errors may indicate the following problems:</para>
100
101     <variablelist>
102       <varlistentry>
103         <term><constant>-EINVAL</constant></term>
104
105         <listitem><para><parameter>source</parameter> is not a valid
106         pointer to an <structname>sd_event_source</structname>
107         object.</para></listitem>
108       </varlistentry>
109
110       <varlistentry>
111         <term><constant>-ESTALE</constant></term>
112
113         <listitem><para>The event loop is already terminated.</para></listitem>
114
115       </varlistentry>
116       <varlistentry>
117         <term><constant>-ENOMEM</constant></term>
118
119         <listitem><para>Not enough memory.</para></listitem>
120       </varlistentry>
121
122       <varlistentry>
123         <term><constant>-ECHILD</constant></term>
124
125         <listitem><para>The event loop has been created in a different process.</para></listitem>
126
127       </varlistentry>
128
129       <varlistentry>
130         <term><constant>-EDOM</constant></term>
131
132         <listitem><para>The specified event source has been created
133         with
134         <citerefentry><refentrytitle>sd_event_add_exit</refentrytitle><manvolnum>3</manvolnum></citerefentry>.</para></listitem>
135
136       </varlistentry>
137
138     </variablelist>
139   </refsect1>
140
141   <xi:include href="libelogind-pkgconfig.xml" />
142
143   <refsect1>
144     <title>See Also</title>
145
146     <para>
147       <citerefentry><refentrytitle>sd-event</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
148       <citerefentry><refentrytitle>sd_event_add_io</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
149       <citerefentry><refentrytitle>sd_event_add_time</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
150       <citerefentry><refentrytitle>sd_event_add_child</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
151       <citerefentry><refentrytitle>sd_event_add_signal</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
152       <citerefentry><refentrytitle>sd_event_add_defer</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
153       <citerefentry><refentrytitle>sd_event_source_set_enabled</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
154       <citerefentry><refentrytitle>sd_event_source_set_priority</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
155       <citerefentry><refentrytitle>sd_event_source_set_userdata</refentrytitle><manvolnum>3</manvolnum></citerefentry>
156     </para>
157   </refsect1>
158
159 </refentry>