NAME¶
evs_join - Multicast a message to selected groups
SYNOPSIS¶
#include <sys/uio.h> #include <corosync/evs.h>
int evs_mcast_groups(evs_handle_t handle, evs_guraantee_t
guarantee, evs_group_t *groups, int group_entries,
struct iovec *iovec, int iov_len);
DESCRIPTION¶
The
evs_mcast_groups(3) function multicasts a message to all the groups
specified in the arguemnt
groups. Messages are delivered to all
processors in the system that are described by the current configuration.
The argument
handle describes a handle created with
evs_initialize(3).
The argument
guarantee requests a delivery guarantee for the message to
be sent. The evs_guarantee_t type is defined by:
typedef enum {
EVS_TYPE_UNORDERED, /* not implemented */
EVS_TYPE_FIFO, /* same as agreed */
EVS_TYPE_AGREED, /* implemented */
EVS_TYPE_SAFE /* not implemented */
} evs_guarantee_t;
The meanings of the evs_guarantee_t typedef are:
- EVS_GUARANTEE_UNORDERED
- Messages are guaranteed to be delivered, but with no particular order.
This mode is unimplemented in the EVS library.
- EVS_GUARANTEE_FIFO
- Messages are guaranteed to be delivered in first sent first delivery order
from one one. In fact, this guarantee is actually the AGREED
guarantee.
- EVS_GUARANTEE_AGREED
- All processors must agree on the order of delivery. If a message is sent
from two or more processors at about the same time, the delivery will
occur in the same order to all processors.
- EVS_GUARANTEE_SAFE
- All processors must agree on the order of delivery. Further all processors
must have a copy of the message before any delivery takes place. This mode
is unimplemented in the EVS library.
The
groups argument is of the type evs_group_t which is defined by the
structure:
typedef struct {
char key[32];
} evs_groups_t;
The
group_entries argument describes the number of entries in the
group argument.
The
iovec argument describes the scatter/gather list which is used to
transmit a message. This is a standard socket structure described by:
struct iovec
{
void *iov_base; /* Pointer to data. */
unsigned int iov_len; /* Length of data. */
};
The
iovlen argument describes the number of entires in the
iovec
argument.
RETURN VALUE¶
This call returns the EVS_OK value if successful, otherwise an error is
returned.
ERRORS¶
The errors are undocumented.
SEE ALSO¶
evs_overview(8),
evs_initialize(3),
evs_finalize(3),
evs_fd_get(3),
evs_dispatch(3),
evs_leave(3),
evs_join(3),
evs_mcast_joined(3),
evs_membership_get(3)
evs_context_get(3) evs_context_set(3)