Spread 4.0.0 C API

int SP_connect (const char *spread_name, const char *private_name, int priority, 
                int group_membership mailbox *mbox, char *private_group);

int SP_connect_timeout (const char *spread_name, const char *private_name, int priority, int group_membership, mailbox *mbox, char *private_group, sp_time time_out);

  spread_name Name of the Spread daemon to connect to
  private_name Name this connection would like to be known as
  priority Currently this has no effect
  group_membership Signifies if application will receive any membership change messages
  mbox Handle to the returned spread connection
  private_group Returned group name which can be used to send unicast messages to this connection
  time_out Set the connection timeout on the TCP/IP socket to the Spread daemon

Return Values
  ILLEGAL_SPREAD The spread_name given to connect to was illegal for some reason. Usually because it was a unix socket on Windows95/NT, an improper format for a host or an illegal port number
  COULD_NOT_CONNECT Lower level socket calls failed to allow a connection to the specified spread daemon right now.
  CONNECTION_CLOSED During communication to establish the connection errors occurred and the setup could not be completed.
  REJECT_VERSION The daemon or library has a version mismatch.
  REJECT_NO_NAME This is a protocol error which should not occur if the connection request is sent correctly to the daemon. It means that the length of the user name was not sent (if no user name is provided a length of 0 must be sent).
  REJECT_ILLEGAL_NAME Name provided violated some requirement (length or used an illegal character)
  REJECT_NOT_UNIQUE Name provided is not unique on this daemon. Recommended response is to try again with a different name.


SP_connect is the initial call an application must make to establish a connection with a Spread daemon. All other spread calls must refer to a valid mbox returned by this function.

The spread_name is the name of the Spread daemon to connect to. It should be a string in one of the following forms:

This will connect to the Spread daemon on the local machine running on port 4803. This form cannot be used to connect to a Windows95/NT machine.
This will also connect to the Spread daemon on the local machine running on port 4803. This form can be used on Windows95/NT machines.
4803@host.domain.edu or 4803@
This will connect to the machine identified by either domain name or IP address at the specified port.

The private_name is the name this connection would like to be known as. It must be unique on the machine running the spread daemon. The name can be of at most MAX_PRIVATE_NAME characters, with the same character restrictions as a group name (mainly it cannot contain the '#' character). If the application does not care what name it uses, it can pass in a NULL pointer into this field and the daemon will assign the connection a unique, random name.

The priority is a 0/1 flag for whether this connection will be a "Priority" connection or not. Currently this has no effect.

The group_membership is a boolean integer. If 1 then the application will receive group membership messages for this connection, if 0 then the application will not receive any membership change messages.

The mbox should be a pointer to a mailbox variable. After the SP_connect call returns this variable will hold the mbox for the connection.

The private_group should be a pointer to a string big enough to hold at least MAX_GROUP_NAME characters. After the Connect call returns it will contain the private group name of this connection. This group name can be used to send unicast messages to this connection and no one can join this special group.

  Header: Include sp.h
Library: Use libspread
Version: 4.0

Also See
  spread programmer's reference, SP_disconnect