diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-11-21 16:13:57 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2001-11-21 16:13:57 +0000 |
commit | a941f971a10798b86905a040ffc48e466b01c724 (patch) | |
tree | 92975a866bc518550376295605bf9218a0ff01e8 /TAO | |
parent | f229d489ac12466e6722ad9375d768ad9ab226ce (diff) | |
download | ATCD-a941f971a10798b86905a040ffc48e466b01c724.tar.gz |
ChangeLogTag:Wed Nov 21 09:07:37 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu>
Diffstat (limited to 'TAO')
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 124 | ||||
-rw-r--r-- | TAO/docs/Options.html | 55 | ||||
-rw-r--r-- | TAO/docs/index.html | 2 | ||||
-rw-r--r-- | TAO/docs/minimumTAO.html | 473 | ||||
-rw-r--r-- | TAO/docs/pluggable_protocols/index.html | 96 | ||||
-rw-r--r-- | TAO/examples/OBV/Typed_Events/README | 29 | ||||
-rw-r--r-- | TAO/performance-tests/RTCorba/Oneways/Reliable/client.cpp | 14 | ||||
-rw-r--r-- | TAO/tao/Exception.h | 1 |
8 files changed, 184 insertions, 610 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index 1a669f605c0..0ab452f7f55 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,11 +1,24 @@ +Wed Nov 21 07:01:04 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu> + + * performance-tests/RTCorba/Oneways/Reliable/client.cpp (main): + Added "_LEVEL" to the enumerated literals to avoid clashes with + SunC++ 4.2. Thanks to Steve Osselton + <steve@prismtechnologies.com> for reporting the bug and + suggesting the fix. + +Fri Nov 16 10:39:52 2001 Douglas C. Schmidt <schmidt@macarena.cs.wustl.edu> + + * docs: Moved minimumTAO.html from $TAO_ROOT/docs/ to + $ACE_ROOT/docs. + Tue Nov 20 11:58:39 2001 Ossama Othman <ossama@uci.edu> * configure.in: Removed this file from the distribution. Some folks insist on - attempting to build ACE/TAO with the configure script and - reporting problems despite the fact we've explicitly disabled - it. + attempting to build ACE/TAO with the configure script and + reporting problems despite the fact we've explicitly disabled + it. Tue Nov 20 11:44:50 2001 Carlos O'Ryan <coryan@uci.edu> @@ -35,49 +48,48 @@ Mon Nov 19 21:16:35 2001 Carlos O'Ryan <coryan@uci.edu> Mon Nov 19 20:19:48 2001 Jaiganesh Balasubramanian <jai@balar.ece.uci.edu> - * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h: - * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.i: - * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp: - Modified the TAO_ECG_Mcast_EH class to handle large numbers of - multicast subscriptions. Because most OSes impose a limit on - the number of subscription that a single socket supports, we - needed to keep a collection of sockets. - Furthermore, we need to track on what socket each multicast - group is subscribed, so a map from multicast groups to sockets - is also maintained. - Using this new map we can optimize the algorithm used to remove - multicast group subscriptions, previous versions of this class - simply closed the socket, but that has been reported as too - expensive by Mark Hyett <mhyett@std.saic.com>. With this new - change the class only unsubscribes from the multicast groups no - longer needed, without closing the socket. - The changes revealed some bugs in ACE_SOCK_Dgram_Mcast, the bug - was fixed and the changes are documented in the ACE ChangeLog - file. - - * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: - * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i: - * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: - Moved the class TAO_ECG_Mcast_EH to its own file. - (See ECG_Mcast_EH.h) - - * orbsvcs/tests/EC_Mcast/EC_Mcast.h: - * orbsvcs/examples/RtEC/MCast/MCast.cpp: - Add new header file for TAO_ECG_Mcast_EH - - * orbsvcs/tests/EC_Mcast/Makefile: - * orbsvcs/examples/RtEC/MCast/Makefile: - Updated dependencies - - * orbsvcs/tests/EC_Mcast/sample.cfg: - Changed this file so users can test the support for large - numbers of multicast groups. - - * orbsvcs/orbsvcs/Makefile.RTEvent: - * orbsvcs/orbsvcs/RTEvent.bor: - * orbsvcs/orbsvcs/Event/Makefile.am: - Added a new file Event/TAO_ECG_Mcast_EH.cpp. Update - dependencies for the GNUMake makefile. + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.h: + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.i: + * orbsvcs/orbsvcs/Event/ECG_Mcast_EH.cpp: + Modified the TAO_ECG_Mcast_EH class to handle large numbers of + multicast subscriptions. Because most OSes impose a limit on + the number of subscription that a single socket supports, we + needed to keep a collection of sockets. Furthermore, we need to + track on what socket each multicast group is subscribed, so a + map from multicast groups to sockets is also maintained. + + Using this new map we can optimize the algorithm used to remove + multicast group subscriptions, previous versions of this class + simply closed the socket, but that has been reported as too + expensive by Mark Hyett <mhyett@std.saic.com>. With this new + change the class only unsubscribes from the multicast groups no + longer needed, without closing the socket. The changes revealed + some bugs in ACE_SOCK_Dgram_Mcast, the bug was fixed and the + changes are documented in the ACE ChangeLog file. + + * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.h: + * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.i: + * orbsvcs/orbsvcs/Event/EC_Gateway_UDP.cpp: + Moved the class TAO_ECG_Mcast_EH to its own file. + (See ECG_Mcast_EH.h) + + * orbsvcs/tests/EC_Mcast/EC_Mcast.h: + * orbsvcs/examples/RtEC/MCast/MCast.cpp: + Add new header file for TAO_ECG_Mcast_EH + + * orbsvcs/tests/EC_Mcast/Makefile: + * orbsvcs/examples/RtEC/MCast/Makefile: + Updated dependencies + + * orbsvcs/tests/EC_Mcast/sample.cfg: + Changed this file so users can test the support for large + numbers of multicast groups. + + * orbsvcs/orbsvcs/Makefile.RTEvent: + * orbsvcs/orbsvcs/RTEvent.bor: + * orbsvcs/orbsvcs/Event/Makefile.am: + Added a new file Event/TAO_ECG_Mcast_EH.cpp. Update + dependencies for the GNUMake makefile. Mon Nov 19 02:06:53 2001 Krishnakumar B <kitty@cs.wustl.edu> @@ -1614,8 +1626,27 @@ Wed Sep 26 15:30:31 2001 Irfan Pyarali <irfan@cs.wustl.edu> Tue Sep 25 23:45:30 2001 Irfan Pyarali <irfan@cs.wustl.edu> + * performance-tests/RTCorba/Thread_Pool/client.cpp: + + - Include tests/RTCORBA/Linear_Priority/readers.cpp to reuse + common file parsing code. This way we can removed the + get_rates() function. + +<<<<<<< ChangeLog + - Invocation priorities can either be automatically + calculated (as before) or can be explicitly specified + through the <invocation_priorities_file> option. + + * performance-tests/RTCorba/Thread_Pool/server.cpp: +======= * performance-tests/RTCorba/Thread_Pool/client.cpp: +>>>>>>> 1.4454 +<<<<<<< ChangeLog + - Include tests/RTCORBA/Linear_Priority/readers.cpp to reuse + common file parsing code. Auto lane priorities and bands + calculations were moved to readers.cpp. +======= - Include tests/RTCORBA/Linear_Priority/readers.cpp to reuse common file parsing code. This way we can removed the get_rates() function. @@ -1629,6 +1660,7 @@ Tue Sep 25 23:45:30 2001 Irfan Pyarali <irfan@cs.wustl.edu> - Include tests/RTCORBA/Linear_Priority/readers.cpp to reuse common file parsing code. Auto lane priorities and bands calculations were moved to readers.cpp. +>>>>>>> 1.4454 - Lane priorities and bands can either be automatically calculated (as before) or can be explicitly specified diff --git a/TAO/docs/Options.html b/TAO/docs/Options.html index 3e9bde9d8de..010ac9f4cf5 100644 --- a/TAO/docs/Options.html +++ b/TAO/docs/Options.html @@ -14,28 +14,41 @@ bgcolor="#ffffff"> <H3 ALIGN=CENTER>Options for TAO Components</H3> <H3>Overview</H3> -<blockquote> -<p>There are two major mechanisms to configure the behaviors of TAO. -Behaviors that are global to a process, such as those of ORB Core or -Object Adapters, are configrued through environment variables or -command line flags.</p> - -<p>Another mechanism to configure TAO is to plug in internal -implementations implementing different behaviors that an ORB uses. -Plugins are loading into an ORB by providing a <code>svc.conf</code> -file where users can specify the plugins to be loaded into the ORB and -options that are specific to each plugin. In other words, if your -program use-cases have particular characteristics, you can use the -<code>svc.conf</code> file to customize your programs and use various -optimization provided by TAO. A <code>svc.conf</code> file, however, -is not required to run TAO programs.</p> - -<P><EM>Programmer's Note:</EM> the internal structure for options is -the traditional <CODE>argc</CODE>/<CODE>argv</CODE> vector of strings -style popularized by C and Unix. By convention, an initialization -method will consume, <EM>i.e.</EM>, remove from the vector, any -options that it recognizes.</P> </blockquote> +TAO is an extremely flexible ORB that can be configured to meet a wide +range of application requirements. There are two primary mechanisms +for configuring TAO's behaviors: + +<UL> + +<LI> Configurations that are global to an ORB, such as + a Name Service IOR or the default stringified IOR + format an ORB generates, are configured via environment + variables or command-line option flags passed to the + <code>ORB_init()</code> call. The internal structure for + command-line options is the traditional + <CODE>argc</CODE>/<CODE>argv</CODE> vector of strings style + popularized by C/C++ and Unix. By convention, + <code>ORB_init()</code> will consume any options that it recognizes, + removing them from <CODE>argv</CODE>, whereas unrecognized options + will not be removed. <P> + +<LI>Users can also modify the internal behaviors of an ORB by + dynamically linking <EM>ORB plug-ins</EM>, such as client/server connection + strategies, via a <code>svc.conf</code> file. These ORB plug-ins + can be fine-tuned by specifying their options in the + <code>svc.conf</code> file. + TAO provides several default plug-ins to deploy resource management + strategies, client/server strategies, and communication protocols + that can be further customized via the + <code>svc.conf</code> file options described in this page. Advanced + users can also develop their own plug-ins to customize TAO. + A <code>svc.conf</code> file, however, is not required to run TAO + programs since TAO provides a set of built-in strategies configured for + use with common use cases. Many of the default configuratiions for + these built-in strategies can also be customized when TAO is + compiled.<p> +</UL> <HR><P> <H3><A NAME="ev">Environment Variables</A></H3> diff --git a/TAO/docs/index.html b/TAO/docs/index.html index 789e994a02a..ed1b5ea6ac7 100644 --- a/TAO/docs/index.html +++ b/TAO/docs/index.html @@ -38,7 +38,7 @@ HREF="http://www.omg.org/library/c2indx.html">CORBA</a> Documentation</h3> <td><font SIZE="+1"><dl> <dt> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> TAO <a href="rtcorba/index.html">Real-Time CORBA</a> </dt><P> - <dt> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> ACE+TAO <a HREF="minimumTAO.html">Subsetting</a></dt><p> + <dt> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> ACE+TAO <a HREF="../../docs/ACE-subsets.html">Subsetting</a></dt><p> <dt> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> TAO <a href="exceptions.html">Exception Handling</a></dt><p> <dt> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> <a HREF="Tags.html">Tags and Magic Numbers</a> </dt><P> <dt> <img alt="o" src="http://www.cs.wustl.edu/~schmidt/gifs/misc/redball.gif"> <a HREF="pluggable_protocols/index.html">Writing Pluggable Protocols</a> </dt><P> diff --git a/TAO/docs/minimumTAO.html b/TAO/docs/minimumTAO.html deleted file mode 100644 index e2a33b88125..00000000000 --- a/TAO/docs/minimumTAO.html +++ /dev/null @@ -1,473 +0,0 @@ -<!-- $Id$ --> - -<html> - <head> - <title>Minimum TAO</title> - <link rev=made href="mailto:tao-users@cs.wustl.edu"> - </head> - -<body text = "#000000" - link="#000fff" - vlink="#ff0f0f" - bgcolor="#ffffff"> - -<hr> -<p> - -<strong>Minimum TAO</strong> -<p> - -In addition to our work on <A -HREF="../../docs/ACE-subsets.html">ACE -subsetting</A>, we have also been reducing the footprint of TAO. We -are pursuing two complementary strategies to reduce TAO's footprint: - -<OL> - -<LI> <B><EM>Implicit subsetting</EM></B>, e.g., by reducing - dependencies in the TAO library so that programs need not link - unused TAO components. <P> - -<LI> <B><EM>Explicit subsetting</EM></B>, e.g., by supporting the <a -href="http://www.omg.org/cgi-bin/doc?orbos/98-08-04.pdf"><em>minimumCORBA -</em></a> specification to <a href = -"http://www.cs.wustl.edu/~schmidt/TAO.html">TAO</a>. The <em> -minimumCORBA </em> specification removes the following features from -the <a href -="http://www.omg.org/technology/documents/formal/">CORBA</a> -specification. <P> -<ul> -<li>Dynamic Skeleton Interface<br> -<li>Dynamic Invocation Interface<br> -<li>Dynamic Any<br> -<li>Interceptors<br> -<li>Interface Repository<br> -<li>Advanced POA features<br> -<li>CORBA/COM interworking<br> -</ul> -</OL> - -The implicit subsetting of TAO requires no explicit application -programmer intervention. In contrast, to minimize the footprint of -TAO explicitly, you must first <a href="../../ACE-INSTALL.html">configure</a> -ACE to support only those <a href = -"../../docs/ACE-subsets.html">components</a> -that are required by TAO. Second, you must <a href = -"../TAO-INSTALL.html">configure</a> -TAO to only support the components specified by the -<em>minimumCORBA</em> specification. The following two tables show -the footprint reduction achievable via explicit subsetting. Note that -the IDL Compiler column refers to the code required to collaborate -between the IDL compiler and the ORB, and not to the code for the IDL -compiler itself. - -<p><hr width=50% align=left> <p> - -Note: All measurement are for ACE 5.0 and TAO 1.0 using egcs-2.91.60 -on SunOS5.7<P> - -The <a -href="../../ACE-INSTALL.html#flags">make -flags</a> options used were: <P> - -<code> debug=0 optimize=1 static_libs_only=1 DEFFLAGS=-DACE_USE_RCSID=0 </code> <P> - -These options translate into:<P> -<UL> -<LI> No debugging -<LI> Optimization is set to -O2 -<LI> Static ACE and TAO libraries -<LI> Use of RCS Ids is turned off -</UL> -<p> - -To build a TAO static library, if shared libraries are the default, -use <code>make static_libs_only=1</code> (make sure to do this for -ACE, as well). If you're using recent versions of GNU GCC, you can -use the <A HREF="../../ACE-INSTALL.html#repo">-frepo</A> option, which -typically reduces the footprint by another 25 percent. <P> - -<p><hr width=50% align=left> <p> - -<center><table cellpadding=4 border=4> - <tr> - <th>Configuration - <th>Component - <th>Total - <th>OS - <th>Utils - <th>Logging - <th>Threads - <th>Demux - <th>Connection - <th>Sockets - <th>IPC - <th>Svcconf - <th>Streams - <th>Memory - <th>Token - <th>Other - <tr> - <th rowspan=2>ACE (all components) - <th>Size, bytes - <td align=center>709.5 - <td align=center>11.9 - <td align=center>115.3 - <td align=center>13.7 - <td align=center>63.0 - <td align=center>88.0 - <td align=center>68.6 - <td align=center>16.9 - <td align=center>43.0 - <td align=center>99.8 - <td align=center>21.4 - <td align=center>29.2 - <td align=center>76.0 - <td align=center>62.9 - <tr> - <th>Percentage of<br>total size - <td align=center>100 - <td align=center>1.7 - <td align=center>16.2 - <td align=center>1.9 - <td align=center>8.9 - <td align=center>12.4 - <td align=center>9.7 - <td align=center>2.4 - <td align=center>6.0 - <td align=center>14.1 - <td align=center>3.0 - <td align=center>4.1 - <td align=center>10.7 - <td align=center>8.9 - <tr> - <th rowspan=2>ACE (TAO components) - <th>Size, bytes - <td align=center>570.7 - <td align=center>11.9 - <td align=center>115.3 - <td align=center>13.7 - <td align=center>63.0 - <td align=center>88.0 - <td align=center>68.6 - <td align=center>16.9 - <td align=center>43.0 - <td align=center>99.8 - <td align=center>21.4 - <td align=center>29.2 - <td align=center>0 - <td align=center>0 - <tr> - <th>Percentage of<br>total size - <td align=center>100 - <td align=center>2.1 - <td align=center>20.2 - <td align=center>2.4 - <td align=center>11.0 - <td align=center>15.4 - <td align=center>12.0 - <td align=center>3.0 - <td align=center>7.5 - <td align=center>17.5 - <td align=center>3.7 - <td align=center>5.1 - <td align=center>0 - <td align=center>0 - <tr> - <th>Reduction - <th>% - <td align=center>19.6 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>100 - <td align=center>100 -</table></center> - -<p><hr width=50% align=left> <p> - -<center><table cellpadding=4 border=4> - <tr> - <th>Configuration - <th>Component - <th>Total - <th>POA - <th>Pluggable Protocols - <th>Default Resources - <th>Interpretive Marshaling - <th>IDL Compiler - <th>ORB Core - <th>Dynamic Any - <tr> - <th rowspan=2>Complete TAO - <th>Size, Kbytes - <td align=center>1617.2 - <td align=center>412.5 - <td align=center>281.0 - <td align=center>32.1 - <td align=center>73.4 - <td align=center>10.7 - <td align=center>595.2 - <td align=center>212.3 - <tr> - <th>Percentage of<br>total size - <td align=center>100 - <td align=center>25.5 - <td align=center>17.4 - <td align=center>2.0 - <td align=center>4.5 - <td align=center>0.7 - <td align=center>36.8 - <td align=center>13.1 - <tr> - <th rowspan=2>Minimum TAO - <th>Size, Kbytes - <td align=center>1359.2 - <td align=center>376.2 - <td align=center>281.0 - <td align=center>32.1 - <td align=center>73.4 - <td align=center>10.7 - <td align=center>585.5 - <td align=center>0.0 - <tr> - <th>Percentage of<br>total size - <td align=center>100 - <td align=center>27.7 - <td align=center>20.7 - <td align=center>2.4 - <td align=center>5.4 - <td align=center>0.8 - <td align=center>43.1 - <td align=center>0.0 - <tr> - <th>Reduction - <th>% - <td align=center>16.0 - <td align=center>8.8 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>0 - <td align=center>1.6 - <td align=center>100 -</table></center><p> - -<HR> - -<h3><a name="Status">ACE+TAO Subsetting Work in Progress</a></h3> - -We've been tracking the footprint reduction of ACE+TAO periodically -since April, 2000. All the statistics are available <A -HREF="http://doc.ece.uci.edu/Stats/">online</A>. As the result of -this prior work, we've identified various areas for improvement that -we're now addressing. For example, the following are the remaining -areas for ACE subsetting: - - <ul> - <li><EM><B>Log_Msg decoupling</EM></B> -- We have a good start on this, but it needs work - to finish. It might be easiest to make an abstract - base class, then have ACE_Log_Msg derive from it. That way - we could remove the exposure of all the #includes in Log_Msg.cpp - to applications that don't need it. Another alternative would - be to disable compilation of Log_Msg.cpp when ACE_NLOGGING is - enabled.<p> - - <li><EM><B>Higher layer interdependencies</EM></B> -- We haven't - exhaustively tested all possible combinations of subsets. It's possible - that there are interdependencies between some layers that - we haven't yet identified and removed.<p> - - <li><EM><B>Remove reliance on multiple inheritance</EM></B> -- Multiple - inheriance is only used in a few - places in ACE. This - isn't really a subsetting problem, but is necessary to - fully take advantage of optimizations available on C++ compilers for - embedded systems.<p> - </ul> - -We anticipate that these changes should reduce the default size of ACE -by around 100-200 kbytes.<P> - -As the effort to reduce TAO's footprint continues, we are planning -several modifications for TAO that should reduce the footprint for -both the full CORBA and minimum CORBA configurations by around 300-400 -Kbytes. The list below contains an estimate of the impact of each one -of these changes, along with the estimated effort to implement them. -</P> - -<P> - <TABLE CELLPADDING=4 BORDER=4> - <TR> - <TD>Component</TD><TD>Impact</TD><TD>Effort</TD> - <TD>Description</TD> - </TR> - <TR> - <TD>TAO</TD><TD>~95 Kb</TD><TD>2 weeks</TD> - <TD> - Make RT CORBA 1.0 support optional, thereby allowing CORBA-compliant - applications to link without incurring the overhead of TAO's - RT CORBA features. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD>~50 kB</TD><TD>3 weeks</TD> - <TD> - Make the CORBA Messaging components optional. - This change requires making RT-CORBA optional first. - </TD> - </TR> - <TR> - <TD>ACE</TD><TD>14 Kb</TD><TD>4 weeks</TD> - <TD> - Implement a TAO-specific Reactor. - ACE's reactor supports a number of features that TAO does not - require. Thus, a TAO-specific implementation is an important way to - reduce the footprint. - </TD> - </TR> - <TR> - <TD>ACE</TD><TD>20 Kb</TD><TD>4 weeks</TD> - <TD> - Implement a TAO-specific Service Configurator. - TAO uses the ACE Service Configurator to dynamically configure - its strategies. In many embedded applications the set of - strategies are selected at design-time, on those platforms it - would be appropriate to disable all the features to - dynamically load components into the ORB. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD>10-15 Kb</TD><TD>1-2 weeks</TD> - <TD> - Eliminate duplicate code due to instantiations of string -> - pointer maps. TAO uses several such maps, they could be replaced by a - generic version, wrapped with a fully inlined (i.e. zero - footprint) adapter for type-safety. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD>3-10 Kb</TD><TD>1-2 weeks</TD> - <TD> - Make message buffering strategies optional. - TAO supports policy extensions to control the outgoing oneway and AMI - request buffers. Those policies are not used by all - applications. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD>10 Kb</TD><TD>2 weeks</TD> - <TD> - Make support for multiple ORBs optional. - TAO can support multiple ORBs in the same process, but most - applications only require one. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD><20 Kb</TD><TD>1 weeks</TD> - <TD> - Use lower footprint alternatives to the - <CODE>ACE_Strategy_Acceptor</CODE> and - <CODE>ACE_Strategy_Connector</CODE> classes. - TAO is using the most flexible classes in ACE to implement - acceptors and connector, but does not take advantage of this - flexibility. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD>5 Kb</TD><TD>1 week</TD> - <TD> - Move the less common transport muxing and reply waiting - strategies to an optional library. - </TD> - </TR> - <TR> - <TD>ACE+TAO</TD><TD>30 Kb</TD><TD>8 weeks</TD> - <TD> - Decouple ACE (and then TAO) from the - <CODE>ACE_Thread_Manager</CODE> component. - This component is only used in the thread-per-connection - model, if we could decouple it in ACE then TAO could be - modified to only link this component when that concurrency - model is enabled. - </TD> - </TR> - <TR> - <TD>TAO</TD><TD>>50 Kb</TD><TD>6 weeks</TD> - <TD> - Move <CODE><<=</CODE> and <CODE>>>=</CODE> - operators to separate files. - Currently TAO includes nearly 500 such operators, moving them - to separate files (grouped by component?) would eliminate them - from most applications. - </TD> - </TR> - </TABLE> -</P> - -<P>In parallel with the activities described above we are pursuing -other avenues of research to find sources of rarely used or unused -code in ACE+TAO, and to modify the software to eliminate such code. -These activities include the following:</P> - -<UL> - <LI><P> - Using profiling tools, such as gprof, Quantify and True Coverage - to find unreachable code, or code only reachable in certain - applications. - </P></LI> - <LI><P> - The code TAO's IDL compiler generates for <CODE>CORBA::Any</CODE> - operators is large, so we are evaluating designs that reduce the impact of the <CODE>CORBA::Any</CODE> - type support. TAO's IDL compiler already makes that support optional. - However, for applications that require <CODE>Anys</CODE> it may be useful to separate that code - in another file to reduce the size of generated stubs and skeletons, - without losing the opportunity to use more dynamic CORBA invocation - modes. - </P></LI> - <LI><P> - The Notification Service currently depends on the Trading service to - implement the Trader Constraint Language. We are planning to break that - dependency and factor the TCL parser into a smaller library shared - by both services. - </P></LI> - <LI><P> - TAO still contains features that are rarely or never used. - Examples include the interfaces to query the well-known services and - to dynamically discover the level of security support. Those - components should only be linked (dynamically) in applications that require them. - </P></LI> - <LI><P> - The support for interceptors currently generated by the IDL compiler - can be partially refactored into common ORB code. - Moreover, we evaluating a new implementation of interceptors - that can be configured dynamically, thereby eliminating the need for - compile-time configuration flags. - </P></LI> - <LI><P> - We are planning to provide compile-time flags to eliminate certain mandatory features - in CORBA that are not used in all applications, such as IOR - parsers (corbaloc, corbaname, etc.). - </P></LI> - <LI><P> - Finally, we will perfom more code inspections to determine if template code can be - refactored into base classes and thereby shared by many objects in - the ACE+TAO implementations. - </P></LI> -</UL> - -Although we do not yet have sufficient insights to know how much -footprint reduction these activities will afford, we anticipate these -enhancements could reduce the default footprint of TAO by another -100-200 Kbytes. - -</body> -</html> diff --git a/TAO/docs/pluggable_protocols/index.html b/TAO/docs/pluggable_protocols/index.html index fbd58eaf66d..193d195dcc0 100644 --- a/TAO/docs/pluggable_protocols/index.html +++ b/TAO/docs/pluggable_protocols/index.html @@ -59,9 +59,9 @@ links that describe TAO's pluggable protocols framework, though not how to implement one: <BLOCKQUOTE> <A HREF="../releasenotes/index.html#pp">../releasenotes/index.html#pp</A><BR> -<A HREF="http://www.cs.wustl.edu/~schmidt/PfHSN.ps.gz">http://www.cs.wustl.edu/~schmidt/PfHSN.ps.gz</A><BR> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/PfHSN.pdf">http://www.cs.wustl.edu/~schmidt/PDF/PfHSN.pdf</A><BR> <A -HREF="http://www.cs.wustl.edu/~schmidt/pluggable_protocols.ps.gz">http://www.cs.wustl.edu/~schmidt/pluggable_protocols.ps.gz</A> +HREF="http://www.cs.wustl.edu/~schmidt/PDF/pluggable_protocols.pdf">http://www.cs.wustl.edu/~schmidt/PDF/pluggable_protocols.pdf</A> </BLOCKQUOTE> <P> @@ -124,9 +124,9 @@ HREF="http://www.cs.wustl.edu/~schmidt/pluggable_protocols.ps.gz">http://www.cs. <P> -<H1><A NAME="SECTION100" HREF="#TOC_SECTION100"> +<H3><A NAME="SECTION100" HREF="#TOC_SECTION100"> Overview of Implementation of Pluggable Protocols for TAO</A> -</H1> +</H3> <P> There are several basic implementation details that should be followed when @@ -136,9 +136,9 @@ section describes them. <P> -<H2><A NAME="SECTION110" HREF="#TOC_SECTION110"> +<H3><A NAME="SECTION110" HREF="#TOC_SECTION110"> The Hard Way</A> -</H2> +</H3> <P> It is possible to implement a pluggable protocol for TAO without using @@ -149,9 +149,9 @@ using existing ACE and TAO models and implementations. <P> -<H2><A NAME="SECTION120" HREF="#TOC_SECTION120"> +<H3><A NAME="SECTION120" HREF="#TOC_SECTION120"> The Path of Least Resistance</A> -</H2> +</H3> <P> TAO takes advantage of the many useful encapsulations provided by ACE. These @@ -250,9 +250,9 @@ a pluggable protocol for TAO. <P> <HR> <P> -<H1><A NAME="SECTION200" HREF="#TOC_SECTION200"> +<H3><A NAME="SECTION200" HREF="#TOC_SECTION200"> Pluggable Protocol Framework Components</A> -</H1> +</H3> <P> In order for a pluggable protocol to be usable by TAO <STRONG><EM>without</EM></STRONG> making any modifications @@ -264,9 +264,9 @@ within several components, namely the <TT>Acceptor</TT>, <TT>Connector</TT>, <P> -<H2><A NAME="SECTION210" HREF="#TOC_SECTION210"> +<H3><A NAME="SECTION210" HREF="#TOC_SECTION210"> The <TT>Acceptor</TT></A> -</H2> +</H3> <P> @@ -839,9 +839,9 @@ of TAO's pluggable protocols simply return <TT>1</TT>.</DD> <P> -<H2><A NAME="SECTION220" HREF="#TOC_SECTION220"> +<H3><A NAME="SECTION220" HREF="#TOC_SECTION220"> The <TT>Connector</TT></A> -</H2> +</H3> <P> @@ -1359,9 +1359,9 @@ and the `<TT>/</TT>' is the protocol-specific object key delimiter. <P> -<H2><A NAME="SECTION230" HREF="#TOC_SECTION230"> +<H3><A NAME="SECTION230" HREF="#TOC_SECTION230"> The <TT>Profile</TT> Object</A> -</H2> +</H3> <P> TAO <TT>Profile</TT> objects encapsulate all of the methods and members necessary @@ -1698,9 +1698,9 @@ of improved <TT>Connector</TT> table look up times.</DD> <P> -<H2><A NAME="SECTION240" HREF="#TOC_SECTION240"> +<H3><A NAME="SECTION240" HREF="#TOC_SECTION240"> The <TT>Protocol_Factory</TT> Object</A> -</H2> +</H3> <P> TAO's uses the ACE's Service Configurator implementation [<A @@ -2032,9 +2032,9 @@ static Resource_Factory "-ORBProtocolFactory UIOP_Factory" </DL> <P> -<H2><A NAME="SECTION250" HREF="#TOC_SECTION250"> +<H3><A NAME="SECTION250" HREF="#TOC_SECTION250"> The <TT>Transport</TT> Object</A> -</H2> +</H3> <P> @@ -2497,9 +2497,9 @@ TAO's existing pluggable protocols implement client-side and server-side specifi <TT>Transport</TT>s. For the most part, they can be used as references for other pluggable protocols. -<H2><A NAME="SECTION260" HREF="#TOC_SECTION260"> +<H3><A NAME="SECTION260" HREF="#TOC_SECTION260"> The <TT>Connection_Handler</TT></A> -</H2> +</H3> A <TT>Connection_Handler</TT> is simply a template instantiation of <TT>ACE_Svc_Handler<></TT> [<A HREF="#Schmidt:97c">1</A>], a service handler. <TT>ACE_Svc_Handler</TT>s provide a well-defined @@ -2535,9 +2535,9 @@ and <HR> <P> -<H1><A NAME="SECTION300" HREF="#TOC_SECTION300"> +<H3><A NAME="SECTION300" HREF="#TOC_SECTION300"> Notes From a ``Real World'' Pluggable Protocol Implementation</A> -</H1> +</H3> By Bruce Trask <<A HREF="mailto:btrask@contactsystems.com">btrask@contactsystems.com</A>> @@ -2558,35 +2558,38 @@ were: <BLOCKQUOTE> Reactor ( <A HREF="http://www.cs.wustl.edu/~schmidt/Reactor.ps.gz">PostScript</A> | -<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Reactor.pdf.gz">PDF</A> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Reactor.pdf">PDF</A> )<BR> Reactor1-93 ( <A HREF="http://www.cs.wustl.edu/~schmidt/Reactor1-93.ps.gz">PostScript</A> | -<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Reactor1-93.pdf.gz">PDF</A> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Reactor1-93.pdf">PDF</A> )<BR> Reactor2-93 ( <A HREF="http://www.cs.wustl.edu/~schmidt/Reactor2-93.ps.gz">PostScript</A> | -<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Reactor2-93.pdf.gz">PDF</A> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Reactor2-93.pdf">PDF</A> )<BR> reactor-rules ( <A HREF="http://www.cs.wustl.edu/~schmidt/reactor-rules.ps.gz">PostScript</A> | -<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/reactor-rules.pdf.gz">PDF</A> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/reactor-rules.pdf">PDF</A> )<BR> reactor-siemens ( <A HREF="http://www.cs.wustl.edu/~schmidt/reactor-siemens.ps.gz">PostScript</A> | -<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/reactor-siemens.pdf.gz">PDF</A> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/reactor-siemens.pdf">PDF</A> )<BR> Svc-Conf ( -<A HREF="http://www.cs.wustl.edu/~schmidt/Svc-Conf.ps.gz">PostScript</A> +<A +HREF="http://www.cs.wustl.edu/~schmidt/Svc-Conf.ps.gz">PostScript</A> | +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Svc-Conf.pdf">PDF</A> )<BR> Acc-Con ( <A HREF="http://www.cs.wustl.edu/~schmidt/Acc-Con.ps.gz">PostScript</A> +<A HREF="http://www.cs.wustl.edu/~schmidt/PDF/Acc-Con.pdf">PDF</A> ) </BLOCKQUOTE> <P>These are all readily available from the TAO and ACE website. @@ -2774,22 +2777,22 @@ HREF="mailto:btrask@contactsystems.com">btrask@contactsystems.com</A> <HR> <P> -<H1> +<H3> <A NAME="SECTION400" HREF="#TOC_SECTION400"> Additional Implementation Information </A> -</H1> +</H3> <P> This section covers additional information not necessarily related to TAO's pluggable protocol framework but may still be of interest to pluggable protocol and ORB developers, nevertheless. -<H2> +<H3> <A NAME="SECTION410" HREF="#TOC_SECTION410"> Tags </A> -</H2> +</H3> Tags are used to uniquely identify certain parts of an ORB, including the following: @@ -2821,9 +2824,9 @@ Information about tags used in TAO is available <HR> <P> -<H1><A NAME="SECTION500" HREF="#TOC_SECTION500"> +<H3><A NAME="SECTION500" HREF="#TOC_SECTION500"> Using a Pluggable Protocol</A> -</H1> +</H3> <P> Once a TAO pluggable protocol is implemented, the ORB is told to load it by @@ -2908,12 +2911,12 @@ All ORB options are described <A HREF="../Options.html">here</A>. <HR> <P> -<H2><A NAME="SECTION600" HREF="#TOC_SECTION600"> +<H3><A NAME="SECTION600" HREF="#TOC_SECTION600"> Bibliography</A> -</H2><DL COMPACT><DD><P></P><DT><A NAME="Schmidt:97c">1</A> +</H3><DL COMPACT><DD><P></P><DT><A NAME="Schmidt:97c">1</A> <DD> D. C. Schmidt, -``<A HREF=http://www.cs.wustl.edu/~schmidt/Acc-Con.ps.gz> +``<A HREF=http://www.cs.wustl.edu/~schmidt/PDF/Acc-Con.pdf> Acceptor and Connector: Design Patterns for Initializing Communication Services</A>,'' in <EM> Pattern Languages of Program Design</EM> @@ -2923,7 +2926,7 @@ D. C. Schmidt, <P></P><DT><A NAME="Schmidt:97e">2</A> <DD> C. Cleeland, D. C. Schmidt and T. Harrison, -``<A HREF=http://www.cs.wustl.edu/~schmidt/External-Polymorphism.ps.gz> +``<A HREF=http://www.cs.wustl.edu/~schmidt/PDF/External-Polymorphism.pdf> External Polymorphism -- An Object Structural Pattern for Transparently Extending Concrete Data Types</A>,'' in <EM> Pattern Languages of Program Design</EM> @@ -2933,7 +2936,7 @@ C. Cleeland, D. C. Schmidt and T. Harrison, <P></P><DT><A NAME="Schmidt:94k">3</A> <DD> D. C. Schmidt and T. Suda, - ``<A HREF=http://www.cs.wustl.edu/~schmidt/DSEJ-94.ps.gz> + ``<A HREF=http://www.cs.wustl.edu/~schmidt/PDF/DSEJ-94.pdf> An Object-Oriented Framework for Dynamically Configuring Extensible Distributed Communication Systems</A>,'' <EM> IEE/BCS Distributed Systems Engineering Journal (Special Issue on Configurable @@ -2947,14 +2950,15 @@ H. Hueni, R. Johnson, and R. Engel, ``A Framework for Network Protocol <P></P><DT><A NAME="Buschmann:95b">5</A> <DD> -F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, <EM> Pattern-Oriented Software Architecture - A System of Patterns</EM>. -<BR>Wiley and Sons, 1996. +F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad, and M. Stal, <A +HREF="http://www.cs.wustl.edu/~schmidt/POSA/>Pattern-Oriented Software +Architecture - A System of Patterns</EM>. <BR>Wiley and Sons, 1996. <P></P><DT><A NAME="Schmidt:99x">6</A> <DD> Carlos O'Ryan, Fred Kuhns, Douglas C. Schmidt, Ossama Othman, and Jeff Parsons, <A -HREF="http://www.cs.wustl.edu/~schmidt/pluggable_protocols.ps.gz"> The +HREF="http://www.cs.wustl.edu/~schmidt/PDF/pluggable_protocols.pdf"> The Design and Performance of a Pluggable Protocols Framework for Real-time Distributed Object Computing Middleware</A>, Proceedings of the IFIP/ACM <A @@ -2963,7 +2967,7 @@ Conference, Pallisades, New York, April 3-7, 2000. <P> <P></P><DT><A NAME="Schmidt:99c">7</A> <DD> Fred Kuhns, Carlos O'Ryan, Douglas C. Schmidt, Ossama Othman, and Jeff Parsons, <A -HREF="http://www.cs.wustl.edu/~schmidt/PfHSN.ps.gz">The Design and +HREF="http://www.cs.wustl.edu/~schmidt/PDF/PfHSN.pdf">The Design and Performance of a Pluggable Protocols Framework for Object Request Broker Middleware,</A> Proceedings of the <A HREF="http://www.isi.edu/pfhsn99/call.html">IFIP Sixth International @@ -2986,7 +2990,7 @@ examples of the Layers architecture. <ADDRESS><a href="mailto:ossama@uci.edu">Ossama Othman</a></ADDRESS> <!-- Created: Tue Dec 14 16:53:58 CST 1999 --> <!-- hhmts start --> -Last modified: Sat May 19 17:18:30 CDT 2001 +Last modified: Mon Nov 19 07:56:38 CST 2001 <!-- hhmts end --> </BODY> </HTML> diff --git a/TAO/examples/OBV/Typed_Events/README b/TAO/examples/OBV/Typed_Events/README index 77b3950e13f..effdc9c9a7e 100644 --- a/TAO/examples/OBV/Typed_Events/README +++ b/TAO/examples/OBV/Typed_Events/README @@ -5,23 +5,22 @@ Typed Events This is a demonstration of the CORBA 2.3 valuetype feature. Event_Types.idl defines a hierarchy of event classes. The common -attributes (indeed not CORBA attributes, they're state members) -like creation time and id of the origin are in a base class. -Concrete events like Temperature, Position and Log Message are derived -from this class. +attributes (indeed not CORBA attributes, they're state members) like +creation time and id of the origin are in a base class. Concrete +events like Temperature, Position and Log Message are derived from +this class. The client sends a few random events to the server. The server has -suitable implementations of the event classes. So it is able to -show the incoming events by invoking the do_print () operation, which is -declared in the Event baseclass. -After that the server does an "alarm" check on the event. -For each possible origin id (KITCHEN, BATHROOM) a criterion has been -registered. The criterion which equals the origin id of the event is -searched and then asked with is_critical (event). - -Finally a list with all the events which causes an alarm is -requested by the client. - +suitable implementations of the event classes. So it is able to show +the incoming events by invoking the do_print () operation, which is +declared in the Event baseclass. After that the server does an +"alarm" check on the event. For each possible origin id (KITCHEN, +BATHROOM) a criterion has been registered. The criterion which equals +the origin id of the event is searched and then asked with is_critical +(event). + +Finally a list with all the events which causes an alarm is requested +by the client. Start with: diff --git a/TAO/performance-tests/RTCorba/Oneways/Reliable/client.cpp b/TAO/performance-tests/RTCorba/Oneways/Reliable/client.cpp index bf5c8550509..a1520f73cc6 100644 --- a/TAO/performance-tests/RTCorba/Oneways/Reliable/client.cpp +++ b/TAO/performance-tests/RTCorba/Oneways/Reliable/client.cpp @@ -47,7 +47,7 @@ inline int QuantifyStopRecordingData () static const char *ior = "file://test.ior"; // Levels at which syncscope policy can be set. -enum LEVEL {ORB, THREAD, OBJECT}; +enum LEVEL {ORB_LEVEL, THREAD_LEVEL, OBJECT_LEVEL}; // Default is OBJECT level. static LEVEL level = OBJECT; @@ -318,11 +318,11 @@ parse_args (int argc, char *argv[]) char *tmp = get_opts.optarg; if (!ACE_OS::strcmp (tmp, "orb")) - level = ORB; + level = ORB_LEVEL; else if (!ACE_OS::strcmp (tmp, "thread")) - level = THREAD; + level = THREAD_LEVEL; else if (!ACE_OS::strcmp (tmp, "object")) - level = OBJECT; + level = OBJECT_LEVEL; else error = 1; break; @@ -497,7 +497,7 @@ main (int argc, char *argv[]) switch (level) { - case ORB: + case ORB_LEVEL: // Set the sync scope policy at the ORB level. policy_manager->set_policy_overrides (sync_scope_policy_list, CORBA::ADD_OVERRIDE, @@ -505,7 +505,7 @@ main (int argc, char *argv[]) ACE_TRY_CHECK; break; - case THREAD: + case THREAD_LEVEL: // Set the sync scope policy at the thread level. policy_current->set_policy_overrides (sync_scope_policy_list, CORBA::ADD_OVERRIDE, @@ -513,7 +513,7 @@ main (int argc, char *argv[]) ACE_TRY_CHECK; break; - case OBJECT: + case OBJECT_LEVEL: // Set the sync scope policy at the object level. obj = server->_set_policy_overrides (sync_scope_policy_list, CORBA::ADD_OVERRIDE, diff --git a/TAO/tao/Exception.h b/TAO/tao/Exception.h index 3b35fe3b406..8ed69d8107c 100644 --- a/TAO/tao/Exception.h +++ b/TAO/tao/Exception.h @@ -13,7 +13,6 @@ */ //============================================================================= - #ifndef TAO_EXCEPTION_H #define TAO_EXCEPTION_H #include "ace/pre.h" |