[7862] Fixed infinity loop at search spell related summoned gameobject in owner list.
[getmangos.git] / dep / ACE_wrappers / README
blob1b46d7fd6f47a59771708e337a2d94d2e515e0e0
1 This document is also available at the following URL:
3 http://www.cs.wustl.edu/~schmidt/ACE.html
5 All software and documentation is available via both anonymous ftp and
6 the World Wide Web.]
8 THE ADAPTIVE COMMUNICATION ENVIRONMENT (ACE)
10 An Object-Oriented Network Programming Toolkit
12 ----------------------------------------
14 Overview of ACE
16 The ADAPTIVE Communication Environment (ACE) is an object-oriented
17 (OO) toolkit that implements fundamental design patterns for
18 communication software.  ACE provides a rich set of reusable C++
19 wrappers and frameworks that perform common communication software
20 tasks across a range of OS platforms, including Win32/Win64, most
21 versions of UNIX (e.g., SunOS, HP-UX , AIX, Linux, NetBSD, and FreeBSD),
22 real-time operating systems (e.g., VxWorks, Chorus, LynxOS, and QNX),
23 OpenVMS, and MVS OpenEdition.  A single source tree is used for all
24 these platforms and porting ACE to other platforms is relatively easy.
26 The communication software components provided by ACE include event
27 demultiplexing and event handler dispatching, service initialization,
28 interprocess communication, shared memory management, message routing,
29 dynamic (re)configuration of distributed services, multi-threading,
30 and concurrency control.  There are both C++ and Java versions of ACE
31 available.
33 ACE is targeted for developers of high-performance and real-time
34 communication services and applications on UNIX, POSIX, and Win32
35 platforms.  ACE simplifies the development of OO network applications
36 and services that utilize interprocess communication, event
37 demultiplexing, explicit dynamic linking, and concurrency.  ACE
38 automates system configuration and reconfiguration by dynamically
39 linking services into applications at run-time and executing these
40 services in one or more processes or threads.
42 ACE is currently used in commercial projects and products by dozens of
43 companies including Ericsson, Bellcore, Siemens, Motorola, Kodak,
44 Boeing, Lucent, DEC, Lockheed Martin, and SAIC.  Commercial support
45 for ACE is available from several companies as listed at
46 http://www.cs.wustl.edu/~schmidt/commercial-support.html
48 ----------------------------------------
50 C++ Wrappers for OS Interfaces
52 The lower-level portions of ACE provide a set of portable and
53 type-secure C++ wrappers that encapsulate the following C language OS
54 interfaces:
56         . IPC mechanisms
57                 -- e.g., Internet- and UNIX-domain sockets, TLI, Named
58                    Pipes (for UNIX and Win32) and STREAM pipes;
60         . Event demultiplexing
61                 -- e.g., select(), poll(), and Win32
62                    WaitForMultipleObjects and I/O completion ports;
64         . Multi-threading and synchronization
65                 -- e.g., Solaris threads, POSIX Pthreads, and Win32
66                    threads;
68         . Explicit dynamic linking
69                 -- e.g., dlopen/dlsym on UNIX and LoadLibrary/GetProc
70                    on Win32;
72         . Memory-mapped files and shared memory management
73                 -- e.g., BSD mmap(), SYSV shared memory, and Win32
74                    shared memory;
76         . System V IPC
77                 -- e.g., shared memory, semaphores, message queues.
79 The OS Adaptation Layer shields the upper levels of ACE from platform
80 dependencies associated with the underlying OS interfaces.
82 ----------------------------------------
84 Frameworks and Class Categories
86 ACE also contains a higher-level network programming framework that
87 integrates and enhances the lower-level C++ wrappers.  This framework
88 supports the dynamic configuration of concurrent distributed services
89 into applications.  The framework portion of ACE contains the
90 following class categories:
92         . The Reactor
93                 -- Supports both Reactive and Proactive I/O;
95         . The Service Configurator
96                 -- Support dynamic (re)configuration of objects;
98         . The ADAPTIVE Service Executive
99                 -- A user-level implementation of System V STREAMS,
100                    that supports modular integration of
101                    hierarchically-related communicaion services;
103         . Concurrency
104                 -- Various types of higher-level concurrency
105                    control and synchronization patterns (such as
106                    Polymorphic Futures and Active Objects);
108         . Shared Malloc
109                 -- Components for managing dynamically allocation
110                    of shared and local memory;
112 ----------------------------------------
114 Distributed Services and Components
116 Finally, ACE provides a standard library of distributed services that
117 are packaged as components.  These service components play two roles
118 in ACE:
120         1. They provide reusable components for common distributed
121            system tasks such as logging, naming, locking, and time
122            synchronization.
124         2. They illustrate how to utilize ACE features such as the
125            Reactor, Service Configurator, Service Initialization,
126            Concurrency, and IPC components.
128 ----------------------------------------
130 Middleware Applications
132 ACE has been used in research and development projects at many
133 universities and companies.  For instance, it has been used to build
134 avionics systems at Boeing, telecommunication systems at Bellcore,
135 Ericsson, Motorola, and Lucent; medical imaging systems at Siemens and
136 Kodak; and many academic research projects.  Two example middleware
137 applications provided with the ACE release include:
139         1. The ACE ORB (TAO) -- TAO is a real-time implementation of
140            CORBA built using the framework components and patterns
141            provided by ACE.
143         2. JAWS -- JAWS is a high-performance, adaptive Web server
144            built using the components in ACE.
146 ----------------------------------------
148 OBTAINING ACE
150 The current ACE release is provided as a tar file that is around 3 Meg
151 compressed using GNU gzip.  ACE may be obtained electronically from
152 http://www.cs.wustl.edu/~schmidt/ACE-obtain.html.  This release
153 contains the source code, test drivers, and example applications
154 (including JAWS) for C++ wrapper libraries and the higher-level ACE
155 network programming framework developed as part of the ADAPTIVE
156 project at the University of California, Irvine and at Washington
157 University, St. Louis.
159 You can get The ACE ORB (TAO) in a companion release at
160 http://www.cs.wustl.edu/~schmidt/TAO.html.
162 ----------------------------------------
164 ACE DOCUMENTATION AND TUTORIALS
166 Many of the C++ wrappers and higher-level components have been
167 described in issues of the C++ Report, as well as in proceedings of
168 many journals, conferences, and workshops.
170 A collection of white papers and tutorial handouts are included at
171 ftp://wuarchive.wustl.edu/languages/c++/ACE/ACE-documentation.  This
172 directory contains postscript versions of various papers that describe
173 different aspects of ACE.
175 I update these papers periodically to reflect changes to the ACE
176 architecture.  Therefore, you might want to check the date on the
177 files to make sure that you have read the most recent versions of
178 these papers.
180 This material is also available available via the WWW at URL:
182 http://www.cs.wustl.edu/~schmidt/ACE.html
184 ----------------------------------------
186 ACE MAILING LIST AND NEWSGROUP
188 A mailing list, ace-users@list.isis.vanderbilt.edu, is available for discussing
189 bug fixes, enhancements, and porting issues regarding ACE.  Please
190 send mail to me at the ace-users-request@list.isis.vanderbilt.edu
191 if you'd like to join the mailing list.  There is also a USENET newsgroup
192 called comp.soft-sys.ace. Please see
193 http://www.cs.wustl.edu/~schmidt/ACE-mail.html for details on how to
194 subscribe to the mailing list.
196 ----------------------------------------
198 BUILDING AND INSTALLING ACE
200 Please refer to the http://www.cs.wustl.edu/~schmidt/ACE-install.html
201 file for information on how to build and test the ACE wrappers.  The
202 BIBLIOGRAPHY file contains information on where to obtain articles
203 that describe the ACE wrappers and the ADAPTIVE system in more detail.
205 The current release has been tested extensively, but if you find any
206 bugs, please report them to the ACE mailing list
207 ace-users@cs.wustl.edu using the $ACE_ROOT/PROBLEM-REPORT-FORM.
208 Please use the same form to submit questions, comments, etc.
209 To ensure that you see responses, please do one of the following:
211     1) Subscribe to the ace-users mail list, by sending email with
212        contents "subscribe ace-users" to
213        ace-users-request@list.isis.vanderbilt.edu.
215     2) Or, monitor the comp.soft-sys.ace newsgroup for responses.
217 ----------------------------------------
219 ACKNOWLEDGEMENTS
221 Please see the file `$ACE_ROOT/THANKS' for a list of the thousands of
222 people who've contributed to ACE and TAO over the years.