Allow make from the exec directory.
[openais.git] / man / cpg_join.3
blobb145917842fdb55584a0dfab2b04c279d57be9dc
1 .\"/*
2 .\" * Copyright (c) 2006 Red Hat, Inc.
3 .\" *
4 .\" * All rights reserved.
5 .\" *
6 .\" * Author: Patrick Caulfield <pcaulfie@redhat.com>
7 .\" *
8 .\" * This software licensed under BSD license, the text of which follows:
9 .\" * 
10 .\" * Redistribution and use in source and binary forms, with or without
11 .\" * modification, are permitted provided that the following conditions are met:
12 .\" *
13 .\" * - Redistributions of source code must retain the above copyright notice,
14 .\" *   this list of conditions and the following disclaimer.
15 .\" * - Redistributions in binary form must reproduce the above copyright notice,
16 .\" *   this list of conditions and the following disclaimer in the documentation
17 .\" *   and/or other materials provided with the distribution.
18 .\" * - Neither the name of the MontaVista Software, Inc. nor the names of its
19 .\" *   contributors may be used to endorse or promote products derived from this
20 .\" *   software without specific prior written permission.
21 .\" *
22 .\" * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
23 .\" * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 .\" * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 .\" * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
26 .\" * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
27 .\" * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
28 .\" * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
29 .\" * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
30 .\" * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
31 .\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
32 .\" * THE POSSIBILITY OF SUCH DAMAGE.
33 .\" */
34 .TH CPG_JOIN 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
35 .SH NAME
36 cpg_join \- Joins one or more groups in the CPG library
37 .SH SYNOPSIS
38 .B #include <openais/cpg.h>
39 .sp
40 .BI "int cpg_join(cpg_handle_t " handle ", struct cpg_name *" group ");
41 .SH DESCRIPTION
42 The
43 .B cpg_join
44 function is used to join one group.  When a group is joined, using the
45 .B cpg_mcast_joined(3)
46 function will multicast to the groups joined in the argument
47 .I handle. 
48 The process will also get notifications of other processes joining
49 and leaving the group.
50 Messages that are sent to any of the groups joined to the parameter
51 .I handle
52 will be delivered by
53 .B cpg_dispatch(3).
54 .PP
55 This function may be only be called once for each handle. When a group has been joined
56 the process will start to receive callbacks relating to messages send from members
57 of the group or notifications of process joining/leaving the group.
58 .PP
59 Note that more than one process can join a CPG group and each will receive its
60 own copy of any messages sent using 
61 .I cpg_mcast_joined()
62 and its own confchg callback.
63 .PP
65 The argument
66 .I group
67 is used to specify the group to join.  
70 The
71 .I groups
72 argument is of the type struct cpg_name which is defined by the structure:
74 .IP
75 .RS
76 .ne 18
77 .nf
78 .ta 4n 30n 33n
79 struct cpg_name {
80         int length;
81         char value[128];
83 .ta
84 .fi
85 .RE
86 .IP
87 .PP
88 .PP
89 .SH RETURN VALUE
90 This call returns the CPG_OK value if successful, CPG_ERR_INVALID_PARAM if the
91 handle is already joined to a group.
92 .PP
93 .SH ERRORS
94 Not all errors are documented.
95 .SH "SEE ALSO"
96 .BR cpg_overview (8),
97 .BR cpg_initialize (3),
98 .BR cpg_finalize (3),
99 .BR cpg_fd_get (3),
100 .BR cpg_dispatch (3),
101 .BR cpg_leave (3),
102 .BR cpg_mcast_joined (3),
103 .BR cpg_membership_get (3)