From 3ec0a2984e41a8edf9301e8623d98aafdf9bf634 Mon Sep 17 00:00:00 2001 From: nobody Date: Mon, 26 Jul 1999 18:15:56 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'TAO-0_4_3'. --- docs/ACE-subsets.html | 823 -------------------------------------------------- 1 file changed, 823 deletions(-) delete mode 100644 docs/ACE-subsets.html (limited to 'docs/ACE-subsets.html') diff --git a/docs/ACE-subsets.html b/docs/ACE-subsets.html deleted file mode 100644 index 6c79cc09f75..00000000000 --- a/docs/ACE-subsets.html +++ /dev/null @@ -1,823 +0,0 @@ - - - - - ACE Subsets - - - - - -

-Contents -

    -
  1. Motivation for Splitting ACE into Multiple - Libraries -
  2. Configuration Management -
  3. Classes in Each ACE Library Subset -
  4. Current ACE Subsetting Status -
  5. ACE Library Size Breakdown -
  6. Building ACE Subsets -
  7. ACE_OS Adaptation Layer -
  8. Minimum TAO -

- - -


-

Motivation for Splitting ACE into Multiple - Libraries

- -This document describes how we are splitting ACE into multiple -libraries, each of which will contain a smaller subset of the overall -ACE functionality. The primary motivations for subsetting ACE are: - - - -The main design goals of our approach are as follows:

- -

    -
  1. Support the original libACE as before. Thus, for users who -want to use the existing ACE library as is, there will be -no changes, i.e., just link with libACE as usual.

    - -

  2. Allow ACE (and TAO) programmers to use smaller subsets of the -entire libACE library. These subsets will include the -following libraries:

    - -

    -
    o -libACE_OS -- This library contains the OS adaptation -layer and its supporting classes. All other ACE libraries will depend -on libACE_OS and it will depend on no other ACE -libraries.

    - -

    o -libACE_Utils -- This library contains the various ACE -container classes and other miscellaneous classes, such as Singleton, -auto_ptr, timers, etc. This library will depend only on -libACE_OS.

    - -

    o -libACE_Logging -- This library contains the various ACE -logging and tracing classes. This library will depend only on -libACE_OS.

    - -

    o -libACE_Threads -- This library contains the ACE -thread/process management and synchronization classes. This library -will depend only on libACE_OS.

    - -

    o -libACE_Demux -- This library contains the ACE Reactor and -Proactor classes. This library will depend on libACE_OS -and libACE_Thread.

    - -

    o -libACE_Connection -- This library contains the ACE -Connection components, i.e., Acceptor, Connector, and Svc_Handler. -This library will depend on libACE_OS, -libACE_Thread, and libACE_Demux.

    - -

    o -libACE_Sockets -- This library contains the ACE C++ -wrappers for sockets. This library will depend on -libACE_OS.

    - -

    o -libACE_IPC -- This library contains all the ACE C++ -wrappers for the other types of IPC and FILE I/O other than sockets. -This library will depend on libACE_OS and -libACE_Sockets.

    - -

    o -libACE_Svcconf -- This library contains the ACE C++ -wrappers for the Service Configurator. This library will depend on -libACE_OS, libACE_Demux, -libACE_Thread, and libACE_Sockets.

    - -

    o -libACE_Streams -- This library contains the ACE Streams -classes. This library will depend on libACE_OS, -libACE_Demux, and libACE_Thread.

    - -

    o -libACE_Memory -- This library contains the ACE C++ -wrappers for shared memory and memory-mapped files. This library will -depend on libACE_OS.

    - -

    -
- -In addition, we will create libACE_TAO, which contains -just the core set of components in ACE that are required to support -TAO. This library is targeted at embedded systems developers who want -to minimize the footprint of ACE+TAO. We are also planning to support -the OMG's Minimum -CORBA specification as part of a separate effort. Preliminary -results of prototypes for Minimum CORBA we've integrate to TAO have -been very promising, yielding a 40% reduction in ORB footprint.

