# CPG_JOIN

NAME
SYNOPSIS
DESCRIPTION
RETURN VALUE
ERRORS
SEE ALSO

## NAME

cpg_join − Joins one or more groups in the CPG library

## SYNOPSIS

#include <corosync/cpg.h>

int cpg_join(cpg_handle_t handle, struct cpg_name *group);

## DESCRIPTION

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];
};

## RETURN VALUE

This call returns the CS_OK value if successful, CS_ERR_INVALID_PARAM if the handle is already joined to a group.

## ERRORS

Not all errors are documented.

## SEE ALSO

cpg_overview(8), cpg_initialize(3), cpg_finalize(3), cpg_fd_get(3), cpg_dispatch(3), cpg_join(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