Provided by: corosync-dev_1.4.2-2_amd64 bug

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_mmembership_get(3) evs_context_get(3)
       evs_context_set(3)