aboutsummaryrefslogtreecommitdiffstats
path: root/doc/bus_read.3
diff options
context:
space:
mode:
Diffstat (limited to 'doc/bus_read.3')
-rw-r--r--doc/bus_read.358
1 files changed, 44 insertions, 14 deletions
diff --git a/doc/bus_read.3 b/doc/bus_read.3
index b8b927e..0bea94a 100644
--- a/doc/bus_read.3
+++ b/doc/bus_read.3
@@ -1,16 +1,22 @@
.TH BUS_READ 3 BUS-%VERSION%
.SH NAME
-bus_read - Listen for new messages a bus
+bus_read, bus_read_timed - Listen for new messages a bus
.SH SYNOPSIS
+.LP
+.nf
#include <bus.h>
-
-int bus_read(const bus_t *bus, int (*callback)(const char *message, void *user_data), void *user_data);
+.P
+int bus_read(const bus_t *\fIbus\fP, int (*\fIcallback\fP)(const char *\fImessage\fP, void *\fIuser_data\fP),
+ void *\fIuser_data\fP);
+int bus_read_timed(const bus_t *\fIbus\fP, int (*\fIcallback\fP)(const char *\fImessage\fP, void *\fIuser_data\fP),
+ void *\fIuser_data\fP, const struct timespec *\fItimeout\fP, clockid_t \fIclockid\fP);
+.fi
.SH DESCRIPTION
The
-.BR bus_read(3)
+.BR bus_read ()
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)
+.BR bus_open ()
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
@@ -20,22 +26,46 @@ 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
+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.
+uses the copy of \fImessage\fP. \fIcallback\fP shall return -1 on
+failure, 0 if
+.BR bus_read ()
+should stop listening or 1 if
+.BR bus_read ()
+should continue listening.
+.PP
+The
+.BR bus_read_timed ()
+function behaves like
+.BR bus_read (),
+except it will automatically fail and set \fIerrno\fP to \fBEAGAIN\fP
+when the time specified specified time has passed. The time is specified
+as an absolute time using the parameter \fItimeout\fP. The behaviour is
+unspecified if \fItimeout\fP is \fINULL\fP. \fItimeout\fP is measured
+with the clock whose ID is specified by the \fIclockid\fP parameter.
+This clock must be a predicitable clock.
.SH RETURN VALUES
-Upon successful completion, the function returns 0. Otherwise the
+Upon successful completion, these functions returns 0. Otherwise the
function returns -1 and sets \fIerrno\fP to indicate the error.
.SH ERRORS
The
-.BR bus_read(3)
+.BR bus_read (3)
function may fail and set \fIerrno\fP to any of the errors specified for
-.BR semop(3).
+.BR semop (3).
+The
+.BR bus_read_timed (3)
+function may also set \fIerrno\fP to any of the errors specified for
+.BR clock_gettime (3).
.SH SEE ALSO
-bus-create(1), bus(5), libbus(7), bus_open(3), bus_write(3),
-bus_poll(3), semop(3)
+.BR bus-create (1),
+.BR bus (5),
+.BR libbus (7),
+.BR bus_open (3),
+.BR bus_write (3),
+.BR bus_poll (3),
+.BR semop (3),
+.BR clock_gettime (3)
.SH AUTHORS
Principal author, Mattias Andrée. See the LICENSE file for the full
list of authors.