Re: C++ and Semaphores

From: (Douglas C. Schmidt)
Date: 22 Nov 1993 19:27:00 -0800
Organization: University of California at Irvine: ICS Dept.


	  A Collection of C++ Network Programming Components

	The ACE library is available for anonymous ftp from the ( 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 Calfornia, 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 if you'd like to
become part of the mailing list.


	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
	. 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


	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.

		Douglas C. Schmidt
		Department of Information and Computer Science
		University of California, Irvine
		Irvine, CA 92717
		Work #: (714) 856-4105
		FAX #: (714) 856-4056

	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

>56  Teaching Intro to OO Slides, T. Budd
Go Back Up

Go To Previous

Go To Next