- -Note that the ACE library subsets described above are intended as a -guideline, not a complete specification. The actual -partitioning of files in the final ACE library subsets may differ -somewhat to improve footprint and simplify common use-cases.

- -


-

Configuration Management

- -Configuration management for the ACE library subsets described above -will be organized as follows: - -
    -
  1. A single source tree with a single "version" for the source - tree.

    - -

  2. Releases of libACE and its "subsets" will be atomic, i.e., - all or nothing.

    -

- - -

-

Classes in Each ACE Library Subset

- -Below, we describe the classes in each ACE library subset. - -

libACE_OS

- -This library contains the OS adaptation layer and its supporting -classes. The classes in this library should not depend on any other -ACE library subsets. All of the other libraries will depend on this -library. The following classes are included in this library. - -

-config.h
-Basic_Types
-OS
-Sched_Params
-
- -

libACE_Utils

- -This library contains the following ACE container classes and other -miscellaneous classes. - -

-ACE 
-Active_Map_Manager 
-Arg_Shifter 
-ARGV 
-Containers 
-Dirent 
-Dynamic 
-Filecache 
-Functor 
-Get_Opt 
-Hash_Map_Manager 
-High_Res_Timer 
-Method_Request 
-Object_Manager 
-Profile_Timer 
-Registry 
-SString 
-Stats 
-System_Time 
-Time_Request_Reply 
-Timeprobe 
-Timer_Hash 
-Timer_Heap 
-Timer_List 
-Timer_Queue 
-Timer_Wheel
-LOGGING_FILES = 
-Dump 
-Log_Msg 
-Log_Record 
-Trace
-
- -

libACE_Logging

- -This library contains the various ACE logging and tracing classes. - -

-Dump 
-Log_Msg 
-Log_Record 
-Trace
-
- -

libACE_Threads

- -This library contains the ACE thread/process management and -synchronization classes. - -

-Activation_Queue 
-Process 
-Process_Manager 
-Synch 
-Synch_Options 
-Thread 
-Thread_Manager 
-Token
-
- -

libACE_Demux

- -This library contains the ACE Reactor and its associated classes, -including the ACE Connection components. - -

-Event_Handler 
-Handle_Set 
-POSIX_Proactor 
-Priority_Reactor 
-Proactor 
-Reactor 
-Select_Reactor 
-Select_Reactor_Base 
-WFMO_Reactor
-
- -

libACE_Connection

- -This library contains the ACE Connection components, i.e., Acceptor, -Connector, and Svc_Handler. - -

-Asynch_IO 
-Asynch_IO_Impl 
-POSIX_Asynch_IO 
-Strategies
-
- -

libACE_Sockets

- -This library contains the ACE C++ wrappers for sockets. - -

-IPC_SAP 
-LSOCK 
-LSOCK_Acceptor 
-LSOCK_CODgram 
-LSOCK_Connector 
-LSOCK_Dgram 
-LSOCK_Stream 
-SOCK 
-SOCK_Acceptor 
-SOCK_CODgram 
-SOCK_Connector 
-SOCK_Dgram 
-SOCK_Dgram_Bcast 
-SOCK_Dgram_Mcast 
-SOCK_IO 
-SOCK_Stream
-
- -

libACE_IPC

- -This library contains all the ACE C++ wrappers for the other types of -IPC and FILE I/O other than sockets. This library will depend on the -libACE_Socket library. - -

-Addr 
-DEV 
-DEV_Addr 
-DEV_Connector 
-DEV_IO 
-FIFO 
-FIFO_Recv 
-FIFO_Recv_Msg 
-FIFO_Send 
-FIFO_Send_Msg 
-FILE_Addr 
-FILE 
-FILE_Connector 
-FILE_IO 
-INET_Addr 
-IO_SAP 
-IOStream 
-Pipe 
-Signal 
-SPIPE_Addr 
-SPIPE 
-SPIPE_Acceptor 
-SPIPE_Connector 
-SPIPE_Stream 
-SV_Message 
-SV_Message_Queue 
-SV_Semaphore_Complex 
-SV_Semaphore_Simple 
-SV_Shared_Memory 
-TLI 
-TLI_Acceptor 
-TLI_Connector 
-TLI_Stream 
-TTY_IO 
-UNIX_Addr 
-UPIPE_Acceptor 
-UPIPE_Connector 
-UPIPE_Stream
-
- -

