Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
SP_MULTICAST(3) 		  User Manuals			 SP_MULTICAST(3)

NAME
     SP_multicast,    SP_scat_multicast,    SP_multigroup_multicast,   SP_multi-
     group_scat_multicast - Multicast message to groups

SYNOPSIS
     #include <sp.h>

     int SP_multicast( mailbox mbox, service service_type,  const  char  *group,
     int16 mess_type, int mess_len, const char *mess);
     int  SP_scat_multicast(  mailbox  mbox,  service  service_type,  const char
     *group, int16 mess_type, const scatter scat_mess);

     int  SP_multigroup_multicast(  mailbox  mbox,  service  service_type,   int
     num_groups,  const  char  groups[][MAX_GROUP_NAME],  int16  mess_type,  int
     mess_len, const char *mess);
     int SP_multigroup_scat_multicast( mailbox mbox, service  service_type,  int
     num_groups,  const  char  groups[][MAX_GROUP_NAME],  int16 mess_type, const
     scatter scat_mess);

DESCRIPTION
     SP_multicast and its variants all can multicast send a message  to  one  or
     more  groups.  The message is sent on a particular connection and is marked
     as having come from the connection who sent it.  The service_type is a type
     field that should be set to the service this message  requires.  The  valid
     flags for messages are:

	    UNRELIABLE_MESS
	    RELIABLE_MESS
	    FIFO_MESS
	    CAUSAL_MESS
	    AGREED_MESS
	    SAFE_MESS
     This  type  can  be bit ORed with other flags like SELF_DISCARD if desired.
     Currently SELF_DISCARD is the only additional flag.

     If the SP_multicast or SP_scat_multicast versions are being used then  only
     one  group  can  be sent to. So the group string should include the name of
     the group to send to. If a multigroup varient is being used then the groups
     are specified by the num_groups integer and the array of group names called
     groups representing all the groups the message should  be	sent  to.   Each
     group  has  a  string  name of no more then MAX_GROUP_NAME chars. The array
     should have at least as many group names as the 'num_groups'  parameter in-
     dicates.  The Spread system will only send the message once  but  will  de-
     liver  it	to  all connections which have joined at least one of the groups
     listed.

     The mess_type This is a SHORT int (16 bits) which can be used by the appli-
     cation arbitrarily.  The intent is that it could be used to NAME  different
     kinds  of	data messages so they can be differentiated without looking into
     the body of the message.  This value will be endian  corrected  before  re-
     ceiving.

     If  the  non-scatter varients are being used then a single buffer is passed
     to the multicast call specifying the full message to be sent.  The mess_len
     field gives the length in bytes of the message. While the mess field  is  a
     pointer  to  the buffer containing the message.  For a scatter call both of
     these are replaced with one pointer, scat_mess,  to  a  scatter  structure,
     which is just like an iovec.  This allows messages made up of several parts
     to be sent without an extra copy on systems which support scatter-gather.

RETURN VALUES
     Returns  the number of bytes sent on success or one of the following errors
     ( < 0 ):

     ILLEGAL_SESSION
	     The mbox given to multicast on was illegal.

     ILLEGAL_MESSAGE
	     The message had an illegal structure, like a scatter not filled out
	     correctly.

     CONNECTION_CLOSED
	     During communication to send the message  errors  occured	and  the
	     send could not be completed.

BUGS
     None.

AUTHOR
     Yair Amir <yairamir@cnds.jhu.edu>
     Jonathan Stanton <jonathan@cnds.jhu.edu>
     Commedia Project <commedia@cnds.jhu.edu>

SEE ALSO
     libsp(3)

SPREAD				    JULY 1998			 SP_MULTICAST(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=SP_multigroup_scat_multicast&sektion=3&manpath=FreeBSD+Ports+15.1.quarterly>

home | help