diff options
Diffstat (limited to 'TAO/docs/compiler.html')
-rw-r--r-- | TAO/docs/compiler.html | 450 |
1 files changed, 0 insertions, 450 deletions
diff --git a/TAO/docs/compiler.html b/TAO/docs/compiler.html deleted file mode 100644 index 55bc25888a9..00000000000 --- a/TAO/docs/compiler.html +++ /dev/null @@ -1,450 +0,0 @@ -<!doctype html public "-//w3c//dtd html 4.0 transitional//en"> -<html> -<head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <meta name="GENERATOR" content="Mozilla/4.5 [en] (X11; I; SunOS 5.5.1 sun4u) [Netscape]"> - <title>TAO IDL compiler User's Guide</title> -<!-- $Id$ --> -</head> -<body text="#000000" bgcolor="#FFFFFF" link="#0000FF" vlink="#CC0000"> - -<hr> -<h3> -TAO IDL compiler User's Guide</h3> - -<h2> Scope</h2> This document describes the options and features of -TAO IDL compiler. It is not a reference manual or tutorial on OMG -IDL. For more information on OMG IDL see the <A -HREF="http://www.omg.org/library/c2indx.html">online CORBA -specification</A> and the <A -HREF="http://www.triodia.com/staff/michi-henning.html">Advanced CORBA -Programming with C++</A> book. <P> - -<HR><P> -<h3>Generated Files</h3> - -The IDL compiler generates 9 files from each <tt>.idl</tt> file. The -file names are obtained by taking the IDL <EM>basename</EM> and -appending the following suffixes (see the list of TAO's IDL compiler -<A HREF="#options">options</A> on how to get different suffixes for -these files:) <P> - -<UL> -<LI> <EM>Client stubs</EM> -- <tt>*C.h</tt>, <tt>*C.i</tt>, and <tt>*C.cpp</tt> -<LI> <EM>Server skeletons</EM> -- <tt>*S.h</tt>, <tt>*S.i</tt>, and -<tt>*S.cpp</tt> -<LI> <EM>Server skeleton templates </EM> -- <tt>*S_T.h</tt>, <tt>S_T.i</tt>, -and <tt>*S_T.cpp</tt> -</UL> - -TAO's IDL compiler creates separate <TT>*.i</TT> and <TT>*S_T.*</TT> -files to improve the performance of the generated code. Fortunately, -you only need to <CODE>#include</CODE> the client stubs declared in -the <tt>*C.h</tt> file and the skeletons in the <tt>*S.h</tt> file in -your code. <P> - -<HR><P> -<h3> -Operation Demuxing Strategies</h3> - -The server skeleton can use different demuxing strategies to match the -incoming operation with the correct operation at the servant. TAO's -IDL compiler supports perfect hashing, binary search, and dynamic -hashing demuxing strategies. By default, TAO's IDL compiler tries to -generate perfect hash functions, which is generally the most <A -HREF="http://www.cs.wustl.edu/~schmidt/COOTS-99.ps.gz">efficient and -predictable operation demuxing technique</A>. To generate perfect -hash functions, TAO's IDL compiler uses <a -href="http://www.cs.wustl.edu/~schmidt/gperf.ps.gz">gperf </a>, which -is a general-purpose perfect hash function generator. <P> - -To configure TAO's IDL compiler to support perfect hashing please do -the following: - -<ul> -<LI> Enable <CODE>ACE_HAS_GPERF</CODE> when building ACE and TAO. -This macro has been defined for the platforms where <CODE>gperf</CODE> -has been tested, which includes most <A -HREF="http://www.cs.wustl.edu/~schmidt/ACE-versions-i.html">platforms</A> -that ACE runs on. <P> - -<li> Build the <CODE>gperf</CODE> in $ACE_ROOT/apps/gperf. This build -also leaves a copy/link of the gperf program at the $ACE_ROOT/bin -directory.<P> - -<li> Set the environment variable $ACE_ROOT appropriately or add -$ACE_ROOT/bin to your search path. <P> - -<li> Use the <CODE>-g</CODE> option for the TAO IDL compiler or set -your search path accordingly to install <CODE>gperf</CODE> in a -directory other than $ACE_ROOT/bin. -</ul> - -Note that if you can't use perfect hashing for some reason the next -best operation demuxing strategy is binary search, which can be -configured using TAO's IDL compiler <A HREF="#options">options</A>.<P> - -<HR><P> -<h3><A NAME="options">TAO's IDL Compiler Options</A></h3> - -TAO's IDL compiler invokes your <tt>C</tt> (or <tt>C++</tt>) -preprocessor to resolve included IDL files. It receives the common -options for preprocessors (such as <tt>-D</tt> or <tt>-I</tt>). It -also receives other options that are specific to it. <P> - -<table BORDER=2 CELLSPACING=2 CELLPADDING=0 > -<tr> -<th>Option</th> - -<th>Description</th> -</tr> -<tr NAME="u"> -<td><tt>-u</tt></td> - -<td>The compiler prints out the options that are given below and exits -clean </td> -</tr> - -<tr NAME="V"> -<td><tt>-V</tt></td> - -<td>The compiler printouts its version and exits</td> -</tr> - -<tr NAME="Wb"> -<td><tt>-Wb,</tt><i>option_list</i></EM</TD></td> - -<td>Pass options to the TAO IDL compiler backend.</td> -</tr> - -<tr NAME="export_macro"> -<td></td> - -<td><tt>export_macro=</tt><i>macro_name</i></td> - -<td>The compiler will emit <i>macro_name</i> right after each <tt>class</tt> -or <tt>extern</tt> keyword, this is needed for Windows/NT that requires -special directives to export symbols from DLLs, usually the definition -is just a space on unix platforms. </td> -</tr> - -<tr NAME="export_include"> -<td></td> - -<td><tt>export_include=</tt><i>include_path</i></td> - -<td>The compiler will generate code to include <i>include_path</i> at the -top of the client header, this is usually a good place to define the export -macro.</td> -</tr> - -<tr NAME="pch_include"> -<td></td> - -<td><tt>pch_include=</tt><i>include_path</i></td> - -<td>The compiler will generate code to include <i>include_path</i> at the -top of all TAO IDL compiler generated files. This can be used with a -precompiled header mechanism, such as those provided by Borland -C++Builder or MSVC++.</td> -</tr> - -<tr NAME="E"> -<td><tt>-E</tt></td> - -<td>Only invoke the preprocessor</td> -</tr> - -<tr NAME="Wp"> -<td><tt>-Wp,</tt><i>option_list</i></EM</TD></td> - -<td>Pass options to the preprocessor.</td> -</tr> - -<tr NAME="D"> -<td><tt>-D</tt><i>macro_definition</i></td> - -<td>It is passed to the preprocessor</td> -</tr> - -<tr NAME="U"> -<td><tt>-U</tt><i>macro_name</i></td> - -<td>It is passed to the preprocessor</td> -</tr> - -<tr NAME="I"> -<td><tt>-I</tt><i>include_path</i></td> - -<td>It is passed to the preprocessor</td> -</tr> - -<tr NAME="A"> -<td><tt>-A</tt><i>assertion</i></td> - -<td>It is passed to the preprocessor</td> -</tr> - -<tr NAME="Y"> -<td><tt>-Y</tt></td> - -<td>It is passed to the preprocessor</td> -</tr> - -<tr NAME="H perfect_hash"> -<td><tt>-H perfect_hash</tt></td> - -<td>To specify the IDL compiler to generate skelton code that uses perfect -hashed operation demuxing strategy, which is the default strategy. Perfect -hashing uses <a href="http://www.cs.wustl.edu/~schmidt/gperf.ps.gz">gperf -</a>program, -to generate demuxing methods. </td> -</tr> - -<tr NAME="H dynamic_hash"> -<td><tt>-H dynamic_hash</tt></td> - -<td>To specify the IDL compiler to generate skelton code that uses dynamic -hashed operation demuxing strategy. </td> -</tr> - -<tr NAME="H binary_search"> -<td><tt>-H binary_search</tt></td> - -<td>To specify the IDL compiler to generate skelton code that uses binary -search based operation demuxing strategy. </td> -</tr> - -<tr NAME="H linear_search"> -<td><tt>-H linear_search</tt></td> - -<td>To specify the IDL compiler to generate skelton code that uses linear -search based operation demuxing strategy. Note that this option is for testing purposes only and should not be used for production code since it's inefficient.</td> -</tr> - - -<tr NAME="in"> -<TD><TT>-in</TT></TD> -<TD> To generate #include statements with <>'s for the standard - include files (e.g. tao/corba.h) indicating them as non-changing - files</TD> -</TR> - - -<TR NAME="ic"> -<TD><TT>-ic</TT></TD> -<TD> To generate #include statements with ""s for changing - standard include files (e.g. tao/corba.h). </TD> -</TR> - -<tr NAME="g"> -<td><tt>-g</tt></td> - -<td>To specify the path for the perfect hasing program (GPERF). Default -is $ACE_ROOT/bin/gperf. </td> -</tr> - -<tr NAME="o"> -<td><tt>-o</tt></td> - -<td>To specify the output directory to IDL compiler as to where all the -IDL-compiler-generated files are to be put. By default, all the files are -put in the current directory from where <tao_idl>is called. </td> -</tr> - -<tr NAME="hc"> -<td><tt>-hc</tt></td> - -<td>Client's header file name ending. Default is "C.h".</td> -</tr> - -<tr NAME="hs"> -<td><tt>-hs</tt></td> - -<td>Server's header file name ending. Default is "S.h".</td> -</tr> - -<tr NAME="hT"> -<td><tt>-hT</tt></td> - -<td>Server's template header file name ending. Default is "S_T.h".</td> -</tr> - -<tr NAME="cs"> -<td><tt>-cs</tt></td> - -<td>Client stub's file name ending. Default is "C.cpp".</td> -</tr> - -<tr NAME="ci"> -<td><tt>-ci</tt></td> - -<td>Client inline file name ending. Default is "C.i".</td> -</tr> - -<tr NAME="ss"> -<td><tt>-ss</tt></td> - -<td>Server skeleton file name ending. Default is "S.cpp".</td> -</tr> - -<tr NAME="sT"> -<td><tt>-sT</tt></td> - -<td>Server template skeleton file name ending. Default is "S_T.cpp".</td> -</tr> - -<tr NAME="si"> -<td><tt>-si</tt></td> - -<td>Server inline skeleton file name ending. Default is "S.i".</td> -</tr> - -<tr NAME="st"> -<td><tt>-st</tt></td> - -<td>Server's template inline file name ending. Default is "S_T.i".</td> -</tr> - -<tr NAME="t"> -<td><tt>-t</tt></td> - -<td>Temporary directory to be used by the IDL compiler. Default : - Resolve ACE_DEFAULT_TEMP_DIR_ENV. If it is not defined, choose - /tmp/. -</td> -</tr> - -<tr NAME="Cw"> -<td><tt>-Cw</tt></td> - -<td>Output a warning if two identifiers in the same scope differ in -spelling only by case (default for now).</td> -</tr> - -<tr NAME="Ce"> -<td><tt>-Ce</tt></td> - -<td>Output an error if two indentifiers in the same scope differ in -spelling only by case. Default output is warning (for now).</td> - -<td>Since there is at least one OMG IDL file (sfp.idl, part of the -AVStreams specification) that is inconsistent with its own spelling -rule, we have made a warning the default output until the issue -is resolved.</td> -</tr> - -<tr NAME="Gc"> -<td><tt>-Gc</tt></td> - -<td>Generate stubs and skeletons using compiled marshaling </td> -</tr> - -<tr NAME="Gi"> -<td><tt>-Gi</tt></td> - -<td>Generate stubs and skeletons using interpretive marshaling (default -for now) </td> -</tr> - -<tr NAME="Ge flag"> -<td><tt>-Ge </tt><i>flag</i></td> - -<td>If the value of the flag is 0, tao_idl will generate code that - will use native C++ exceptions. If the value of the flag is 1, - tao_idl will generate code that will use environment variable for - passing exceptions </td> -</tr> - -<tr NAME="Gp"> -<td><tt>-Gp </tt></td> - -<td>Generated collocated stubs that use <code>Thru_POA</code> collocation strategy (default)</td> -</tr> - -<tr NAME="Gd"> -<td><tt>-Gd </tt></td> - -<td>Generated collocated stubs that use <code>Direct</code> collocation strategy</td> -</tr> - -<tr NAME="Gt"> -<td><tt>-Gt</tt></td> - -<td>Generate optimized TypeCodes (unimplemented as yet)</td> -</tr> - -<tr NAME="Gv"> -<td><tt>-Gv</tt></td> - -<td>Generate code that suppports Object-By-Value</td> -</tr> - -<tr> -<td>-<tt>GI</tt></td> - -<td>Generate templates files for the servant implementation </td> -</tr> - -<tr> -<td><tt>-GIh </tt><i>arg</i></td> - -<td>Servant implemenation header file name ending</td> -</tr> - -<tr> -<td><tt>-GIs </tt><i>arg</i></td> - -<td>Servant implemenation skeleton file name ending</td> -</tr> - -<tr> -<td><tt>-GIb </tt><i>arg</i></td> - -<td>Prefix to the implementation class names</td> -</tr> - -<tr> -<td><tt>-GIe </tt><i>arg</i></td> - -<td>Suffix to the implementation class names</td> -</tr> - -<tr> -<td><tt>-GIc </tt><i>arg</i></td> - -<td>Generate copy constructors in the servant implementation template files</td> -</tr> - -<tr NAME="Sa"> -<td><tt>-Sa</tt></td> - -<td>Suppress generation of the Any operators</td> -</tr> - -<tr NAME="Sp"> -<td><tt>-Sa</tt></td> - -<td>Suppress generation of collocated stubs that use <code>Thru_POA</code> collocation strategy</td> -</tr> - -<tr NAME="Sd"> -<td><tt>-Sd</tt></td> - -<td>Suppress generation of collocated stubs that use <code>Direct</code> collocation strategy (default)</td> -</tr> - -<tr NAME="St"> -<td><tt>-St</tt></td> - -<td>Suppress generation of the TypeCodes</td> -</tr> -</table> <P> - -<P><HR><P> -Back to the TAO <A HREF="index.html">documentation</A>. - -<!--#include virtual="/~schmidt/cgi-sig.html" --> - -</body> -</html> |