libACE_Svcconf

- -This library contains the ACE C++ wrappers for the Service -Configurator component. - -

-DLL 
-Parse_Node 
-Service_Config 
-Service_Manager 
-Service_Object 
-Service_Repository 
-Service_Types 
-Shared_Object 
-Svc_Conf_l 
-Svc_Conf_y
-
- -

libACE_Streams

- -This library contains the ACE Streams classes. - -

-CDR_Stream 
-Message_Block 
-Message_Queue 
-Task
-
- -

libACE_Memory

- -This library contains the ACE C++ wrappers for shared memory and -memory-mapped files. - -

-Malloc 
-Mem_Map 
-Memory_Pool 
-Obstack 
-Read_Buffer 
-Shared_Memory 
-Shared_Memory_MM 
-Shared_Memory_SV
-
- -

libACE_Token

- -This componenty contains the ACE C++ wrappers for Token classes. - -

-Local_Tokens 
-Remote_Tokens 
-Token_Collection 
-Token_Invariants 
-Token_Manager 
-Token_Request_Reply
-
- -

libACE_Other

- -This component contains miscellaneous ACE C++ wrappers. - -

-CORBA_Handler 
-CORBA_Ref 
-Local_Name_Space 
-Msg_WFMO_Reactor 
-Name_Proxy 
-Name_Request_Reply 
-Name_Space 
-Naming_Context 
-Registry_Name_Space 
-Remote_Name_Space 
-TP_Reactor 
-XtReactor
-
- -

-

Current ACE Subsetting Status

- -The following are the remaining major subsetting issues:

- -

- -Please let us know if you're able to contribute to this effort.

- - -


-

ACE Library Size Breakdown

- -Here is an example size breakdown, by ACE library component. It is -for ACE 4.6.25, statically built with these make flags: - -

-    debug=0 optimize=1 static_libs_only=1 DEFFLAGS=-DACE_USE_RCSID=0
-

- -To build an ACE static library, if shared libraries are the default, use -make static_libs_only=1.

- -

