From: schmidt@liege.ics.uci.edu (Douglas C. Schmidt) Subject: Re: C++ and Semaphores Date: 22 Nov 1993 19:27:00 -0800 Organization: University of California at Irvine: ICS Dept.
THE "ADAPTIVE COMMUNICATION ENVIRONMENT" (ACE) LIBRARY:
A Collection of C++ Network Programming Components --------------------------------------------------
The ACE library is available for anonymous ftp from the ics.uci.edu (128.195.1.1) host in the gnu/C++_wrappers.tar.Z file (approximately .4 meg compressed). This release contains contains the source code, documentation, and example test drivers for a number of C++ wrapper libraries and higher-level network programming foundation classes developed as part of the ADAPTIVE transport system project at the University of California, Irvine.
. The C++ wrappers encapsulate many of the user-level BSD and System V Release 4 IPC facilities such as sockets, TLI, select and poll, named pipes and STREAM pipes, the mmap family of memory-mapped file commands, System V IPC (i.e., shared memory, semaphores, message queues), and explicit dynamic linking (e.g., dlopen/dlsym/dlclose) using type-secure, object-oriented interfaces.
. The higher-level network programming foundation classes integrate and enhance the lower-level C++ wrappers to support the configuration of concurrent network daemons composed of monolithic and/or stackable services
Many of the C++ wrappers and higher-level components have been described in issues of the C++ Report, as well as in the proceedings of (1) the 2nd Annual C++ World conference held in Dallas, Texas in October, 1993, (2) the 11th Annual Sun Users Group Conference held in San Jose, CA in December, 1993, and (3) the 2nd International Workshop on Configurable Distributed Systems held at CMU in Pittsburgh, PA in March, 1994. A relatively complete set of documentation and extensive examples are included in the release. A mailing list is available for discussing bug fixes, enhancements, and porting issues regarding ACE. Please send mail to ace-users-request@ics.uci.edu if you'd like to become part of the mailing list.
CONTENTS OF THE RELEASE
The following subdirectories are included in this release:
. apps -- complete applications written using the ACE wrappers . bin -- utility programs for building this release such as g++dep . build -- a separate subdirectory that keeps links into the main source tree in order to facilitate multi-platform build-schemes . include -- symbolic links to the include files for the release . lib -- object archive libraries for each C++ wrapper library . libsrc -- the source code for the following C++ wrappers: ASX -- higher-level C++ network programming foundation classes Get_Opt -- a C++ version of the UNIX getopt utility IPC_SAP -- wrapper for BSD sockets IPC_SAP_FIFO -- wrapper for FIFOS (named pipes) IPC_SAP_SPIPE -- wrapper for SVR4 STREAM pipes and connld Log_Msg -- library API for a local/remote logging facility Mem_Map -- wrapper for BSD mmap() memory mapped files Message_Queues -- wrapper for SysV message queues Reactor -- wrapper for select() and poll() Semaphores -- wrapper for SysV semaphores Server_Daemon -- a wrapper for dynamically linking Shared_Memory -- wrapper for SysV shared memory Shared_Malloc -- wrapper for SysV/BSD shared mallocs TLI_SAP -- wrapper for SVR4 TLI . tests -- programs that illustrate how to use the various wrappers
Please refer to the INSTALL file for information on how to build and test the ACE wrappers. The BIBLIOGRAPHY file contains information on where to obtain articles that describe the ACE wrappers and the ADAPTIVE system in more detail.
Also, please note that there is a companion tar file called C++_wrappers_doc.tar.Z, which is approximately 1.5 Meg compressed. This file is in the same ftp/gnu directory as the source code distribution. In this file is the following:
. doc -- LaTeX documentation (in both latex and .ps format) . papers -- postscript versions of various papers describing ACE
COPYRIGHT INFORMATION
You are free to do anything you like with this code. However, you may not do anything to this code that will prevent it from being distributed freely in its original form (such as copyrighting it, etc.). Moreover, if you have any improvements, suggestions, and or comments, I'd like to hear about it! It would be great to see this distributed evolve into a comprehensive, robust, and well-documented C++ class library that would be freely available to everyone. Natually, I am not responsible for any problems caused by using these C++ wrappers.
Thanks, Douglas C. Schmidt (schmidt@ics.uci.edu) Department of Information and Computer Science University of California, Irvine Irvine, CA 92717 Work #: (714) 856-4105 FAX #: (714) 856-4056
ACKNOWLEDGEMENTS Special thanks to Paul Stephenson for devising the recursive Makefile scheme that underlies this distribution. Also thanks to Olaf Kruger for explaining how to instantiate templates for shared libraries on SunOS 4. -- Douglas C. Schmidt Department of Information and Computer Science University of California, Irvine Irvine, CA 92717. Work #: (714) 856-4105; FAX #: (714) 856-4056
This document was translated by ms2html v1.8 on 04.06.96.