cpg_join - Joins one or more groups in the CPG library
#include <corosync/cpg.h>
int cpg_join(cpg_handle_t handle, struct cpg_name
*group);
The
cpg_join function is used to join one group. When a group is joined,
the
cpg_mcast_joined(3) is called internally to multicast to the groups
joined in the argument
handle. The process will also get notifications
of other processes joining and leaving the group. Messages that are sent to
any of the groups joined to the parameter
handle will be delivered by
cpg_dispatch(3).
This function may be only be called once for each handle. When a group has been
joined the process will start to receive callbacks relating to messages sent
from members of the group or notifications of processes joining or leaving the
group.
Note that more than one process on each node can join a CPG group and each will
receive its own copy of any messages sent using
cpg_mcast_joined() and
its own confchg callback.
The argument
group is used to specify the group to join.
The
groups argument is of the type struct cpg_name which is defined by
the structure:
struct cpg_name {
int length;
char value[128];
};
This call returns the CS_OK value if successful, CS_ERR_INVALID_PARAM if the
handle is already joined to a group.
Not all errors are documented.
cpg_overview(3),
cpg_initialize(3),
cpg_finalize(3),
cpg_fd_get(3),
cpg_dispatch(3), ,
cpg_leave(3),
cpg_mcast_joined(3),
cpg_membership_get(3)
cpg_zcb_alloc(3) cpg_zcb_free(3) cpg_zcb_mcast_joined(3)
cpg_context_get(3) cpg_context_set(3) cpg_local_get(3)
CS_ERR_TRY_AGAIN Resource temporarily unavailable
CS_ERR_INVALID_PARAM Invalid argument
CS_ERR_ACCESS Permission denied
CS_ERR_LIBRARY The connection failed
CS_ERR_INTERRUPT System call interrupted by a signal
CS_ERR_NOT_SUPPORTED The requested protocol/functionality not supported
CS_ERR_MESSAGE_ERROR Incorrect auth message received
CS_ERR_NO_MEMORY Not enough memory to complete the requested task