- - - - - - - - - - - - - - - -
Platform - Component - Total - For TAO
subset -
OS - Utils - Logging - Threads - Demux - Con-
nection -
Sockets - IPC - Svcconf - Streams - Memory - Token - Other -
Linux (RedHat 5.2)
egcs 1.0.3 -
Size, bytes - 527445 - 395541 - 10645 - 111542 - 13783 - 54239 - 33880 - 650 - 12565 - 32391 - 91919 - 16773 - 17154 - 69346 - 62558 -
Percentage of
total size -
100 - 75 - 2 - 21 - 3 - 10 - 6 - 0 - 2 - 6 - 17 - 3 - 3 - 13 - 12 - -
LynxOS 3.0.0
g++ 2.7-97r1 -
Size, bytes - 547004 - 429944 - 17056 - 100712 - 11104 - 44548 - 45780 - 52888 - 11468 - 29184 - 84236 - 15664 - 17304 - 62312 - 54748 -
Percentage of
total size -
100 - 78 - 3 - 18 - 2 - 8 - 8 - 10 - 2 - 5 - 15 - 3 - 3 - 11 - 10 - -
SunOS5.7
egcs 1.1.1 -
Size, bytes - 587059 - 446609 - 21651 - 116410 - 14005 - 58063 - 39620 - 770 - 13719 - 40362 - 101543 - 19611 - 20855 - 75806 - 64644 -
Percentage of
total size -
100 - 76 - 4 - 20 - 2 - 10 - 7 - 0 - 2 - 7 - 17 - 3 - 4 - 13 - 11 - -
SunOS 5.5.1
GreenHills 1.8.9 -
Size, bytes - 677237 - 527133 - 15232 - 147857 - 18336 - 64732 - 49220 - 976 - 19084 - 56662 - 109686 - 19652 - 25696 - 78792 - 71312 -
Percentage of
total size -
100 - 77 - 2 - 22 - 3 - 10 - 7 - 0 - 3 - 8 - 16 - 3 - 4 - 12 - 11 - -
SunOS 5.7
Sun C++ 4.2 -
Size, bytes - 512538 - 344815 - 13433 - 63314 - 15570 - 61947 - 58158 - 864 - 16609 - 71484 - 50155 - 17747 - 22279 - 70771 - 96952 -
Percentage of
total size -
100 - 67 - 3 - 12 - 3 - 12 - 11 - 0 - 3 - 14 - 10 - 3 - 4 - 14 - 19 - -
VxWorks 5.3.1
GreenHills 1.8.8 -
Size, bytes - 669176 - 519284 - 26248 - 143632 - 16860 - 60468 - 49964 - 868 - 18660 - 42512 - 120384 - 21444 - 19252 - 79112 - 70780 -
Percentage of
total size -
100 - 77 - 4 - 21 - 3 - 9 - 7 - 0 - 3 - 6 - 18 - 3 - 3 - 12 - 11 - -
VxWorks 5.3.1
g++ cygnus-
2.7.2-960126
- (with implicit templates) -
Size, bytes - 999608 - 742832 - 21232 - 164948 - 14752 - 66728 - 138008 - 9788 - 13116 - 108128 - 146528 - 39552 - 20052 - 108140 - 148636 -
Percentage of
total size -
100 - 74 - 2 - 17 - 1 - 7 - 14 - 1 - 1 - 11 - 15 - 4 - 2 - 11 - 15 -

- - -


-

Building ACE Subsets

- -By default, the ACE library contains all of the components that ACE -currently supports. To reduce build time and library size, you can -exclude unused components. To do that, define an -ACE_COMPONENTS variable using one of these approaches:

- -

    -
  1. In your $(ACE_ROOT)/include/makeinclude/platform_macros.GNU - file, e.g., add: -
    ACE_COMPONENTS = OS
    or

    - -

  2. On the make command line, e.g., -
    make ACE_COMPONENTS=OS
    or

    - -

  3. Set (and export) the ACE_COMPONENTS environment variable - to contain the components that you want to build.

    -

- -Please see ../ace/Makefile -for the default contents of ACE_COMPONENTS.

- -A special value of ACE_COMPONENTS can be used to -build an ACE library that supports -TAO. The -special value is FOR_TAO. So, for example, you can -add this to your -$(ACE_ROOT)/include/makeinclude/platform_macros.GNU -to restrict ACE support to just that which is needed for TAO: -


-ACE_COMPONENTS = FOR_TAO
-

- -Please note the current limitations:

- -

    -
  1. We currently don't check for interdependencies between components. - For example, if you build any component beside OS, you - must explicitly include OS in your - ACE_COMPONENTS.

    - -

  2. We currently don't check this macro in other ACE or TAO Makefiles, or - in their tests. We'll add those checks as time allows.
  3. -
- - -

-

ACE_OS Adaptation Layer

- -The lowest-level component, OS, is also called the -ACE_OS adaption layer. It provides the ACE interface to -the underlying operating system, but little else. It can be used -standalone.

- -To create the ACE_OS adaptation layer, build your libACE -with ACE_COMPONENTS set to OS. In addition, -add #include "ace/config-minimal.h" to your -ACE_wrappers/ace/config.h file.

- -When using the ACE_OS adaptation layer, you'll be limited to the -the ACE_OS member functions, ACE's -Basic_Types and -Sched_Params, and macros defined in -ace/OS.h. See ACE's -Basic_Types_Test.cpp -for an example of usage.

- -


- - - - - -Back to the ACE -home page. - - - - -- cgit v1.2.1