summaryrefslogtreecommitdiff
path: root/TAO/docs/libraries.html
blob: a07553476c8b34aa51349b3870acf44ac13eed99 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
<!-- $Id$ -->
<HTML>

<HEAD>
     <TITLE>TAO libraries.</TITLE>       
</HEAD>

<BODY text = "#000000"
link="#000fff"
vlink="#ff0f0f"
bgcolor="#ffffff">

<HR><P><H3 ALIGN=CENTER>Libraries in TAO</H3></P>

<H3>Overview</H3>

As part of the <a href="minimumTAO.html">subsetting effort</a> to
reduce footprint of applications using TAO, we have created different
libraries that house various CORBA features, such the POA and
DynamicAny.  This design helps minimize application footprint, only
linking in features that are required.  However, applications must
link in the libraries they need.  It is possible to load most of these
libraries dynamically using the ACE Service Configurator framework,
though this will not work for statically linked executables.  Linking
the necessary libraries with your application is therefore the most
straightforward way to get the features you need.

<H3> List of Libraries </H3>

Here we outline the list of libraries in TAO core with the list of <a
href="../../MPC/README"> MPC </a> projects that can be used by the
application to get all the required libraries linked into the
application.  The library names in table below are the ones created on
UNIX based systems.  Windows systems have a slightly different naming
convention, e.g., the PortableServer library is named as
PortableServerd.lib and PortableServerd.dll. But for the naming
conventions used on different platforms, the contents of the libraries
and the dependencies outlined below are the same. <P>

