NAME
evs_join - Multicast a message to selected groups
SYNOPSIS
#include <sys/uio.h>
#include <openais/evs.h>
I int evs_mcast_gruops(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_gaurantee_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. */
size_t 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