Man Linux: Main Page and Category List

NAME

       evs_join - Multicast a message to selected groups

SYNOPSIS

       #include <sys/uio.h> #include <openais/evs.h>

       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

       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)