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


       evs_join - Multicast a message to selected groups


       #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);


       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:

              Messages  are  guaranteed to be delivered, but with no particular order.  This mode
              is unimplemented in the EVS library.

              Messages are guaranteed to be delivered in first sent first delivery order from one
              one.  In fact, this guarantee is actually the AGREED guarantee.

              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.

              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.


       This call returns the EVS_OK value if successful, otherwise an error is returned.


       The errors are undocumented.


       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)