This is the v1.0.3 (January 2002) distribution of the FLUSH SPREAD package. Changes since v1.0.2 (July 2001) ================================ Changes to make it compatible with Spread 3.16.1. Basically the name of the MAX_SCATTER_ELEMENTS from sp.h was changed to MAX_CLIENT_SCATTER_ELEMENTS, which required the same name modification in fl.h and scatp.c from the FLUSH SPREAD distribution. Changes since v1.0.1 (May 2001): ================================ Mainly changes to the structure of the build system. Added documentation to and separated the stdutil distribution out from flush a little better. Changes since v1.0.0 (Nov 2000): Updated flush library to handle change in SP_version()'s interface. The flush library should now work with spread client libraries v3.12 and up. However, due to additional internal checks by SPREAD v3.15, unicast, subgroupcast and the DONT_BLOCK flag in any multicast will cause the daemon to disconnect the sending connection. Hopefully this restriction will be removed in the next release of SPREAD, whether it be 3.15.3 or 3.16.0. A more long term fix to this problem may require a slight change to the Flush interface in the future. Note, if you compile Flush w/ a sp.h for a SPREAD version earlier than 3.15 and then link with a SPREAD client library greater than or equal to 3.15, you will get no compile errors but your library will not function properly and will (at best) cause a seg fault. Other possible errors would be memory corruption and other strange intermittent errors. As a general rule when compiling a library that is dependent on other libraries you should ensure that the library uses the appropriate header files for the libraries with which it is linking. Also fixed a bug in user when sending subgroupcasts. Before you would be disconnected for trying to send to ILLEGAL_MEMBERS incorrectly. LICENSE: Please read the file FLUSH_LICENSE for rights and limitations on use and redistribution of this package before using it or its code. Included inside this package is a distribution of the stdutil library. This library is not governed by the license found in FLUSH_LICENSE. Instead, it has its own license for use and redistribution, which can be found in stdutil/STDUTIL_LICENSE. DESCRIPTION: Flush Spread offers closed group, view synchronous (sometimes referred to as virtually synchronous) group communication services in an application library. This package is built on top of the SPREAD package v3.12 or later client library (and toolkit) and only functions with it. DOCUMENTATION: Simply open up index.html with a browser or visit http://www.cnds.jhu.edu/research/group/flush_spread or look directly at the man pages contained in the man/ directory. BUILDING: First you need to have SPREAD installed on your box (see www.spread.org). If you want to link with an installation of SPREAD that is not in your standard .h and lib include paths, you will need to edit src/Makefile.in and modify the variables SP_INC_DIR and SP_LIB_DIR to include the appropriate paths. Then run make in the root of this distribution. This will build the flush library and the stdutil library and place them in the lib/ directory. Also some test apps will be built and put in bin/ and stdutil/bin. INSTALLING: Copy the flush library archive by hand to a standard library linking path (e.g. /usr/lib), and also copy the file src/fl.h to a standard .h include path (e.g. /usr/include). If you want to install the stdutil library on your box (you will need to if you are installing the flush library), copy the stdutil library archive to a standard library include path. Then go into the stdutil directory and do a recursive copy of the _DIRECTORY_ src/stdutil into a standard include path (e.g. cp -r stdutil/src/stdutil /usr/include). LINKING: When you compile applications that use the flush library you will need to #include and link with the flush library (libfl.a), the stdutil library (libstdutil.a), the SPREAD library (libsp.a or libtsp.a), and if you compiled flush with _REENTRANT the pthread library (-lpthread). ^(Thread safe) USAGE: See the file fl.h or the documentation for Flush Spread's public interface. PROBLEMS: Please report any bugs or problems to flush_spread@cnds.jhu.edu with as much helpful debugging information (gdb core files appreciated) as possible including your platform, how you were using it, etc. Enjoy, John Schultz Nov 2000