<table width="75%" border=1>
    <caption><b>List of CORE Libraries in TAO<P></B></caption>
 <thead>
   <tr valign=top >
   <th>Name of the Library
   <th>Feature
   <th> MPC project to use
   </tr>
 </thead>
 <tbody>
   <tr align=left>
   <th>libTAO.so</th>
   <td> All the core features for a client and server side ORB. The
    list includes support for IIOP, invocation framework,
    wait strategies for transports, leader-follower framework,
    thread pools and thread-per-connection framework,
    portable interceptors, CORBA Any's, CORBA Policy framework,
    CDR framework  etc. </td>
   <td>taoclient.mpb for simple clients or tao_lib_with_idl.mpb to
    create an application library.</td>
   </tr>
   <tr align=left>
   <th>libTAO_BiDirGIOP.so</th>
   <td>Support for BiDirectional GIOP as outlined by the CORBA
    spec. Please see $TAO_ROOT/tests/BiDirectional for a simple
    test case of this feature. Applications need to <code>
    #include "tao/BiDir_GIOP/BiDirGIOP.h" </code> within their
    code to get this feature. </td>
   <td>bidir_giop.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Domain.so</th>
   <td>Support for server side skeletons for the DomainManager
    interface. </td>
   <td>No base projects available</td>
   </tr>
   <tr align=left>
   <th>libTAO_DynamicAny.so</th>
   <td>Support for DynamicAny. Please see
    $TAO_ROOT/tests/DynAny_Test for an example of how to access
    and use this library. Applications have to <code> #include
    "tao/DynamicAny/DynamicAny.h" </code> to get the right
    symbols.</td>
   <td>dynamicany.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_DynamicInterface.so</th>
   <td>Support for DII and DSI invocations. Applications have to
    <code> #include "tao/DynamicInterface/Dynamic_Adapter_Impl.h"
    </code> to get the right symbols.</td>
   <td>dynamicinterface.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_DynamicInterface.so</th>
   <td>Support for DII and DSI invocations. Applications have to
    <code> #include "tao/DynamicInterface/Dynamic_Adapter_Impl.h"
    </code> to get the right symbols.</td>
   <td>dynamicinterface.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IFR_Client.so</th>
   <td>Support for client/stub side interfaces for
    InterfaceRepository applications. Applications have to <code>
    #include "tao/IFR_Client/IFR_Client_Adapter_Impl.h" </code> to
    get the right symbols.</td> 
   <td>ifr_client.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IORInterceptor.so</th>
   <td>Support for IORInterceptor. The portable server library
    depends on the IORInterceptor library. Applications have to
    <code> #include
    "tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.h"
    </code> to get the right symbols.</td> 
   <td>iorinterceptor.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IORManipulation.so</th>
   <td>Support for IOR manipulation. The interfaces offered
    provide operations to create and multi-profile IOR's and
    other related utilities. Applications have to <code> #include
    "tao/IORManipulation/IORManip_Loader.h" </code> to get the
    right symbols.</td>  
   <td>iormanip.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_IORTable.so</th>
   <td> Any TAO server can be configured as an corbaloc
    agent. Such agents forward requests generated using a simple
    ObjectKey in a corbaloc specification to the real location of
    the object.  In TAO we implement this feature by dynamically
    (or  statically) adding a new Object Adapter to the ORB, that
    handles any sort of request. This feature is placed in this
    library. Applications have to <code> #include
    "tao/IORTable/IORTable.h" </code> to get the right
    symbols.</td>   
   <td>iortable.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Messaging.so</th>
   <td>Support for AMI and CORBA policies such as
    RoundtripTimeout and ConnectionTimeout are placed in this
    library. Applications have to <code> #include
    "tao/Messaging/Messaging.h" </code> to get the
    rightsymbols.</td>    
   <td>messaging.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_ObjRefTemplate.so</th>
   <td>Support for Object Reference Template
    specification. The portable server library depends on this
    library. </td>    
   <td>objreftemplate.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_PortableServer.so</th>
   <td>Support for POA. This library is automagically loaded by
    the ORB when the application calls resolve_intial_references
    ("RootPOA"); Just linking this library should be sufficient to
    get all the features that are required to write powerful
    servers. </td>   
   <td>taoserver.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_RTCORBA.so</th>
   <td>Support for RTCORBA client side features. Applications are
    required to <code> #include "tao/RTCORBA/RTCORBA.h" </code> to
    get the required symbols for linking. Support in this library
    is complaint with RTCORBA 1.0 spec.</td>   
   <td>rt_client.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_RTPortableServer.so</th>
   <td>Support for RTCORBA server side features. Applications are
    required to <code> #include
    "tao/RTPortableServer/RTPortableServer.h" </code> to 
    get the required symbols for linking. Support in this library
    is complaint with RTCORBA 1.0 spec.</td>   
   <td>rt_server.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_RTScheduling.so</th>
   <td>Support for RTCORBA 2.0 features. Applications are
    required to <code> #include
    "tao/RTScheduling/RTScheulding.h" </code> to 
    get the required symbols for linking. Support in this library
    is complaint with RTCORBA 2.0 spec.</td>   
   <td>rtscheduling.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_SmartProxies.so</th>
   <td>Support for <a href
    ="Smart_Proxies.html">Smartproxies</a>.</td>
   <td>smart_proxies.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Strategies.so</th>
   <td>Support for advanced resource options for the ORB that have
    been strategized into this library. Advanced resource
    categories include new transport protocols, additional
    reactors, connection purging strategies etc. Applications
    should <code> #include "tao/Strategies/advanced_resources.h"
    </code>.</td> 
   <td>strategies.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_TypeCodeFactory.so</th>
   <td>Support for TypeCodeFactory interface.</td> 
   <td>typecodefactory.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Utils.so</th>
   <td>Helper methods for that are useful for writing portable,
    exception safe application code.</td> 
   <td>utils.mpb</td>
   </tr>
   <tr align=left>
   <th>libTAO_Valuetype.so</th>
   <td>Support for object by value (OBV). Portable server and messaging depends on
    this library </td> 
   <td>valuetype.mpb</td>
   </tr>
</tr>
</table>

<hr>
<p>Back to the TAO <a href="index.html">TAO documentation page</a>.<!--#include virtual="/~schmidt/cgi-sig.html" -->
</body>

</HTML>