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

FreeBSD Manual Pages

  
 
  

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  ser-
       vice_type  is  a	type field that	should be set to the service this mes-
       sage 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  de-
       sired.  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 indicates.	The Spread system will
       only send the message once but will deliver 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
       application  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 cor-
       rected before receiving.

       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 er-
       rors ( <	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>

SEE ALSO
       libspread(3)

SPREAD				   JULY	1998		       SP_MULTICAST(3)

NAME | SYNOPSIS | DESCRIPTION | RETURN VALUES | BUGS | AUTHOR | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SP_multicast&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help