summaryrefslogtreecommitdiff
path: root/doc/xs_msg_init.txt
blob: 8b33c8ab001950f7f734a7e0c4bf047b4b9f271b (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
xs_msg_init(3)
==============


NAME
----
xs_msg_init - initialise empty Crossroads message


SYNOPSIS
--------
*int xs_msg_init (xs_msg_t '*msg');*


DESCRIPTION
-----------
The _xs_msg_init()_ function shall initialise the message object referenced by
'msg' to represent an empty message.  This function is most useful when called
before receiving a message with _xs_recv()_.

CAUTION: Never access 'xs_msg_t' members directly, instead always use the
_xs_msg_ family of functions.

CAUTION: The functions _xs_msg_init()_, _xs_msg_init_data()_ and
_xs_msg_init_size()_ are mutually exclusive. Never initialize the same
'xs_msg_t' twice.


RETURN VALUE
------------
The _xs_msg_init()_ function shall return zero if successful. Otherwise it
shall return `-1` and set 'errno' to one of the values defined below.


ERRORS
------
No errors are defined.


EXAMPLE
-------
.Receiving a message from a socket
----
xs_msg_t msg;
rc = xs_msg_init (&msg);
assert (rc == 0);
rc = xs_recv (socket, &msg, 0);
assert (rc == 0);
----


SEE ALSO
--------
linkxs:xs_msg_init_size[3]
linkxs:xs_msg_init_data[3]
linkxs:xs_msg_close[3]
linkxs:xs_msg_data[3]
linkxs:xs_msg_size[3]
linkxs:xs[7]


AUTHORS
-------
The Crossroads documentation was written by Martin Sustrik <sustrik@250bpm.com>
and Martin Lucina <martin@lucina.net>.