aboutsummaryrefslogtreecommitdiffstats
path: root/doc/bus_read.3
blob: 9f575270b81462b141b62f1219eb33f5bda9e040 (plain) (blame)
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
.TH BUS_CLOSE 1 BUS-%VERSION%
.SH NAME
bus_read - Listen for new messages a bus
.SH SYNOPSIS
#include <bus.h>

int bus_read(const bus_t *bus, int (*callback)(const char *message, void *user_data), void *user_data);
.SH DESCRIPTION
The
.BR bus_read(3)
function waits for new message to be sent on the bus specified in
\fIbus\fP, as provieded by a previous call to the
.BR bus_open(3)
function.  Once a message is received, the \fIcallback\fP function is
invoked.  The \fImessage\fP argument to the callback is the received
message, and \fIuser_data\fP for \fIcallback\fP should be
\fIuser_data\fP from \fIbus_read\fP.  However, once \fIbus_read\fP has
ensured that it will receive any message sent on the bus, it shall
invoke the \fIcallback\fP function with \fImessage\fP set to \fINULL\fP,
to notify the process that it can perform any action that requires that
it is listening on the bus.
.PP
After \fIcallback\fP returns, \fImessage\fP may be override. Therefore
\fIcallback\fP should copy \fImessage\fP and start a new thread that
uses the copy of \fImessage\fP. \fIcallback\fP shall return -1 on
failure, 0 if \fIbus_read\fP should stop listening or 1 if
\fIbus_read\fP should continue listening.
.SH RETURN VALUES
Upon successful completion, the function returns 0.  Otherwise the
function returns -1 and sets \fIerrno\fP to indicate the error.
.SH ERRORS
The
.BR bus_read(3)
function may fail and set \fIerrno\fP to any of the errors specified for
.BR semop(3).
.SH SEE ALSO
bus-create(1), bus(5), libbus(7), bus_open(3), bus_write(3), semop(3)
.SH AUTHORS
Principal author, Mattias Andrée.  See the LICENSE file for the full
list of authors.
.SH LICENSE
MIT/X Consortium License.
.SH BUGS
Please report bugs to https://github.com/maandree/bus/issues