Merge pull request #2222 from jwillemsen/jwi-dllexportwarning
[ACE_TAO.git] / TAO / docs / libraries.html
blobd2fcce045dfa5db33682632dca150ca8ded5c59b
1 <!-- -->
2 <HTML>
4 <HEAD>
5 <TITLE>TAO libraries.</TITLE>
6 </HEAD>
8 <BODY text = "#000000"
9 link="#000fff"
10 vlink="#ff0f0f"
11 bgcolor="#ffffff">
13 <HR><P><H3 ALIGN=CENTER>Libraries in TAO</H3></P>
15 <H3>Overview</H3>
17 As part of the <a href="minimumTAO.html">subsetting effort</a> to
18 reduce footprint of applications using TAO, we have created different
19 libraries that house various CORBA features, such the POA and
20 DynamicAny. This design helps minimize application footprint, only
21 linking in features that are required. However, applications must
22 link in the libraries they need. It is possible to load most of these
23 libraries dynamically using the ACE Service Configurator framework,
24 though this will not work for statically linked executables. Linking
25 the necessary libraries with your application is therefore the most
26 straightforward way to get the features you need.
28 <H3> List of Libraries </H3>
30 Here we outline the list of libraries in TAO core with the list of <a
31 href="../../MPC/docs/README"> MPC </a> projects that can be used by the
32 application to get all the required libraries linked into the
33 application. The library names in table below are the ones created on
34 UNIX based systems. Windows systems have a slightly different naming
35 convention, e.g., the PortableServer library is named as
36 PortableServerd.lib and PortableServerd.dll. But for the naming
37 conventions used on different platforms, the contents of the libraries
38 and the dependencies outlined below are the same. <P>
40 <table width="75%" border=1>
41 <caption><b>List of CORE Libraries in TAO<P></B></caption>
42 <thead>
43 <tr valign=top >
44 <th>Name of the Library
45 <th>Feature
46 <th> MPC project to use
47 </tr>
48 </thead>
49 <tbody>
50 <tr align=left>
51 <th>libTAO.so</th>
52 <td> All the core features for a client and server side ORB. The
53 list includes support for IIOP, invocation framework,
54 wait strategies for transports, leader-follower framework,
55 thread pools and thread-per-connection framework,
56 portable interceptors, CORBA Any's, CORBA Policy framework,
57 CDR framework etc. </td>
58 <td>taoclient.mpb for simple clients or tao_lib_with_idl.mpb to
59 create an application library.</td>
60 </tr>
61 <tr align=left>
62 <th>libTAO_AnyTypeCode.so</th>
63 <td>Library with all the TypeCode and Any support. If you use
64 the anytypecode base project the IDL compiler flags -Sa and
65 -St are removed from the default idl flags.
66 <td>anytypecode.mpb</td>
67 </tr>
68 <tr align=left>
69 <th>libTAO_Async_IORTable.so</th>
70 <td>See libTAO_IORTable.so below for more info. This is a specialization
71 of the TAO_IORTable that allows for AMH-compatible locator use when
72 resolving CORBALOC references. See the INS_Locator portion of the
73 TAO Implementation Repository as an example of use. Applications
74 have to <code> #include "tao/IORTable/Async_IORTable.h" </code> to get
75 the right symbols.</td>
76 <td>iortable.mpb</td>
77 </tr>
78 <tr align=left>
79 <th>libTAO_BiDirGIOP.so</th>
80 <td>Support for BiDirectional GIOP as outlined by the CORBA
81 spec. Please see $TAO_ROOT/tests/BiDirectional for a simple
82 test case of this feature. Applications need to <code>
83 #include "tao/BiDir_GIOP/BiDirGIOP.h" </code> within their
84 code to get this feature. </td>
85 <td>bidir_giop.mpb</td>
86 </tr>
87 <tr align=left>
88 <th>libTAO_CodecFactory.so</th>
89 <td>Support for CodecFactory as outlined by the CORBA
90 spec. Please see $TAO_ROOT/tests/Codec for a simple
91 test case of this feature. Applications need to <code>
92 #include "tao/CodecFactory/CodecFactory.h" </code> within their
93 code to get this feature. </td>
94 <td>codecfactory.mpb</td>
95 </tr>
96 <tr align=left>
97 <th>libTAO_Domain.so</th>
98 <td>Support for server side skeletons for the DomainManager
99 interface. </td>
100 <td>No base projects available</td>
101 </tr>
102 <tr align=left>
103 <th>libTAO_DynamicAny.so</th>
104 <td>Support for DynamicAny. Please see
105 $TAO_ROOT/tests/DynAny_Test for an example of how to access
106 and use this library. Applications have to <code> #include
107 "tao/DynamicAny/DynamicAny.h" </code> to get the right
108 symbols.</td>
109 <td>dynamicany.mpb</td>
110 </tr>
111 <tr align=left>
112 <th>libTAO_DynamicInterface.so</th>
113 <td>Support for DII and DSI invocations. Applications have to
114 <code> #include "tao/DynamicInterface/Dynamic_Adapter_Impl.h"
115 </code> to get the right symbols.</td>
116 <td>dynamicinterface.mpb</td>
117 </tr>
118 <tr align=left>
119 <th>libTAO_EndpointPolicy.so</th>
120 <td>Support for the TAO-specific Endpoint Policy. This is used
121 to set up constraints on endpoints placed in IORs. The endpoint
122 policy is applied to a POAManager via the POAManagerFactory and
123 affects all POAs associated with that manager. Examples of use
124 are in $TAO_ROOT/tests/POA/EndpointPolicy. Applications have to
125 <code> #include "tao/EndpointPolicy/EndpointPolicy.h" </code> to
126 get the right symbols.</td>
127 <td>endpointpolicy.mpb</td>
128 </tr>
129 <tr align=left>
130 <th>libTAO_IFR_Client.so</th>
131 <td>Support for client/stub side interfaces for
132 InterfaceRepository applications. Applications have to <code>
133 #include "tao/IFR_Client/IFR_Client_Adapter_Impl.h" </code> to
134 get the right symbols.</td>
135 <td>ifr_client.mpb</td>
136 </tr>
137 <tr align=left>
138 <th>libTAO_ImR_Client.so</th>
139 <td>Support for applications that want to register itself to
140 the Implementation Repository. Applications have to <code>
141 #include "tao/ImR_Client/ImR_Client.h" </code> to
142 get the right symbols.</td>
143 <td>imr_client.mpb</td>
144 </tr>
145 <tr align=left>
146 <th>libTAO_IORInterceptor.so</th>
147 <td>Support for IORInterceptor. The portable server library
148 depends on the IORInterceptor library. Applications have to
149 <code> #include
150 "tao/IORInterceptor/IORInterceptor_Adapter_Factory_Impl.h"
151 </code> to get the right symbols.</td>
152 <td>iorinterceptor.mpb</td>
153 </tr>
154 <tr align=left>
155 <th>libTAO_IORManipulation.so</th>
156 <td>Support for IOR manipulation. The interfaces offered
157 provide operations to create and multi-profile IOR's and
158 other related utilities. Applications have to <code> #include
159 "tao/IORManipulation/IORManip_Loader.h" </code> to get the
160 right symbols.</td>
161 <td>iormanip.mpb</td>
162 </tr>
163 <tr align=left>
164 <th>libTAO_IORTable.so</th>
165 <td> Any TAO server can be configured as an corbaloc
166 agent. Such agents forward requests generated using a simple
167 ObjectKey in a corbaloc specification to the real location of
168 the object. In TAO we implement this feature by dynamically
169 (or statically) adding a new Object Adapter to the ORB, that
170 handles any sort of request. This feature is placed in this
171 library. Applications have to <code> #include
172 "tao/IORTable/IORTable.h" </code> to get the right
173 symbols.</td>
174 <td>iortable.mpb</td>
175 </tr>
176 <tr align=left>
177 <th>libTAO_Messaging.so</th>
178 <td>Support for AMI and CORBA policies such as
179 RoundtripTimeout and ConnectionTimeout are placed in this
180 library. Applications have to <code> #include
181 "tao/Messaging/Messaging.h" </code> to get the
182 rightsymbols.</td>
183 <td>messaging.mpb</td>
184 </tr>
185 <tr align=left>
186 <th>libTAO_ObjRefTemplate.so</th>
187 <td>Support for Object Reference Template
188 specification. The portable server library depends on this
189 library. </td>
190 <td>objreftemplate.mpb</td>
191 </tr>
192 <tr align=left>
193 <th>libTAO_PI.so</th>
194 <td>Support for Portable Interceptors. This library is automagically
195 loaded by
196 the ORB when the application uses the PolicyFactory or ORBInitializer
197 . Just linking this library should be sufficient to
198 get all the features that are required to write applications
199 using portable interceptors. </td>
200 <td>pi.mpb</td>
201 </tr>
202 <tr align=left>
203 <th>libTAO_PortableServer.so</th>
204 <td>Support for POA. This library is automagically loaded by
205 the ORB when the application calls resolve_initial_references
206 ("RootPOA"); Just linking this library should be sufficient to
207 get all the features that are required to write powerful
208 servers. </td>
209 <td>taoserver.mpb</td>
210 </tr>
211 <tr align=left>
212 <th>libTAO_RTCORBA.so</th>
213 <td>Support for RTCORBA client side features. Applications are
214 required to <code> #include "tao/RTCORBA/RTCORBA.h" </code> to
215 get the required symbols for linking. Support in this library
216 is complaint with RTCORBA 1.0 spec.</td>
217 <td>rt_client.mpb</td>
218 </tr>
219 <tr align=left>
220 <th>libTAO_RTPortableServer.so</th>
221 <td>Support for RTCORBA server side features. Applications are
222 required to <code> #include
223 "tao/RTPortableServer/RTPortableServer.h" </code> to
224 get the required symbols for linking. Support in this library
225 is complaint with RTCORBA 1.0 spec.</td>
226 <td>rt_server.mpb</td>
227 </tr>
228 <tr align=left>
229 <th>libTAO_RTScheduling.so</th>
230 <td>Support for RTCORBA 2.0 features. Applications are
231 required to <code> #include
232 "tao/RTScheduling/RTScheulding.h" </code> to
233 get the required symbols for linking. Support in this library
234 is complaint with RTCORBA 2.0 spec.</td>
235 <td>rtscheduling.mpb</td>
236 </tr>
237 <tr align=left>
238 <th>libTAO_SmartProxies.so</th>
239 <td>Support for <a href
240 ="Smart_Proxies.html">Smartproxies</a>.</td>
241 <td>smart_proxies.mpb</td>
242 </tr>
243 <tr align=left>
244 <th>libTAO_Strategies.so</th>
245 <td>Support for advanced resource options for the ORB that have
246 been strategized into this library. Advanced resource
247 categories include new transport protocols, additional
248 reactors, connection purging strategies etc. Applications
249 should <code> #include "tao/Strategies/advanced_resources.h"
250 </code>.</td>
251 <td>strategies.mpb</td>
252 </tr>
253 <tr align=left>
254 <th>libTAO_TypeCodeFactory.so</th>
255 <td>Support for TypeCodeFactory interface.</td>
256 <td>typecodefactory.mpb</td>
257 </tr>
258 <tr align=left>
259 <th>libTAO_Utils.so</th>
260 <td>Helper methods for that are useful for writing portable,
261 exception safe application code.</td>
262 <td>utils.mpb</td>
263 </tr>
264 <tr align=left>
265 <th>libTAO_Valuetype.so</th>
266 <td>Support for object by value (OBV). Portable server and messaging depends on
267 this library </td>
268 <td>valuetype.mpb</td>
269 </tr>
270 <tr align=left>
271 <th>libTAO_CSD_Framework.so</th>
272 <td>Support framework for Custom Servant Dispatching (CSD) feature. The CSD_ThreadPool
273 depends on this library</td>
274 <td>csd_framework.mpb</td>
275 </tr>
276 <tr align=left>
277 <th>libTAO_CSD_ThreadPool.so</th>
278 <td>Support for ThreadPool Custom Servant Dispatching (CSD) Strategy. This library can
279 be loaded statically or dynamically. Applications are required to
280 <code> #include "tao/CSD_ThreadPool/CSD_ThreadPool.h"
281 </code> for static loading and provide service configuration file for dynamic loading.
282 </td>
283 <td>csd_threadpool.mpb</td>
284 </tr>
285 <tr align=left>
286 <th>libTAO_TC.so</th>
287 <td>Support for TAO::Transport::Current - a generic fremework for aplications that
288 need access to statistical information about the currently used Transport. See <a
289 href="transport_current/index.html"> Transport::Current</a>.
290 This library can be loaded statically or dynamically. Applications are required to
291 <code> #include "tao/TransportCurrent/Transport_Current.h"
292 </code> for static loading.
293 </td>
294 <td>tc.mpb</td>
295 </tr>
296 <tr align=left>
297 <th>libTAO_TC_IIOP.so</th>
298 <td>Support for TAO::Transport::IIOP::Current - an IIOP-specific plug-in for
299 Transport::Current. See <a href="transport_current/index.html"> Transport::Current</a>.
300 This library can be loaded statically or dynamically.
301 Applications are required to <code> #include "tao/TransportCurrent/IIOP_Transport_Current.h"
302 </code> for static loading. Depends on libTAO_TC.so.
303 </td>
304 <td>tc_iiop.mpb</td>
305 </tr>
306 <tr align=left>
307 <th>libTAO_Compression.so</th>
308 <td>Support for Compression. This library can
309 be loaded statically or dynamically. Applications are required to
310 <code> #include "tao/Compression/Compression.h"
311 </code> for static loading.
312 </td>
313 <td>compression.mpb</td>
314 </tr>
315 <tr align=left>
316 <th>libTAO_ZlibCompressor.so</th>
317 <td>Support for Zlib Compression. This library can
318 be loaded statically or dynamically. Applications are required to
319 <code> #include "tao/Compression/zlib/ZlibCompressor.h"
320 </code> for static loading.
321 </td>
322 <td>zlibcompressor.mpb</td>
323 </tr>
324 </tr>
325 </table>
327 <hr>
328 <p>Back to the TAO <a href="index.html">TAO documentation page</a>.<!--#include virtual="/~schmidt/cgi-sig.html" -->
329 </body>
331 </HTML>