Remove Support Macro
[ACE_TAO.git] / TAO / tao / orbconf.h
blob86530c3e4e737e39c9fbb6ff6e97a84e3db7a5ee
1 // -*- C++ -*-
3 //=============================================================================
4 /**
5 * @file orbconf.h
7 * Build configuration file.
9 * @author Copyright 1995 by Sun Microsystems, Inc.
10 * @author Chris Cleeland
11 * @author Douglas C. Schmidt
13 //=============================================================================
15 #ifndef TAO_ORBCONF_H
16 #define TAO_ORBCONF_H
18 #include /**/ "ace/pre.h"
20 #include "ace/Basic_Types.h"
21 #include "ace/Global_Macros.h"
22 #include "ace/Condition_Thread_Mutex.h"
23 #include "ace/Synch_Traits.h"
25 #if !defined (ACE_LACKS_PRAGMA_ONCE)
26 # pragma once
27 #endif /* ACE_LACKS_PRAGMA_ONCE */
29 #include /**/ "tao/Versioned_Namespace.h"
31 TAO_BEGIN_VERSIONED_NAMESPACE_DECL
33 #define TAO_INVALID_PRIORITY -1
35 #if !defined (TAO_REACTOR)
36 #define TAO_REACTOR ACE_Select_Reactor
37 #endif /* TAO_REACTOR */
39 #if !defined (TAO_NULL_LOCK_REACTOR)
40 #define TAO_NULL_LOCK_REACTOR ACE_Select_Reactor_T< ACE_Reactor_Token_T<ACE_Noop_Token> >
41 #endif /* TAO_NULL_LOCK_REACTOR */
43 //FUZZ: disable check_for_ACE_SYNCH_MUTEX
44 // Define this to modify the default mutex type used throughout TAO.
45 #if !defined (TAO_SYNCH_MUTEX)
46 #define TAO_SYNCH_MUTEX ACE_SYNCH_MUTEX
47 #endif /* TAO_SYNCH_MUTEX */
48 //FUZZ: enable check_for_ACE_SYNCH_MUTEX
50 #if !defined (TAO_SYNCH_RECURSIVE_MUTEX)
51 #define TAO_SYNCH_RECURSIVE_MUTEX ACE_SYNCH_RECURSIVE_MUTEX
52 #endif /* TAO_SYNCH_RECURSIVE_MUTEX */
54 #if !defined (TAO_SYNCH_RW_MUTEX)
55 #define TAO_SYNCH_RW_MUTEX ACE_SYNCH_RW_MUTEX
56 #endif /* TAO_SYNCH_RW_MUTEX */
58 #if !defined (TAO_SYNCH_CONDITION)
59 #define TAO_SYNCH_CONDITION ACE_SYNCH_CONDITION
60 #endif /* TAO_SYNCH_CONDITION */
62 // Define this if you don't want POA timestamps in the IOR. Remember,
63 // without timestamps, transient and persistent POA cannot be
64 // distinguished.
65 #if !defined (POA_NO_TIMESTAMP)
66 # define POA_NO_TIMESTAMP 0
67 #endif /* POA_NO_TIMESTAMP */
69 // If set the ORB will use dotted decimal addresses in the IIOP IORs
70 // it exports. This is useful for platforms or environments that
71 // cannot depend on a DNS being available. This macro only affects
72 // the server side of a TAO-based CORBA application. If we are on Win32
73 // the DNS is general broken. Set it to 1 regardless.
74 #if !defined (TAO_USE_DOTTED_DECIMAL_ADDRESSES) && defined (ACE_WIN32)
75 # define TAO_USE_DOTTED_DECIMAL_ADDRESSES 1
76 #endif /*TAO_USE_DOTTED_DECIMAL_ADDRESSES*/
78 #if !defined (TAO_USE_DOTTED_DECIMAL_ADDRESSES)
79 # define TAO_USE_DOTTED_DECIMAL_ADDRESSES 0
80 #endif /* TAO_USE_DOTTED_DECIMAL_ADDRESSES */
82 // If set the ORB will use codeset negotiation. This means adding a
83 // Codeset component to each profile in an IOR, and a codeset context
84 // to the first request. The use of codeset negotiation also causes
85 // libTAO_Codeset to be linked in.
86 #if !defined (TAO_NEGOTIATE_CODESETS)
87 # define TAO_NEGOTIATE_CODESETS 1
88 #endif /*TAO_NEGOTIATE_CODESETS*/
90 // The default size of TAO's ORB table, i.e. the one used as the
91 // underlying implementation for the CORBA::ORB_init() function.
92 #if !defined (TAO_DEFAULT_ORB_TABLE_SIZE)
93 const size_t TAO_DEFAULT_ORB_TABLE_SIZE = 16;
94 #endif /* !TAO_DEFAULT_ORB_TABLE_SIZE */
96 // The default size of TAO's adapter registry.
97 #if !defined (TAO_DEFAULT_ADAPTER_REGISTRY_SIZE)
98 const size_t TAO_DEFAULT_ADAPTER_REGISTRY_SIZE = 16;
99 #endif /* !TAO_DEFAULT_ORB_TABLE_SIZE */
101 // The default size of the reply dispatcher table, ie. if the reply
102 // dispatcher strategy needs a table to maintain association between
103 // request id's and reply dispatchers
104 #if !defined (TAO_RD_TABLE_SIZE)
105 const size_t TAO_RD_TABLE_SIZE = 16;
106 #endif /* !TAO_RD_TABLE_SIZE */
108 // The default size of TAO's policy factory registry, i.e. the map
109 // used as the underlying implementation for the
110 // PortableInterceptor::ORBInitInfo::register_policy_factory() method.
111 #if !defined (TAO_DEFAULT_POLICY_FACTORY_REGISTRY_SIZE)
112 const size_t TAO_DEFAULT_POLICY_FACTORY_REGISTRY_SIZE = 64;
113 #endif /* !TAO_DEFAULT_ORB_TABLE_SIZE */
115 // Should we use parallel connect
116 #if !defined (TAO_USE_PARALLEL_CONNECT)
117 const bool TAO_USE_PARALLEL_CONNECT = false;
118 #endif /* !TAO_USE_PARALLEL_CONNECT */
120 #if !defined (TAO_ACCEPT_ERROR_DELAY)
121 const time_t TAO_ACCEPT_ERROR_DELAY = 5;
122 #endif /* TAO_ACCEPT_ERROR_DELAY */
124 #if !defined (TAO_SO_LINGER)
125 const int TAO_SO_LINGER = -1;
126 #endif /* TAO_SO_LINGER */
128 // The default size of TAO's initial object reference table, i.e. the
129 // one used as the underlying implementation for the
130 // CORBA::ORB::register_initial_reference() and
131 // PortableInterceptor::ORBInitInfo::register_initial_reference()
132 // methods.
133 #if !defined (TAO_DEFAULT_OBJECT_REF_TABLE_SIZE)
134 const size_t TAO_DEFAULT_OBJECT_REF_TABLE_SIZE = 256;
135 #endif /* !TAO_DEFAULT_ORB_TABLE_SIZE */
137 // The default size of TAO's ValueFactory table, i.e. the
138 // one used as the underlying implementation for the
139 // CORBA::ORB::register_value_factory() method.
140 #if !defined (TAO_DEFAULT_VALUE_FACTORY_TABLE_SIZE)
141 const size_t TAO_DEFAULT_VALUE_FACTORY_TABLE_SIZE = 128;
142 #endif /* !TAO_DEFAULT_ORB_TABLE_SIZE */
144 // The default size of TAO's server active object map.
145 #if !defined (TAO_DEFAULT_SERVER_ACTIVE_OBJECT_MAP_SIZE)
146 # define TAO_DEFAULT_SERVER_ACTIVE_OBJECT_MAP_SIZE 64
147 #endif /* ! TAO_DEFAULT_SERVER_ACTIVE_OBJECT_MAP_SIZE */
149 // The default size of TAO's server poa map.
150 #if !defined (TAO_DEFAULT_SERVER_POA_MAP_SIZE)
151 # define TAO_DEFAULT_SERVER_POA_MAP_SIZE 24
152 #endif /* ! TAO_DEFAULT_SERVER_POA_MAP_SIZE */
154 // The default timeout receiving the location request to the TAO
155 // Naming, Trading and other servicesService.
156 #if !defined (TAO_DEFAULT_SERVICE_RESOLUTION_TIMEOUT)
157 #define TAO_DEFAULT_SERVICE_RESOLUTION_TIMEOUT 10
158 #endif /* TAO_DEFAULT_SERVICE_RESOLUTION_TIMEOUT */
160 // The default starting port number for TAO servers.
161 // @@ This assumes we are using one or more protocols that will all
162 // @@ 1) know what to do with a port number and
163 // @@ 2) use the same default port number.
164 // @@ This should go away!
165 #if !defined (TAO_DEFAULT_SERVER_PORT)
166 #define TAO_DEFAULT_SERVER_PORT 0
167 #endif /* TAO_DEFAULT_SERVER_PORT */
169 // TAO's max buffer size
170 #if !defined (TAO_MAXBUFSIZE)
171 #define TAO_MAXBUFSIZE 1024
172 #endif /* TAO_MAXBUFSIZE */
174 #if !defined (TAO_CONNECTION_PURGING_STRATEGY)
175 # define TAO_CONNECTION_PURGING_STRATEGY TAO_Resource_Factory::LRU
176 #endif /* TAO_CONNECTION_PURGING_STRATEGY */
178 #if !defined (TAO_PURGE_PERCENT)
179 # define TAO_PURGE_PERCENT 20
180 #endif /* TAO_PURGE_PERCENT */
182 #if !defined (TAO_CONNECTION_CACHE_MAXIMUM)
183 // If for some reason you configure the maximum number of handles in
184 // your OS to some astronomical value, then you should override this
185 // macro to be a smaller value, e.g., NOFILES or FD_SETSIZE.
186 # define TAO_CONNECTION_CACHE_MAXIMUM (ACE::max_handles () / 2)
187 #endif /* TAO_CONNECTION_CACHE_MAXIMUM */
189 #if !defined(TAO_NO_COPY_OCTET_SEQUENCES)
190 # define TAO_NO_COPY_OCTET_SEQUENCES 1
191 #endif /* TAO_NO_COPY_OCTET_SEQUENCES */
193 // Define if your processor does not store words with the most significant
194 // byte first.
196 // @todo It seems to be that this definition of TAO_ENCAP_BYTE_ORDER
197 // should be removed. We have an equivalent ACE definition in
198 // ACE_CDR_BYTE_ORDER. Today both of them are consistent. It would be
199 // a havoc if oneday this consistency is gone..
200 #if defined (ACE_LITTLE_ENDIAN)
201 # define TAO_ENCAP_BYTE_ORDER 1 /* little endian encapsulation byte order has
202 the value = 1 */
203 #else /* ! ACE_LITTLE_ENDIAN */
204 # define TAO_ENCAP_BYTE_ORDER 0 /* big endian encapsulation byte order has
205 the value = 0 */
206 #endif /* ! ACE_LITTLE_ENDIAN */
208 // Comment out to enable only ACE monitors...
209 #if defined (ACE_HAS_MONITOR_FRAMEWORK) && (ACE_HAS_MONITOR_FRAMEWORK == 1)
210 # define TAO_HAS_MONITOR_FRAMEWORK 1
211 #else
212 # define TAO_HAS_MONITOR_FRAMEWORK 0
213 #endif /* ACE_HAS_MONITOR_FRAMEWORK*/
215 #if !defined (TAO_HAS_MONITOR_POINTS)
216 # define TAO_HAS_MONITOR_POINTS ACE_HAS_MONITOR_POINTS
217 #endif
219 // Avoid namespace pollution that's common on older UNIXes...
220 #if defined (minor)
221 #undef minor
222 #endif /* minor */
224 #if defined (major)
225 #undef major
226 #endif /* major*/
228 // Assume DOS/Windows if "configure" didn't get run.
230 #if defined (_MSC_VER)
231 // "C4355: 'this' : used in base member initializer list"
232 # pragma warning (disable:4355) /* disable C4355 warning */
233 #endif /* defined (_MSC_VER) */
235 // The Root POA default name.
236 #if !defined (TAO_DEFAULT_ROOTPOA_NAME)
237 #define TAO_DEFAULT_ROOTPOA_NAME "RootPOA"
238 #endif /* TAO_DEFAULT_ROOTPOA_NAME */
240 #if !defined (TAO_DEFAULT_ROOTPOAMANAGER_NAME)
241 #define TAO_DEFAULT_ROOTPOAMANAGER_NAME "RootPOAManager"
242 #endif /* TAO_DEFAULT_ROOTPOAMANAGER_NAME */
244 // The default lane name used when storing endpoints.
245 #if !defined (TAO_DEFAULT_LANE)
246 #define TAO_DEFAULT_LANE "default lane"
247 #endif /* TAO_DEFAULT_LANE */
249 // Minimum CORBA
250 #if !defined (TAO_HAS_MINIMUM_CORBA)
251 # define TAO_HAS_MINIMUM_CORBA 0
252 #endif /* TAO_HAS_MINIMUM_CORBA */
254 /// Default IIOP settings
255 #if !defined (TAO_HAS_IIOP)
256 # define TAO_HAS_IIOP 1
257 #endif /* !TAO_HAS_IIOP */
259 /// Default DIOP settings
260 #if !defined (TAO_HAS_DIOP)
261 # define TAO_HAS_DIOP 1
262 #endif /* !TAO_HAS_DIOP */
264 /// Default SCIOP Settings
265 /// SCIOP is disabled by default (i.e. TAO_HAS_SCIOP is undef)
266 /// to enable SCIOP, make with sctp=openss7 option on command line.
267 /// See $ACE_ROOT/performance-tests/SCTP/README for more info.
268 #if !defined (TAO_HAS_SCIOP)
269 # if defined (ACE_HAS_SCTP)
270 # define TAO_HAS_SCIOP 1
271 # define TAO_DEF_SCIOP_MAJOR 1
272 # define TAO_DEF_SCIOP_MINOR 0
273 # else
274 # define TAO_HAS_SCIOP 0
275 # endif /* ACE_HAS_SCTP */
276 #endif /* !TAO_HAS_SCIOP */
278 // UIOP support is enabled by default if the platform supports UNIX
279 // domain sockets, and TAO is not configured for minimum CORBA.
280 // If TAO is configured for minimum CORBA, then UIOP will be disabled
281 // by default.
282 // To explicitly enable UIOP support uncomment the following
283 // #define TAO_HAS_UIOP 1
284 // To explicitly disable UIOP support uncomment the following
285 // #define TAO_HAS_UIOP 0
287 // Default UIOP settings
288 #if !defined (TAO_HAS_UIOP)
289 # if defined (ACE_LACKS_UNIX_DOMAIN_SOCKETS)
290 # define TAO_HAS_UIOP 0
291 # else
292 # define TAO_HAS_UIOP 1
293 # endif /* ACE_LACKS_UNIX_DOMAIN_SOCKETS */
294 #endif /* !TAO_HAS_UIOP */
296 // NSKPW and NSKFS are Pluggable Protocols used on the Tandem
297 // platform. These are disabled by default.
299 #if defined (TAO_HAS_NSKPW)
300 #define TAO_DEF_NSKPW_MAJOR 1
301 #define TAO_DEF_NSKPW_MINOR 2
302 #endif
304 #if defined (TAO_HAS_NSKFS)
305 #define TAO_DEF_NSKFS_MAJOR 1
306 #define TAO_DEF_NSKFS_MINOR 2
307 #endif
309 #if (ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1)
310 # if !defined (TAO_HAS_SHMIOP)
311 # define TAO_HAS_SHMIOP 1
312 # endif /* TAO_HAS_SHMIOP */
313 #else
314 # if defined (TAO_HAS_SHMIOP)
315 # undef TAO_HAS_SHMIOP
316 # endif /* TAO_HAS_SHMIOP */
317 # define TAO_HAS_SHMIOP 0
318 #endif /* ACE_HAS_POSITION_INDEPENDENT_POINTERS == 1 */
320 // NAMED_RT_MUTEX support is disabled by default.
321 // To explicitly enable NAMED_RT_MUTEX support uncomment the following
322 // #define TAO_HAS_NAMED_RT_MUTEXES 1
323 // To explicitly disable NAMED_RT_MUTEX support uncomment the following
324 // #define TAO_HAS_NAMED_RT_MUTEXES 0
326 // Default NAMED_RT_MUTEX settings
327 #if !defined (TAO_HAS_NAMED_RT_MUTEXES)
328 # define TAO_HAS_NAMED_RT_MUTEXES 0
329 #endif /* !TAO_HAS_NAMED_RT_MUTEXES */
331 // MINIMUM_POA support is disabled by default if TAO is not
332 // configured for minimum CORBA. If TAO is configured for minimum
333 // CORBA, then MINIMUM_POA will be enabled by default.
334 // To explicitly enable MINIMUM_POA support uncomment the following
335 // #define TAO_HAS_MINIMUM_POA 1
336 // To explicitly disable MINIMUM_POA support uncomment the following
337 // #define TAO_HAS_MINIMUM_POA 0
339 // Default MINIMUM_POA settings
340 #if !defined (TAO_HAS_MINIMUM_POA)
341 # if (TAO_HAS_MINIMUM_CORBA == 1)
342 # define TAO_HAS_MINIMUM_POA 1
343 # else
344 # define TAO_HAS_MINIMUM_POA 0
345 # endif /* TAO_HAS_MINIMUM_CORBA */
346 #endif /* !TAO_HAS_MINIMUM_POA */
348 // MINIMUM_POA_MAPS support is disabled by default if TAO is not
349 // configured for minimum POA. If TAO is configured for minimum
350 // POA, then MINIMUM_POA_MAPS will be enabled by default.
351 // To explicitly enable MINIMUM_POA_MAPS support uncomment the following
352 // #define TAO_HAS_MINIMUM_POA_MAPS 1
353 // To explicitly disable MINIMUM_POA_MAPS support uncomment the following
354 // #define TAO_HAS_MINIMUM_POA_MAPS 0
356 // Default MINIMUM_POA_MAPS settings
357 #if !defined (TAO_HAS_MINIMUM_POA_MAPS)
358 # if (TAO_HAS_MINIMUM_POA == 1)
359 # define TAO_HAS_MINIMUM_POA_MAPS 1
360 # else
361 # define TAO_HAS_MINIMUM_POA_MAPS 0
362 # endif /* TAO_HAS_MINIMUM_POA */
363 #endif /* !TAO_HAS_MINIMUM_POA_MAPS */
365 // CORBA_MESSAGING support is enabled by default if TAO is not
366 // configured for minimum CORBA. If TAO is configured for minimum
367 // CORBA, then CORBA_MESSAGING will be disabled by default.
368 // To explicitly enable CORBA_MESSAGING support uncomment the following
369 // #define TAO_HAS_CORBA_MESSAGING 1
370 // To explicitly disable CORBA_MESSAGING support uncomment the following
371 // #define TAO_HAS_CORBA_MESSAGING 0
373 // Default CORBA_MESSAGING settings
374 #if !defined (TAO_HAS_CORBA_MESSAGING)
375 # define TAO_HAS_CORBA_MESSAGING 1
376 #endif /* !TAO_HAS_CORBA_MESSAGING */
378 #if !defined (TAO_HAS_ZIOP)
379 # if (TAO_HAS_CORBA_MESSAGING == 1)
380 // ZIOP needs corba messaging to work
381 # define TAO_HAS_ZIOP 1
382 #else
383 # define TAO_HAS_ZIOP 0
384 # endif
385 #endif
387 // For all the policies, support is enabled by default if TAO is
388 // configured for CORBA Messaging. If TAO is not configured for CORBA
389 // Messaging, then policies cannot be enabled. Default support can be
390 // turned off by setting TAO_DISABLE_CORBA_MESSAGING_POLICIES to 1.
392 #if !defined (TAO_DISABLE_CORBA_MESSAGING_POLICIES)
393 # define TAO_DISABLE_CORBA_MESSAGING_POLICIES 0
394 #endif /* !TAO_DISABLE_CORBA_MESSAGING_POLICIES */
396 // To explicitly disable TIME_POLICY support uncomment the following
397 // #define TAO_HAS_TIME_POLICY 0
399 // Default TIME_POLICY settings
400 #if !defined (TAO_HAS_TIME_POLICY)
401 # define TAO_HAS_TIME_POLICY 1
402 #endif /* !TAO_HAS_TIME_POLICY */
404 // To explicitly disable REBIND_POLICY support uncomment the following
405 // #define TAO_HAS_REBIND_POLICY 0
407 // Default REBIND_POLICY settings
408 #if !defined (TAO_HAS_REBIND_POLICY)
409 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
410 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
411 # define TAO_HAS_REBIND_POLICY 1
412 # else
413 # define TAO_HAS_REBIND_POLICY 0
414 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
415 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
416 #endif /* !TAO_HAS_REBIND_POLICY */
418 // To explicitly disable SYNC_SCOPE_POLICY support uncomment the following
419 // #define TAO_HAS_SYNC_SCOPE_POLICY 0
421 // Default SYNC_SCOPE_POLICY settings
422 #if !defined (TAO_HAS_SYNC_SCOPE_POLICY)
423 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
424 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
425 # define TAO_HAS_SYNC_SCOPE_POLICY 1
426 # else
427 # define TAO_HAS_SYNC_SCOPE_POLICY 0
428 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
429 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
430 #endif /* !TAO_HAS_SYNC_SCOPE_POLICY */
432 // To explicitly disable PRIORITY_POLICIES support uncomment the following
433 // #define TAO_HAS_PRIORITY_POLICIES 0
435 // Default PRIORITY_POLICIES settings
436 #if !defined (TAO_HAS_PRIORITY_POLICIES)
437 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
438 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
439 # define TAO_HAS_PRIORITY_POLICIES 1
440 # else
441 # define TAO_HAS_PRIORITY_POLICIES 0
442 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
443 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
444 #endif /* !TAO_HAS_PRIORITY_POLICIES */
446 // To explicitly disable REQUEST_START_TIME_POLICY support uncomment the following
447 // #define TAO_HAS_REQUEST_START_TIME_POLICY 0
449 // Default REQUEST_START_TIME_POLICY settings
450 #if !defined (TAO_HAS_REQUEST_START_TIME_POLICY)
451 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
452 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
453 # define TAO_HAS_REQUEST_START_TIME_POLICY 1
454 # else
455 # define TAO_HAS_REQUEST_START_TIME_POLICY 0
456 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
457 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
458 #endif /* !TAO_HAS_REQUEST_START_TIME_POLICY */
460 // To explicitly disable REQUEST_END_TIME_POLICY support uncomment the following
461 // #define TAO_HAS_REQUEST_END_TIME_POLICY 0
463 // Default REQUEST_END_TIME_POLICY settings
464 #if !defined (TAO_HAS_REQUEST_END_TIME_POLICY)
465 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
466 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
467 # define TAO_HAS_REQUEST_END_TIME_POLICY 1
468 # else
469 # define TAO_HAS_REQUEST_END_TIME_POLICY 0
470 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
471 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
472 #endif /* !TAO_HAS_REQUEST_END_TIME_POLICY */
474 // To explicitly disable REPLY_START_TIME_POLICY support uncomment the following
475 // #define TAO_HAS_REPLY_START_TIME_POLICY 0
477 // Default REPLY_START_TIME_POLICY settings
478 #if !defined (TAO_HAS_REPLY_START_TIME_POLICY)
479 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
480 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
481 # define TAO_HAS_REPLY_START_TIME_POLICY 1
482 # else
483 # define TAO_HAS_REPLY_START_TIME_POLICY 0
484 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
485 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
486 #endif /* !TAO_HAS_REPLY_START_TIME_POLICY */
488 // To explicitly disable REPLY_END_TIME_POLICY support uncomment the following
489 // #define TAO_HAS_REPLY_END_TIME_POLICY 0
491 // Default REPLY_END_TIME_POLICY settings
492 #if !defined (TAO_HAS_REPLY_END_TIME_POLICY)
493 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
494 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
495 # define TAO_HAS_REPLY_END_TIME_POLICY 1
496 # else
497 # define TAO_HAS_REPLY_END_TIME_POLICY 0
498 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
499 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
500 #endif /* !TAO_HAS_REPLY_END_TIME_POLICY */
502 // To explicitly disable RELATIVE_REQUEST_TIMEOUT_POLICY support uncomment the following
503 // #define TAO_HAS_RELATIVE_REQUEST_TIMEOUT_POLICY 0
505 // Default RELATIVE_REQUEST_TIMEOUT_POLICY settings
506 #if !defined (TAO_HAS_RELATIVE_REQUEST_TIMEOUT_POLICY)
507 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
508 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
509 # define TAO_HAS_RELATIVE_REQUEST_TIMEOUT_POLICY 1
510 # else
511 # define TAO_HAS_RELATIVE_REQUEST_TIMEOUT_POLICY 0
512 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
513 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
514 #endif /* !TAO_HAS_RELATIVE_REQUEST_TIMEOUT_POLICY */
516 // To explicitly disable RELATIVE_ROUNDTRIP_TIMEOUT_POLICY support uncomment the following
517 // #define TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY 0
519 // Default RELATIVE_ROUNDTRIP_TIMEOUT_POLICY settings
520 #if !defined (TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY)
521 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
522 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
523 # define TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY 1
524 # else
525 # define TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY 0
526 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
527 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
528 #endif /* !TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY */
530 // Default CONNECTION_TIMEOUT_POLICY settings. This is a proprietary
531 // TAO policy.
532 #if !defined (TAO_HAS_CONNECTION_TIMEOUT_POLICY)
533 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
534 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
535 # define TAO_HAS_CONNECTION_TIMEOUT_POLICY 1
536 # else
537 # define TAO_HAS_CONNECTION_TIMEOUT_POLICY 0
538 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
539 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
540 #endif /* !TAO_HAS_CONNECTION_TIMEOUT_POLICY */
543 // To explicitly disable ROUTING_POLICY support uncomment the following
544 // #define TAO_HAS_ROUTING_POLICY 0
546 // Default ROUTING_POLICY settings
547 #if !defined (TAO_HAS_ROUTING_POLICY)
548 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
549 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
550 # define TAO_HAS_ROUTING_POLICY 1
551 # else
552 # define TAO_HAS_ROUTING_POLICY 0
553 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
554 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
555 #endif /* !TAO_HAS_ROUTING_POLICY */
557 // To explicitly disable MAX_HOPS_POLICY support uncomment the following
558 // #define TAO_HAS_MAX_HOPS_POLICY 0
560 // Default MAX_HOPS_POLICY settings
561 #if !defined (TAO_HAS_MAX_HOPS_POLICY)
562 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
563 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
564 # define TAO_HAS_MAX_HOPS_POLICY 1
565 # else
566 # define TAO_HAS_MAX_HOPS_POLICY 0
567 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
568 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
569 #endif /* !TAO_HAS_MAX_HOPS_POLICY */
571 // To explicitly disable QUEUE_ORDER_POLICY support uncomment the following
572 // #define TAO_HAS_QUEUE_ORDER_POLICY 0
574 /// Default QUEUE_ORDER_POLICY settings
575 #if !defined (TAO_HAS_QUEUE_ORDER_POLICY)
576 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
577 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
578 # define TAO_HAS_QUEUE_ORDER_POLICY 1
579 # else
580 # define TAO_HAS_QUEUE_ORDER_POLICY 0
581 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
582 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
583 #endif /* !TAO_HAS_QUEUE_ORDER_POLICY */
585 // To explicitly disable BUFFERING_CONSTRAINT_POLICY support uncomment the following
586 // #define TAO_HAS_BUFFERING_CONSTRAINT_POLICY 0
588 // Default BUFFERING_CONSTRAINT_POLICY settings
589 #if !defined (TAO_HAS_BUFFERING_CONSTRAINT_POLICY)
590 # if (TAO_HAS_CORBA_MESSAGING == 1) && \
591 (TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0)
592 # define TAO_HAS_BUFFERING_CONSTRAINT_POLICY 1
593 # else
594 # define TAO_HAS_BUFFERING_CONSTRAINT_POLICY 0
595 # endif /* TAO_HAS_CORBA_MESSAGING == 1 &&
596 TAO_DISABLE_CORBA_MESSAGING_POLICIES == 0 */
597 #endif /* !TAO_HAS_BUFFERING_CONSTRAINT_POLICY */
599 // AMI support is enabled by default, unless TAO is compiled with
600 // Minimum CORBA. In that case AMI is disabled by default.
601 // If disabled you can also disable the CORBA MESSAGING support.
602 // To explicitly enable AMI support uncomment the following
603 // #define TAO_HAS_AMI 1
604 // To explicitly disable AMI support uncomment the following
605 // #define TAO_HAS_AMI 0
607 // Default AMI settings
608 #if !defined (TAO_HAS_AMI)
609 # if (TAO_HAS_MINIMUM_CORBA == 1)
610 # define TAO_HAS_AMI 0
611 # else
612 # define TAO_HAS_AMI 1
613 # endif /* TAO_HAS_MINIMUM_CORBA */
614 #else
615 # if (TAO_HAS_AMI == 1) && \
616 (TAO_HAS_CORBA_MESSAGING == 0)
617 # error "tao/orbconf.h: You need CORBA_MESSAGING for AMI support"
618 # endif /* TAO_HAS_AMI == 1 &&
619 TAO_HAS_CORBA_MESSAGING == 0 */
620 #endif /* !TAO_HAS_AMI */
622 /// We dont have AMI_POLLER support in TAO. Just prevent anyone from
623 /// using it.
625 // AMI_CALLBACK support is disabled by default if TAO is not
626 // configured for AMI. If TAO is configured for AMI, then
627 // AMI_CALLBACK will be enabled by default. If enabled, it requires
628 // CORBA_MESSAGING support.
629 // To explicitly enable AMI_CALLBACK support uncomment the following
630 // #define TAO_HAS_AMI_CALLBACK 1
631 // To explicitly disable AMI_CALLBACK support uncomment the following
632 // #define TAO_HAS_AMI_CALLBACK 0
634 /// Default AMI_CALLBACK settings
635 #if !defined (TAO_HAS_AMI_CALLBACK)
636 # if (TAO_HAS_AMI == 1)
637 # define TAO_HAS_AMI_CALLBACK 1
638 # else
639 # define TAO_HAS_AMI_CALLBACK 0
640 # endif /* TAO_HAS_AMI == 1 */
641 #else
642 # if (TAO_HAS_AMI_CALLBACK == 1) && \
643 (TAO_HAS_CORBA_MESSAGING == 0)
644 # error "tao/orbconf.h: You need CORBA_MESSAGING for AMI support"
645 # endif /* TAO_HAS_AMI_CALLBACK == 1 &&
646 TAO_HAS_CORBA_MESSAGING == 0 */
647 #endif /* !TAO_HAS_AMI_CALLBACK */
649 /// Interceptors is supported by default if we are not building for
650 /// MinimumCORBA.
651 #if !defined (TAO_HAS_INTERCEPTORS)
652 # if (TAO_HAS_MINIMUM_CORBA == 1) || defined (CORBA_E_COMPACT) || defined (CORBA_E_MICRO)
653 # define TAO_HAS_INTERCEPTORS 0
654 # else
655 # define TAO_HAS_INTERCEPTORS 1
656 # endif /* TAO_HAS_MINIMUM_CORBA */
657 #endif
659 /// At the moment we have sendfile support in ACE we enabled this also by
660 /// default for TAO, but we can suppress it also explicitly by set
661 /// TAO_HAS_SENDFILE to 0.
662 #if !defined (TAO_HAS_SENDFILE)
663 # if defined ACE_HAS_SENDFILE && ACE_HAS_SENDFILE == 1
664 # define TAO_HAS_SENDFILE 1
665 # else
666 # define TAO_HAS_SENDFILE 0
667 # endif /* ACE_HAS_SENDFILE */
668 #endif /* !TAO_HAS_SENDFILE */
670 /// Proprietary FT interception-point support is disabled by default.
671 #ifndef TAO_HAS_EXTENDED_FT_INTERCEPTORS
672 # define TAO_HAS_EXTENDED_FT_INTERCEPTORS 0
673 #endif /* !TAO_HAS_EXTENEDED_FT_INTERCEPTORS */
675 /// This is needed for a check in the Policy Set; Should really not be
676 /// here though; We should find a different way to handle the check in
677 /// the Policy Set.
678 #define TAO_RT_SERVER_PROTOCOL_POLICY_TYPE 42
680 /// Policies that are accessed on the critical path and need to be
681 /// incur minimal retrieval overhead.
682 enum TAO_Cached_Policy_Type
684 TAO_CACHED_POLICY_UNCACHED = -1,
685 TAO_CACHED_POLICY_PRIORITY_MODEL = 0,
686 TAO_CACHED_POLICY_THREADPOOL,
687 TAO_CACHED_POLICY_RT_SERVER_PROTOCOL,
688 TAO_CACHED_POLICY_RT_CLIENT_PROTOCOL,
689 TAO_CACHED_POLICY_RT_PRIVATE_CONNECTION,
690 TAO_CACHED_POLICY_RT_PRIORITY_BANDED_CONNECTION,
692 TAO_CACHED_POLICY_LIFESPAN,
693 TAO_CACHED_POLICY_ID_UNIQUENESS,
694 TAO_CACHED_POLICY_ID_ASSIGNMENT,
696 #if (TAO_HAS_MINIMUM_POA == 0)
697 TAO_CACHED_POLICY_THREAD,
698 TAO_CACHED_POLICY_IMPLICIT_ACTIVATION,
699 TAO_CACHED_POLICY_SERVANT_RETENTION,
700 TAO_CACHED_POLICY_REQUEST_PROCESSING,
701 #endif /* TAO_HAS_MINIMUM_POA == 0 */
703 #if (TAO_HAS_SYNC_SCOPE_POLICY == 1)
704 TAO_CACHED_POLICY_SYNC_SCOPE,
705 #endif /* TAO_HAS_SYNC_SCOPE_POLICY == 1 */
707 #if (TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY == 1)
708 TAO_CACHED_POLICY_RELATIVE_ROUNDTRIP_TIMEOUT,
709 #endif /* TAO_HAS_RELATIVE_ROUNDTRIP_TIMEOUT_POLICY == 1 */
711 #if (TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1)
712 TAO_CACHED_POLICY_BUFFERING_CONSTRAINT,
713 #endif /* TAO_HAS_BUFFERING_CONSTRAINT_POLICY == 1 */
715 #if (TAO_HAS_CONNECTION_TIMEOUT_POLICY == 1)
716 TAO_CACHED_POLICY_CONNECTION_TIMEOUT,
717 #endif /* TAO_HAS_CONNECTION_TIMEOUT_POLICY == 1 */
719 TAO_CACHED_POLICY_BIDIRECTIONAL_GIOP,
721 TAO_CACHED_POLICY_SERVER_NETWORK_PRIORITY,
723 TAO_CACHED_POLICY_CLIENT_NETWORK_PRIORITY,
725 TAO_CACHED_POLICY_NETWORK_PRIORITY,
727 TAO_CACHED_POLICY_ENDPOINT,
729 TAO_CACHED_COMPRESSION_ENABLING_POLICY,
731 TAO_CACHED_COMPRESSION_LOW_VALUE_POLICY,
733 TAO_CACHED_MIN_COMPRESSION_RATIO_POLICY,
735 TAO_CACHED_COMPRESSION_ID_LEVEL_LIST_POLICY,
737 /// NOTE: The "TAO_CACHED_POLICY_MAX_CACHED" should always be the last.
738 /// This value is used as the cached_policies_ array size in TAO_Policy_Set,
739 /// Any policy type defined after "TAO_CACHED_POLICY_MAX_CACHED" will cause
740 /// the policy access beyond bound problem.
741 TAO_CACHED_POLICY_MAX_CACHED
744 /// This enum provides a mask that represent the scope at which a given
745 /// policy can be applied
746 enum TAO_Policy_Scope
748 TAO_POLICY_OBJECT_SCOPE = 0x01,
749 TAO_POLICY_THREAD_SCOPE = 0x02,
750 TAO_POLICY_ORB_SCOPE = 0x04,
751 TAO_POLICY_POA_SCOPE = 0x08,
752 TAO_POLICY_CLIENT_EXPOSED = 0x10
755 #define TAO_POLICY_DEFAULT_SCOPE \
756 (static_cast<TAO_Policy_Scope> ( \
757 TAO_POLICY_OBJECT_SCOPE | \
758 TAO_POLICY_THREAD_SCOPE | \
759 TAO_POLICY_ORB_SCOPE | \
760 TAO_POLICY_POA_SCOPE))
762 /// Control the default version of GIOP used by TAO.
763 /// The ORB is always able to communicate with 1.0, 1.1 and 1.2
764 /// servers, and it creates 1.2 endpoints (and profiles). If you need
765 /// to talk to old clients that only understand 1.0 or 1.1 (and do not
766 /// attempt to use 1.0 or 1.1 with 1.2 servers), then change the values
767 /// below.
768 #if !defined (TAO_DEF_GIOP_MAJOR)
769 #define TAO_DEF_GIOP_MAJOR 1
770 #endif /* TAO_DEF_GIOP_MAJOR */
771 #if !defined (TAO_DEF_GIOP_MINOR)
772 #define TAO_DEF_GIOP_MINOR 2
773 #endif /* TAO_DEF_GIOP_MINOR */
775 /// Control the minimum required IIOP version for IPv6 support
776 #if defined (ACE_HAS_IPV6)
777 # if !defined (TAO_MIN_IPV6_IIOP_MAJOR)
778 # define TAO_MIN_IPV6_IIOP_MAJOR 1
779 # endif /* TAO_MIN_IPV6_IIOP_MAJOR */
780 # if !defined (TAO_MIN_IPV6_IIOP_MINOR)
781 # define TAO_MIN_IPV6_IIOP_MINOR 2
782 # endif /* TAO_MIN_IPV6_IIOP_MINOR */
783 #endif /* ACE_HAS_IPV6 */
785 /// By default TAO generate the OMG standard profile components
786 /// (ORB_TYPE and CODE_SETS)
787 #define TAO_STD_PROFILE_COMPONENTS
789 #if !defined (TAO_DEFAULT_IOR_SIZE)
790 /// This is the default size of the buffer used for processing IORs.
791 #define TAO_DEFAULT_IOR_SIZE 1024
792 #endif /* TAO_DEFAULT_IOR_SIZE */
794 #if !defined (TAO_DEFAULT_THREAD_PER_CONNECTION_TIMEOUT)
795 // The default timeout value for the thread-per-connection model, in
796 // milliseconds. The "INFINITE" value is magic and means blocking forever.
797 #define TAO_DEFAULT_THREAD_PER_CONNECTION_TIMEOUT "5000"
798 #endif /* TAO_DEFAULT_THREAD_PER_CONNECTION_TIMEOUT */
800 /// By default we use Muxed Transports
801 #if !defined (TAO_USE_MUXED_TRANSPORT_MUX_STRATEGY)
802 # define TAO_USE_MUXED_TRANSPORT_MUX_STRATEGY 1
803 #endif /* TAO_USE_MUXED_TRANSPORT_MUX_STRATEGY */
805 /// By default we use multicast lookup
806 #if !defined(TAO_DEFAULT_INIT_REFERENCE_INITIALIZER)
807 # define TAO_DEFAULT_INIT_REFERENCE_INITIALIZER "mcast://:::"
808 #endif /* TAO_DEFAULT_INIT_REFERENCE_INITIALIZER */
810 /// By default we dont use lazy strategy
811 #if !defined (TAO_USE_LAZY_RESOURCE_USAGE_STRATEGY)
812 # define TAO_USE_LAZY_RESOURCE_USAGE_STRATEGY 0
813 #endif /* TAO_USE_LAZY_RESOURCE_USAGE_STRATEGY*/
815 #if !defined (TAO_USE_LOCAL_MEMORY_POOL)
816 # define TAO_USE_LOCAL_MEMORY_POOL 1
817 #endif /* TAO_USE_LOCAL_MEMORY_POOL */
819 #if !defined (TAO_USE_OUTPUT_CDR_MMAP_MEMORY_POOL)
820 # define TAO_USE_OUTPUT_CDR_MMAP_MEMORY_POOL 0
821 #endif /* TAO_USE_LOCAL_MEMORY_POOL */
823 /// Enable TransportCurrent by default
824 #if !defined (TAO_HAS_TRANSPORT_CURRENT)
825 # define TAO_HAS_TRANSPORT_CURRENT 1
826 #endif /* ! TAO_HAS_TRANSPORT_CURRENT */
828 #if !defined (TAO_HAS_DDL_PARSER)
829 # define TAO_HAS_DDL_PARSER 1
830 #endif
832 #if !defined (TAO_HAS_FILE_PARSER)
833 # define TAO_HAS_FILE_PARSER 1
834 #endif
836 #if !defined (TAO_HAS_CORBALOC_PARSER)
837 # define TAO_HAS_CORBALOC_PARSER 1
838 #endif
840 #if !defined (TAO_HAS_CORBANAME_PARSER)
841 # define TAO_HAS_CORBANAME_PARSER 1
842 #endif
844 #if !defined (TAO_HAS_HTTP_PARSER)
845 # define TAO_HAS_HTTP_PARSER 1
846 #endif
848 #if !defined (TAO_HAS_MCAST_PARSER)
849 # if defined ACE_HAS_IP_MULTICAST
850 # define TAO_HAS_MCAST_PARSER 1
851 # else
852 # define TAO_HAS_MCAST_PARSER 0
853 # endif
854 #endif
856 #if !defined (TAO_HAS_SEQUENCE_ITERATORS)
857 # define TAO_HAS_SEQUENCE_ITERATORS 0
858 #endif
860 #if !defined (TAO_DEFAULT_COLLOCATION_STRATEGY)
861 # define TAO_DEFAULT_COLLOCATION_STRATEGY TAO_COLLOCATION_THRU_POA
862 #endif
864 TAO_END_VERSIONED_NAMESPACE_DECL
866 #include /**/ "ace/post.h"
868 #endif /* TAO_ORBCONF_H */