Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

corbafwd.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 
00003 //=============================================================================
00004 /**
00005  *  @file   corbafwd.h
00006  *
00007  *  $Id: corbafwd.h,v 1.1.1.4.2.1 2003/05/19 16:25:41 chad Exp $
00008  *
00009  * Forward declare the basic types used in the ORB
00010  * implementation. Regular users of the ORB should only include
00011  * tao/corba.h, but the implementation of the ORB itself should
00012  * include this file.  That reduces interdependency and speed up
00013  * compilations and recompilations.
00014  *
00015  *
00016  *  @author Carlos O'Ryan
00017  *  @author Chris Cleeland
00018  *  @author Douglas C. Schmidt
00019  *  @author Copyright 1994-1995 by Sun Microsystems Inc.
00020  */
00021 //=============================================================================
00022 
00023 
00024 #ifndef TAO_CORBAFWD_H
00025 #define TAO_CORBAFWD_H
00026 
00027 #include "ace/pre.h"
00028 
00029 #include "ace/CDR_Base.h"
00030 
00031 #if defined (HPUX)
00032 #  if defined (IOR)
00033    /* HP-UX 11.11 defines IOR in /usr/include/pa/inline.h
00034       and we don't want that definition, see IOPC.h */
00035 #  undef IOR
00036 #  endif /* IOR */
00037 #endif /* HPUX */
00038 
00039 #if !defined (ACE_LACKS_PRAGMA_ONCE)
00040 # pragma once
00041 #endif /* ACE_LACKS_PRAGMA_ONCE */
00042 
00043 #include "ace/CORBA_macros.h"
00044 #include "tao/orbconf.h"
00045 #include "tao/varbase.h"
00046 #include "tao/TAO_Export.h"
00047 
00048 #if defined (_MSC_VER) || defined (__BORLANDC__)
00049 # ifdef   _DEBUG                  /* convert from VC++ convention ... */
00050 #   define  TAO_DEBUG             /* ... to normal convention */
00051 # endif
00052 #endif  /* _MSC_VER || __BORLANDC__ */
00053 
00054 #if defined (TAO_EXPORT_MACRO)
00055 #undef TAO_EXPORT_MACRO
00056 #endif
00057 #define TAO_EXPORT_MACRO TAO_Export
00058 #if defined(_MSC_VER)
00059 #if (_MSC_VER >= 1200)
00060 #pragma warning(push)
00061 #endif /* _MSC_VER >= 1200 */
00062 #pragma warning(disable:4250)
00063 #endif /* _MSC_VER */
00064 
00065 /// Define symbolic names for the ORB collocation strategies.
00066 class TAO_Collocation_Strategies
00067 {
00068 public:
00069   enum {
00070     /// i.e no collocation.
00071     CS_REMOTE_STRATEGY,
00072 
00073     /// Calls to the collocated object are forwarded by the POA.
00074     CS_THRU_POA_STRATEGY,
00075 
00076     /// Calls to the collocated object are made directly to its
00077     /// servant.
00078     CS_DIRECT_STRATEGY,
00079 
00080     /// This value should always be the last value in the enumeration.
00081     /// It provides the count for the number of collocation
00082     /// strategies.
00083     CS_LAST
00084   };
00085 };
00086 
00087 // Forward declarations of some data types are needed.
00088 
00089 class CORBA_Any;
00090 class CORBA_Any_var;
00091 class CORBA_Any_out;
00092 typedef class CORBA_Any *CORBA_Any_ptr;
00093 
00094 class CORBA_TypeCode;
00095 class CORBA_TypeCode_var;
00096 class CORBA_TypeCode_out;
00097 typedef class CORBA_TypeCode *CORBA_TypeCode_ptr;
00098 
00099 class CORBA_Exception;
00100 class CORBA_UserException;
00101 class CORBA_SystemException;
00102 class CORBA_UnknownUserException;
00103 class CORBA_ExceptionList;
00104 class CORBA_ExceptionList_var;
00105 typedef class CORBA_Exception *CORBA_Exception_ptr;
00106 
00107 // all the system exception classes, the list is used as follows:
00108 // - Define TAO_SYSTEM_EXCEPTION
00109 // - Use the list to expand that macro over all the system exceptions.
00110 // - Undefine TAO_SYSTEM_EXCEPTION
00111 #define TAO_SYSTEM_EXCEPTION_LIST \
00112   TAO_SYSTEM_EXCEPTION(UNKNOWN); \
00113   TAO_SYSTEM_EXCEPTION(BAD_PARAM); \
00114   TAO_SYSTEM_EXCEPTION(NO_MEMORY); \
00115   TAO_SYSTEM_EXCEPTION(IMP_LIMIT); \
00116   TAO_SYSTEM_EXCEPTION(COMM_FAILURE); \
00117   TAO_SYSTEM_EXCEPTION(INV_OBJREF); \
00118   TAO_SYSTEM_EXCEPTION(OBJECT_NOT_EXIST); \
00119   TAO_SYSTEM_EXCEPTION(NO_PERMISSION); \
00120   TAO_SYSTEM_EXCEPTION(INTERNAL); \
00121   TAO_SYSTEM_EXCEPTION(MARSHAL); \
00122   TAO_SYSTEM_EXCEPTION(INITIALIZE); \
00123   TAO_SYSTEM_EXCEPTION(NO_IMPLEMENT); \
00124   TAO_SYSTEM_EXCEPTION(BAD_TYPECODE); \
00125   TAO_SYSTEM_EXCEPTION(BAD_OPERATION); \
00126   TAO_SYSTEM_EXCEPTION(NO_RESOURCES); \
00127   TAO_SYSTEM_EXCEPTION(NO_RESPONSE); \
00128   TAO_SYSTEM_EXCEPTION(PERSIST_STORE); \
00129   TAO_SYSTEM_EXCEPTION(BAD_INV_ORDER); \
00130   TAO_SYSTEM_EXCEPTION(TRANSIENT); \
00131   TAO_SYSTEM_EXCEPTION(FREE_MEM); \
00132   TAO_SYSTEM_EXCEPTION(INV_IDENT); \
00133   TAO_SYSTEM_EXCEPTION(INV_FLAG); \
00134   TAO_SYSTEM_EXCEPTION(INTF_REPOS); \
00135   TAO_SYSTEM_EXCEPTION(BAD_CONTEXT); \
00136   TAO_SYSTEM_EXCEPTION(OBJ_ADAPTER); \
00137   TAO_SYSTEM_EXCEPTION(DATA_CONVERSION); \
00138   TAO_SYSTEM_EXCEPTION(INV_POLICY); \
00139   TAO_SYSTEM_EXCEPTION(REBIND); \
00140   TAO_SYSTEM_EXCEPTION(TIMEOUT); \
00141   TAO_SYSTEM_EXCEPTION(TRANSACTION_UNAVAILABLE); \
00142   TAO_SYSTEM_EXCEPTION(TRANSACTION_MODE); \
00143   TAO_SYSTEM_EXCEPTION(TRANSACTION_REQUIRED); \
00144   TAO_SYSTEM_EXCEPTION(TRANSACTION_ROLLEDBACK); \
00145   TAO_SYSTEM_EXCEPTION(INVALID_TRANSACTION); \
00146   TAO_SYSTEM_EXCEPTION(CODESET_INCOMPATIBLE); \
00147   TAO_SYSTEM_EXCEPTION(BAD_QOS); \
00148   TAO_SYSTEM_EXCEPTION(INVALID_ACTIVITY); \
00149   TAO_SYSTEM_EXCEPTION(ACTIVITY_COMPLETED); \
00150   TAO_SYSTEM_EXCEPTION(ACTIVITY_REQUIRED);
00151 
00152 #define TAO_SYSTEM_EXCEPTION(name) \
00153   class CORBA_ ## name
00154 TAO_SYSTEM_EXCEPTION_LIST
00155 #undef TAO_SYSTEM_EXCEPTION
00156 
00157 #if (TAO_HAS_MINIMUM_CORBA == 0)
00158 
00159 class CORBA_ConstructionPolicy;
00160 class CORBA_ConstructionPolicy_var;
00161 class CORBA_ConstructionPolicy_out;
00162 typedef class CORBA_ConstructionPolicy *CORBA_ConstructionPolicy_ptr;
00163 
00164 #endif /* ! TAO_HAS_MINIMUM_CORBA */
00165 
00166 class CORBA_Request;
00167 class CORBA_Request_var;
00168 class CORBA_Request_out;
00169 typedef class CORBA_Request *CORBA_Request_ptr;
00170 
00171 class CORBA_ORB_RequestSeq;
00172 class CORBA_ORB_RequestSeq_var;
00173 class CORBA_ORB_RequestSeq_out;
00174 
00175 class CORBA_NamedValue;
00176 class CORBA_NamedValue_var;
00177 class CORBA_NamedValue_out;
00178 typedef class CORBA_NamedValue *CORBA_NamedValue_ptr;
00179 
00180 class CORBA_NVList;
00181 class CORBA_NVList_var;
00182 class CORBA_NVList_out;
00183 typedef class CORBA_NVList *CORBA_NVList_ptr;
00184 
00185 class CORBA_Context;
00186 class CORBA_Context_var;
00187 class CORBA_Context_out;
00188 typedef class CORBA_Context *CORBA_Context_ptr;
00189 
00190 class CORBA_ContextList;
00191 class CORBA_ContextList_var;
00192 class CORBA_ContextList_out;
00193 typedef class CORBA_ContextList *CORBA_ContextList_ptr;
00194 
00195 class CORBA_ORB;
00196 class CORBA_ORB_var;
00197 class CORBA_ORB_out;
00198 typedef class CORBA_ORB *CORBA_ORB_ptr;
00199 
00200 class CORBA_Object;
00201 class CORBA_Object_var;
00202 class CORBA_Object_out;
00203 typedef class CORBA_Object *CORBA_Object_ptr;
00204 
00205 class CORBA_LocalObject;
00206 class CORBA_LocalObject_var;
00207 class CORBA_LocalObject_out;
00208 typedef class CORBA_LocalObject *CORBA_LocalObject_ptr;
00209 
00210 class CORBA_Current;
00211 class CORBA_Current_var;
00212 class CORBA_Current_out;
00213 typedef class CORBA_Current *CORBA_Current_ptr;
00214 
00215 class TAO_ServerRequest;
00216 class CORBA_ServerRequest;
00217 typedef class CORBA_ServerRequest *CORBA_ServerRequest_ptr;
00218 
00219 class CORBA_Environment;
00220 class CORBA_Environment_var;
00221 class CORBA_Environment_out;
00222 typedef class CORBA_Environment *CORBA_Environment_ptr;
00223 
00224 // = Service Forward declaration
00225 struct CORBA_ServiceDetail;
00226 class CORBA_ServiceDetail_var;
00227 class CORBA_ServiceDetail_out;
00228 typedef CORBA_ServiceDetail * CORBA_ServiceDetail_ptr;
00229 
00230 struct CORBA_ServiceInformation;
00231 class CORBA_ServiceInformation_var;
00232 class CORBA_ServiceInformation_out;
00233 typedef CORBA_ServiceInformation * CORBA_ServiceInformation_ptr;
00234 
00235 class CORBA_Principal;
00236 class CORBA_Principal_var;
00237 class CORBA_Principal_out;
00238 typedef class CORBA_Principal *CORBA_Principal_ptr;
00239 
00240 typedef class CORBA_ImplementationDef *CORBA_ImplementationDef_ptr;
00241 
00242 class CORBA_ValueBase;
00243 class CORBA_ValueBase_var;
00244 class CORBA_ValueBase_out;
00245 class CORBA_ValueFactoryBase;
00246 class CORBA_ValueFactoryBase_var;
00247 typedef CORBA_ValueFactoryBase *CORBA_ValueFactory;
00248 typedef CORBA_ValueFactoryBase_var CORBA_ValueFactory_var;
00249 class CORBA_DefaultValueRefCountBase;
00250 
00251 class CORBA_AbstractBase;
00252 typedef CORBA_AbstractBase *CORBA_AbstractBase_ptr;
00253 class CORBA_AbstractBase_var;
00254 class CORBA_AbstractBase_out;
00255 
00256 class CORBA_String_var;
00257 class CORBA_String_out;
00258 class CORBA_WString_var;
00259 class CORBA_WString_out;
00260 
00261 class CORBA_ExceptionList;
00262 
00263 /**
00264  * @todo This should be TAO_TAO_Stub
00265  */
00266 class TAO_InputCDR;
00267 class TAO_OutputCDR;
00268 class TAO_Stub;
00269 
00270 class CORBA_ORB_ObjectIdList;
00271 class CORBA_ORB_ObjectIdList_var;
00272 class CORBA_ORB_ObjectIdList_out;
00273 typedef CORBA_ORB_ObjectIdList *CORBA_ORB_ObjectIdList_ptr;
00274 
00275 // =================== Interface Repository =====================
00276 class CORBA_IRObject;
00277 class CORBA_IRObject_var;
00278 class CORBA_IRObject_out;
00279 typedef CORBA_IRObject *CORBA_IRObject_ptr;
00280 
00281 class CORBA_Contained;
00282 class CORBA_Contained_var;
00283 class CORBA_Contained_out;
00284 typedef CORBA_Contained *CORBA_Contained_ptr;
00285 
00286 class CORBA_ContainedSeq;
00287 class CORBA_ContainedSeq_var;
00288 class CORBA_ContainedSeq_out;
00289 
00290 class CORBA_Repository;
00291 class CORBA_Repository_var;
00292 class CORBA_Repository_out;
00293 typedef CORBA_Repository *CORBA_Repository_ptr;
00294 
00295 class CORBA_Container;
00296 class CORBA_Container_var;
00297 class CORBA_Container_out;
00298 typedef CORBA_Container *CORBA_Container_ptr;
00299 
00300 class CORBA_ModuleDef;
00301 class CORBA_ModuleDef_var;
00302 class CORBA_ModuleDef_out;
00303 typedef CORBA_ModuleDef *CORBA_ModuleDef_ptr;
00304 
00305 class CORBA_ConstantDef;
00306 class CORBA_ConstantDef_var;
00307 class CORBA_ConstantDef_out;
00308 typedef CORBA_ConstantDef *CORBA_ConstantDef_ptr;
00309 
00310 class CORBA_IDLType;
00311 class CORBA_IDLType_var;
00312 class CORBA_IDLType_out;
00313 typedef CORBA_IDLType *CORBA_IDLType_ptr;
00314 
00315 class CORBA_StructDef;
00316 class CORBA_StructDef_var;
00317 class CORBA_StructDef_out;
00318 typedef CORBA_StructDef *CORBA_StructDef_ptr;
00319 
00320 class CORBA_UnionDef;
00321 class CORBA_UnionDef_var;
00322 class CORBA_UnionDef_out;
00323 typedef CORBA_UnionDef *CORBA_UnionDef_ptr;
00324 
00325 class CORBA_EnumDef;
00326 class CORBA_EnumDef_var;
00327 class CORBA_EnumDef_out;
00328 typedef CORBA_EnumDef *CORBA_EnumDef_ptr;
00329 
00330 class CORBA_AliasDef;
00331 class CORBA_AliasDef_var;
00332 class CORBA_AliasDef_out;
00333 typedef CORBA_AliasDef *CORBA_AliasDef_ptr;
00334 
00335 class CORBA_InterfaceDef;
00336 class CORBA_InterfaceDef_var;
00337 class CORBA_InterfaceDef_out;
00338 typedef CORBA_InterfaceDef *CORBA_InterfaceDef_ptr;
00339 
00340 class CORBA_AbstractInterfaceDef;
00341 class CORBA_AbstractInterfaceDef_var;
00342 class CORBA_AbstractInterfaceDef_out;
00343 typedef CORBA_AbstractInterfaceDef *CORBA_AbstractInterfaceDef_ptr;
00344 
00345 class CORBA_LocalInterfaceDef;
00346 class CORBA_LocalInterfaceDef_var;
00347 class CORBA_LocalInterfaceDef_out;
00348 typedef CORBA_LocalInterfaceDef *CORBA_LocalInterfaceDef_ptr;
00349 
00350 class CORBA_ExceptionDef;
00351 class CORBA_ExceptionDef_var;
00352 class CORBA_ExceptionDef_out;
00353 typedef CORBA_ExceptionDef *CORBA_ExceptionDef_ptr;
00354 
00355 class CORBA_NativeDef;
00356 class CORBA_NativeDef_var;
00357 class CORBA_NativeDef_out;
00358 typedef CORBA_NativeDef *CORBA_NativeDef_ptr;
00359 
00360 class CORBA_InterfaceDefSeq;
00361 class CORBA_InterfaceDefSeq_var;
00362 class CORBA_InterfaceDefSeq_out;
00363 
00364 class CORBA_AbstractInterfaceDefSeq;
00365 class CORBA_AbstractInterfaceDefSeq_var;
00366 class CORBA_AbstractInterfaceDefSeq_out;
00367 
00368 class CORBA_LocalInterfaceDefSeq;
00369 class CORBA_LocalInterfaceDefSeq_var;
00370 class CORBA_LocalInterfaceDefSeq_out;
00371 
00372 class CORBA_ValueDef;
00373 class CORBA_ValueDef_var;
00374 class CORBA_ValueDef_out;
00375 typedef CORBA_ValueDef *CORBA_ValueDef_ptr;
00376 
00377 class CORBA_ValueDefSeq;
00378 class CORBA_ValueDefSeq_var;
00379 class CORBA_ValueDefSeq_out;
00380 
00381 class CORBA_ValueBoxDef;
00382 class CORBA_ValueBoxDef_var;
00383 class CORBA_ValueBoxDef_out;
00384 typedef CORBA_ValueBoxDef *CORBA_ValueBoxDef_ptr;
00385 
00386 struct CORBA_StructMember;
00387 class CORBA_StructMember_var;
00388 class CORBA_StructMember_out;
00389 
00390 class CORBA_StructMemberSeq;
00391 class CORBA_StructMemberSeq_var;
00392 class CORBA_StructMemberSeq_out;
00393 
00394 struct CORBA_Initializer;
00395 class CORBA_Initializer_var;
00396 class CORBA_Initializer_out;
00397 
00398 class CORBA_InitializerSeq;
00399 class CORBA_InitializerSeq_var;
00400 class CORBA_InitializerSeq_out;
00401 
00402 struct CORBA_UnionMember;
00403 class CORBA_UnionMember_var;
00404 class CORBA_UnionMember_out;
00405 
00406 class CORBA_UnionMemberSeq;
00407 class CORBA_UnionMemberSeq_var;
00408 class CORBA_UnionMemberSeq_out;
00409 
00410 class CORBA_EnumMemberSeq;
00411 class CORBA_EnumMemberSeq_var;
00412 class CORBA_EnumMemberSeq_out;
00413 
00414 struct CORBA_ModuleDescription;
00415 class CORBA_ModuleDescription_var;
00416 class CORBA_ModuleDescription_out;
00417 
00418 struct CORBA_ConstantDescription;
00419 class CORBA_ConstantDescription_var;
00420 class CORBA_ConstantDescription_out;
00421 
00422 class CORBA_TypedefDef;
00423 class CORBA_TypedefDef_var;
00424 class CORBA_TypedefDef_out;
00425 typedef CORBA_TypedefDef *CORBA_TypedefDef_ptr;
00426 
00427 struct CORBA_TypeDescription;
00428 class CORBA_TypeDescription_var;
00429 class CORBA_TypeDescription_out;
00430 
00431 class CORBA_PrimitiveDef;
00432 class CORBA_PrimitiveDef_var;
00433 class CORBA_PrimitiveDef_out;
00434 typedef CORBA_PrimitiveDef *CORBA_PrimitiveDef_ptr;
00435 
00436 class CORBA_StringDef;
00437 class CORBA_StringDef_var;
00438 class CORBA_StringDef_out;
00439 typedef CORBA_StringDef *CORBA_StringDef_ptr;
00440 
00441 class CORBA_WstringDef;
00442 class CORBA_WstringDef_var;
00443 class CORBA_WstringDef_out;
00444 typedef CORBA_WstringDef *CORBA_WstringDef_ptr;
00445 
00446 class CORBA_FixedDef;
00447 class CORBA_FixedDef_var;
00448 class CORBA_FixedDef_out;
00449 typedef CORBA_FixedDef *CORBA_FixedDef_ptr;
00450 
00451 class CORBA_SequenceDef;
00452 class CORBA_SequenceDef_var;
00453 class CORBA_SequenceDef_out;
00454 typedef CORBA_SequenceDef *CORBA_SequenceDef_ptr;
00455 
00456 class CORBA_ArrayDef;
00457 class CORBA_ArrayDef_var;
00458 class CORBA_ArrayDef_out;
00459 typedef CORBA_ArrayDef *CORBA_ArrayDef_ptr;
00460 
00461 struct CORBA_ExceptionDescription;
00462 class CORBA_ExceptionDescription_var;
00463 class CORBA_ExceptionDescription_out;
00464 
00465 class CORBA_ExceptionDefSeq;
00466 class CORBA_ExceptionDefSeq_var;
00467 class CORBA_ExceptionDefSeq_out;
00468 
00469 class CORBA_ExcDescriptionSeq;
00470 class CORBA_ExcDescriptionSeq_var;
00471 class CORBA_ExcDescriptionSeq_out;
00472 
00473 class CORBA_AttributeDef;
00474 class CORBA_AttributeDef_var;
00475 class CORBA_AttributeDef_out;
00476 typedef CORBA_AttributeDef *CORBA_AttributeDef_ptr;
00477 
00478 struct CORBA_AttributeDescription;
00479 class CORBA_AttributeDescription_var;
00480 class CORBA_AttributeDescription_out;
00481 
00482 struct CORBA_ParameterDescription;
00483 class CORBA_ParameterDescription_var;
00484 class CORBA_ParameterDescription_out;
00485 
00486 class CORBA_ParDescriptionSeq;
00487 class CORBA_ParDescriptionSeq_var;
00488 class CORBA_ParDescriptionSeq_out;
00489 
00490 class CORBA_ContextIdSeq;
00491 class CORBA_ContextIdSeq_var;
00492 class CORBA_ContextIdSeq_out;
00493 
00494 class CORBA_OperationDef;
00495 class CORBA_OperationDef_var;
00496 class CORBA_OperationDef_out;
00497 typedef CORBA_OperationDef *CORBA_OperationDef_ptr;
00498 
00499 struct CORBA_OperationDescription;
00500 class CORBA_OperationDescription_var;
00501 class CORBA_OperationDescription_out;
00502 
00503 struct CORBA_ParameterDescription;
00504 class CORBA_ParameterDescription_var;
00505 class CORBA_ParameterDescription_out;
00506 
00507 class CORBA_RepositoryIdSeq;
00508 class CORBA_RepositoryIdSeq_var;
00509 class CORBA_RepositoryIdSeq_out;
00510 
00511 class CORBA_OpDescriptionSeq;
00512 class CORBA_OpDescriptionSeq_var;
00513 class CORBA_OpDescriptionSeq_out;
00514 
00515 class CORBA_AttrDescriptionSeq;
00516 class CORBA_AttrDescriptionSeq_var;
00517 class CORBA_AttrDescriptionSeq_out;
00518 
00519 struct CORBA_InterfaceDescription;
00520 class CORBA_InterfaceDescription_var;
00521 class CORBA_InterfaceDescription_out;
00522 
00523 struct CORBA_ValueMember;
00524 class CORBA_ValueMember_var;
00525 class CORBA_ValueMember_out;
00526 
00527 class CORBA_ValueMemberSeq;
00528 class CORBA_ValueMemberSeq_var;
00529 class CORBA_ValueMemberSeq_out;
00530 
00531 class CORBA_ValueMemberDef;
00532 class CORBA_ValueMemberDef_var;
00533 class CORBA_ValueMemberDef_out;
00534 typedef CORBA_ValueMemberDef *CORBA_ValueMemberDef_ptr;
00535 
00536 struct CORBA_ValueDescription;
00537 class CORBA_ValueDescription_var;
00538 class CORBA_ValueDescription_out;
00539 
00540 class CORBA_TypeCodeFactory;
00541 class CORBA_TypeCodeFactory_var;
00542 class CORBA_TypeCodeFactory_out;
00543 typedef CORBA_TypeCodeFactory *CORBA_TypeCodeFactory_ptr;
00544 // =================== Interface Repository =====================
00545 
00546 class CORBA_StringSeq;
00547 class CORBA_StringSeq_var;
00548 class CORBA_StringSeq_out;
00549 class CORBA_WStringSeq;
00550 class CORBA_WStringSeq_var;
00551 class CORBA_WStringSeq_out;
00552 
00553 class CORBA_OctetSeq;
00554 class CORBA_OctetSeq_var;
00555 class CORBA_OctetSeq_out;
00556 
00557 // enum values defined in tao/NVList.h, bitwise ORed.
00558 typedef u_int CORBA_Flags;
00559 
00560 typedef void (*TAO_Skeleton)(
00561     TAO_ServerRequest &,
00562     void *,
00563     void *
00564 #if !defined (TAO_HAS_EXCEPTIONS) || defined (ACE_ENV_BKWD_COMPAT)
00565     , CORBA_Environment &
00566 #endif
00567   );
00568 
00569 // forward declare sequences.
00570 class TAO_Unbounded_String_Sequence;
00571 class TAO_Unbounded_WString_Sequence;
00572 template <class T> class TAO_Unbounded_Sequence;
00573 template <class T,class T_var> class TAO_Unbounded_Object_Sequence;
00574 
00575 // Provide a simple function to access the TSS default environment.
00576 // We tried with CORBA_Environment::default_environment (),
00577 // CORBA::default_environment() and others.
00578 TAO_Export CORBA_Environment& TAO_default_environment (void);
00579 
00580 enum TAO_SERVANT_LOCATION
00581 {
00582   TAO_SERVANT_FOUND,
00583   TAO_DEFAULT_SERVANT,
00584   TAO_SERVANT_MANAGER,
00585   TAO_SERVANT_NOT_FOUND
00586 };
00587 
00588 TAO_NAMESPACE CORBA
00589 {
00590   // = TITLE
00591   //    Provides the CORBA namespace.
00592   //
00593   // = DESCRIPTION
00594   //    This class allows the use of CORBA::Foo, as well as CORBA_Foo
00595   //    for all standard types Foo.
00596 
00597   typedef ACE_CDR::Boolean Boolean;
00598   typedef Boolean &Boolean_out;
00599   // Out type for boolean.
00600 
00601   // This and the other CORBA IDL types below are
00602   // typedef'd to the corresponding CDR types
00603   // already defined in ACE.
00604   typedef ACE_CDR::Octet Octet;
00605   typedef Octet  &Octet_out;
00606 
00607   typedef ACE_CDR::Short Short;
00608   typedef Short &Short_out;
00609 
00610   typedef ACE_CDR::UShort UShort;
00611   typedef UShort &UShort_out;
00612 
00613   typedef ACE_CDR::Long Long;
00614   typedef Long &Long_out;
00615 
00616   typedef ACE_CDR::ULong ULong;
00617   typedef ULong &ULong_out;
00618 
00619   typedef ACE_CDR::LongLong LongLong;
00620   typedef LongLong &LongLong_out;
00621 
00622   typedef ACE_CDR::ULongLong ULongLong;
00623   typedef ULongLong &ULongLong_out;
00624 
00625   typedef ACE_CDR::Float Float;
00626   typedef Float &Float_out;
00627 
00628   typedef ACE_CDR::Double Double;
00629   typedef Double &Double_out;
00630 
00631   typedef ACE_CDR::LongDouble LongDouble;
00632   typedef LongDouble &LongDouble_out;
00633 
00634   typedef ACE_CDR::Char Char;
00635   typedef Char &Char_out;
00636 
00637   // CORBA::TypeCode typedefs.
00638   typedef CORBA_TypeCode TypeCode;
00639   typedef CORBA_TypeCode *TypeCode_ptr;
00640   typedef CORBA_TypeCode_var TypeCode_var;
00641   typedef CORBA_TypeCode_out TypeCode_out;
00642 
00643   // = String memory management.
00644   TAO_NAMESPACE_INLINE_FUNCTION char *string_alloc (ULong len);
00645   TAO_NAMESPACE_STORAGE_CLASS  char *string_dup (const char *);
00646   TAO_NAMESPACE_INLINE_FUNCTION void string_free (char *);
00647 
00648   typedef CORBA_String_var String_var;
00649   typedef CORBA_String_out String_out;
00650 
00651   // WChar was standarized in CORBA 2.2, but is still a bit unstable.
00652 
00653   typedef ACE_CDR::WChar WChar;
00654   typedef WChar &WChar_out;
00655 
00656   // = String memory management routines.
00657   TAO_NAMESPACE_INLINE_FUNCTION WChar* wstring_alloc (ULong len);
00658   TAO_NAMESPACE_STORAGE_CLASS  WChar* wstring_dup (const WChar *const);
00659   TAO_NAMESPACE_INLINE_FUNCTION void wstring_free (WChar *const);
00660 
00661   typedef CORBA_WString_var WString_var;
00662   typedef CORBA_WString_out WString_out;
00663 
00664   /// String sequence typedefs
00665   typedef CORBA_StringSeq StringSeq;
00666   typedef CORBA_StringSeq_var StringSeq_var;
00667   typedef CORBA_StringSeq_out StringSeq_out;
00668   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_StringSeq;
00669 
00670   typedef CORBA_WStringSeq WStringSeq;
00671   typedef CORBA_WStringSeq_var WStringSeq_var;
00672   typedef CORBA_WStringSeq_out WStringSeq_out;
00673   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_WStringSeq;
00674 
00675   /// Octet sequence typedef
00676   typedef CORBA_OctetSeq OctetSeq;
00677   typedef CORBA_OctetSeq_var OctetSeq_var;
00678   typedef CORBA_OctetSeq_out OctetSeq_out;
00679   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_OctetSeq;
00680 
00681 //   typedef TAO_Unbounded_Sequence<Octet> OctetSeq;
00682 //   typedef TAO_Unbounded_Sequence<Octet> OctetSeq_var;
00683 //   typedef TAO_Unbounded_Sequence<Octet> OctetSeq_out;
00684 
00685   // = various CORBA defined classes.
00686   typedef CORBA_Any Any;
00687   typedef CORBA_Any_var Any_var;
00688   typedef CORBA_Any_out Any_out;
00689   typedef Any *Any_ptr;
00690 
00691   typedef CORBA_Environment Environment;
00692   typedef CORBA_Environment_var Environment_var;
00693   typedef CORBA_Environment_out Environment_out;
00694   typedef Environment *Environment_ptr;
00695 
00696   typedef CORBA_Exception Exception;
00697   typedef CORBA_SystemException SystemException;
00698   typedef CORBA_UserException  UserException;
00699 
00700   typedef CORBA_Request Request;
00701   typedef Request *Request_ptr;
00702   typedef CORBA_Request_var Request_var;
00703   typedef CORBA_Request_out Request_out;
00704 
00705   typedef CORBA_NamedValue NamedValue;
00706   typedef NamedValue *NamedValue_ptr;
00707   typedef CORBA_NamedValue_var NamedValue_var;
00708   typedef CORBA_NamedValue_out NamedValue_out;
00709 
00710   typedef CORBA_NVList NVList;
00711   typedef NVList *NVList_ptr;
00712   typedef CORBA_NVList_var NVList_var;
00713   typedef CORBA_NVList_out NVList_out;
00714 
00715   typedef CORBA_Context Context;
00716   typedef CORBA_Context *Context_ptr;
00717   typedef CORBA_Context_var Context_var;
00718   typedef CORBA_Context_out Context_out;
00719 
00720   typedef CORBA_ContextList ContextList;
00721   typedef CORBA_ContextList *ContextList_ptr;
00722   typedef CORBA_ContextList_var ContextList_var;
00723   typedef CORBA_ContextList_out ContextList_out;
00724 
00725   typedef CORBA_Object Object;
00726   typedef CORBA_Object *Object_ptr;
00727   typedef CORBA_Object_var Object_var;
00728   typedef CORBA_Object_out Object_out;
00729 
00730   typedef CORBA_LocalObject LocalObject;
00731   typedef CORBA_LocalObject *LocalObject_ptr;
00732   typedef CORBA_LocalObject_var LocalObject_var;
00733   typedef CORBA_LocalObject_out LocalObject_out;
00734 
00735   typedef CORBA_Principal Principal;
00736   typedef CORBA_Principal *Principal_ptr;
00737   typedef CORBA_Principal_var Principal_var;
00738   typedef CORBA_Principal_out Principal_out;
00739 
00740   typedef CORBA_ORB ORB;
00741   typedef CORBA_ORB *ORB_ptr;
00742   typedef CORBA_ORB_var ORB_var;
00743   typedef CORBA_ORB_out ORB_out;
00744 
00745   typedef CORBA_ServerRequest ServerRequest;
00746   typedef ServerRequest *ServerRequest_ptr;
00747 
00748   typedef CORBA_ExceptionList ExceptionList;
00749   typedef CORBA_ExceptionList_var ExceptionList_var;
00750   typedef CORBA_ExceptionList *ExceptionList_ptr;
00751 
00752   typedef CORBA_ImplementationDef *ImplementationDef_ptr;
00753 
00754   typedef CORBA_Current Current;
00755   typedef CORBA_Current *Current_ptr;
00756   typedef CORBA_Current_var Current_var;
00757   typedef CORBA_Current_out Current_out;
00758 
00759   typedef CORBA_TypeCodeFactory TypeCodeFactory;
00760   typedef CORBA_TypeCodeFactory *TypeCodeFactory_ptr;
00761   typedef CORBA_TypeCodeFactory_out TypeCodeFactory_out;
00762   typedef CORBA_TypeCodeFactory_var TypeCodeFactory_var;
00763   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_TypeCodeFactory;
00764 
00765   typedef CORBA_ValueBase ValueBase;
00766   typedef CORBA_ValueBase *ValueBase_ptr;
00767   typedef CORBA_ValueBase_var ValueBase_var;
00768   typedef CORBA_ValueBase_out ValueBase_out;
00769   typedef CORBA_ValueFactoryBase ValueFactoryBase;
00770   typedef CORBA_ValueFactoryBase *ValueFactory;
00771   // as CORBA 2.3a C++ map. 20.17.10 says
00772   typedef CORBA_ValueFactoryBase *ValueFactory;
00773   typedef CORBA_ValueFactory_var ValueFactory_var;
00774   // own invention, more readable
00775   typedef CORBA_DefaultValueRefCountBase  DefaultValueRefCountBase;
00776   TAO_NAMESPACE_INLINE_FUNCTION void add_ref (ValueBase *);
00777   TAO_NAMESPACE_INLINE_FUNCTION void remove_ref (ValueBase *);
00778 
00779   typedef CORBA_AbstractBase AbstractBase;
00780   typedef CORBA_AbstractBase *AbstractBase_ptr;
00781   typedef CORBA_AbstractBase_var AbstractBase_var;
00782   typedef CORBA_AbstractBase_out AbstractBase_out;
00783 
00784   // enum values defined in nvlist.hh, bitwise ORed.
00785   typedef u_int Flags;
00786 
00787   enum CompletionStatus
00788   {
00789     // = Completion Status for System exceptions
00790 
00791     COMPLETED_YES,     // successful or exceptional completion
00792     COMPLETED_NO,      // didn't change any state; retry is OK
00793     COMPLETED_MAYBE    // can't say what happened; retry unsafe
00794   };
00795 
00796   enum exception_type
00797   {
00798     // = Exception type.
00799 
00800     NO_EXCEPTION,
00801     USER_EXCEPTION,
00802     SYSTEM_EXCEPTION
00803   };
00804 
00805   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_exception_type;
00806 
00807   // all the system exception classes
00808 #define TAO_SYSTEM_EXCEPTION(name) \
00809   typedef CORBA_ ## name      name
00810   TAO_SYSTEM_EXCEPTION_LIST
00811 #undef TAO_SYSTEM_EXCEPTION
00812 
00813   typedef CORBA_UnknownUserException UnknownUserException;
00814 
00815   // = all the CORBA::is_nil methods.
00816   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (Object_ptr);
00817   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (AbstractBase_ptr);
00818   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (Environment_ptr);
00819   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (TypeCode_ptr);
00820   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (ORB_ptr);
00821   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (Principal_ptr);
00822   TAO_NAMESPACE_STORAGE_CLASS Boolean is_nil (Request_ptr);
00823   TAO_NAMESPACE_STORAGE_CLASS Boolean is_nil (ServerRequest_ptr req);
00824   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (NamedValue_ptr);
00825   TAO_NAMESPACE_INLINE_FUNCTION Boolean is_nil (NVList_ptr);
00826   TAO_NAMESPACE_STORAGE_CLASS Boolean is_nil (Context_ptr);
00827 
00828   // = all the CORBA release methods.
00829   TAO_NAMESPACE_INLINE_FUNCTION void release (Object_ptr);
00830   TAO_NAMESPACE_INLINE_FUNCTION void release (AbstractBase_ptr);
00831   TAO_NAMESPACE_INLINE_FUNCTION void release (Environment_ptr);
00832   TAO_NAMESPACE_INLINE_FUNCTION void release (Principal_ptr);
00833   TAO_NAMESPACE_INLINE_FUNCTION void release (TypeCode_ptr);
00834   TAO_NAMESPACE_INLINE_FUNCTION void release (ORB_ptr);
00835   TAO_NAMESPACE_STORAGE_CLASS void release (Request_ptr);
00836   TAO_NAMESPACE_STORAGE_CLASS void release (ServerRequest_ptr req);
00837   TAO_NAMESPACE_INLINE_FUNCTION void release (NamedValue_ptr);
00838   TAO_NAMESPACE_INLINE_FUNCTION void release (NVList_ptr);
00839   TAO_NAMESPACE_STORAGE_CLASS void release (Context_ptr);
00840 
00841   enum TCKind
00842   {
00843     // = Kinds of typecodes.
00844 
00845     // Do not change these enum values, or duplicate them if you need
00846     // to add values.  They are used to index tables, and if you
00847     // change the values you'll need to find and update all of those
00848     // tables.  The values are also part of the Common Data
00849     // Representation, and hence are part of IIOP and other ORB
00850     // protocols.
00851 
00852     tk_null               = 0,
00853     tk_void               = 1,
00854     tk_short              = 2,
00855     tk_long               = 3,
00856     tk_ushort             = 4,
00857     tk_ulong              = 5,
00858     tk_float              = 6,
00859     tk_double             = 7,
00860     tk_boolean            = 8,
00861     tk_char               = 9,
00862     tk_octet              = 10,
00863     tk_any                = 11,
00864     tk_TypeCode           = 12,
00865     tk_Principal          = 13,
00866     tk_objref             = 14,
00867     tk_struct             = 15,
00868     tk_union              = 16,
00869     tk_enum               = 17,
00870     tk_string             = 18,
00871     tk_sequence           = 19,
00872     tk_array              = 20,
00873     tk_alias              = 21,
00874     tk_except             = 22,
00875 
00876     tk_longlong           = 23,
00877     tk_ulonglong          = 24,
00878     tk_longdouble         = 25,
00879     tk_wchar              = 26,
00880     tk_wstring            = 27,
00881     tk_fixed              = 28,
00882     tk_value              = 29,
00883     tk_value_box          = 30,
00884     tk_native             = 31,
00885     tk_abstract_interface = 32,
00886     tk_local_interface    = 33,
00887     tk_component          = 34,
00888     tk_home               = 35,
00889     tk_event              = 36,
00890 
00891     // This symbol is not defined by CORBA 2.0.  It's used to speed up
00892     // dispatch based on TCKind values, and lets many important ones
00893     // just be table lookups.  It must always be the last enum value!!
00894 
00895     TC_KIND_COUNT
00896   };
00897   typedef TCKind &TCKind_out;
00898 
00899   // All the typecode constants
00900   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_null;
00901   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_void;
00902   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_short;
00903   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_long;
00904   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_ushort;
00905   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_ulong;
00906   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_float;
00907   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_double;
00908   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_boolean;
00909   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_char;
00910   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_octet;
00911   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_any;
00912   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_TypeCode;
00913   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_Principal;
00914   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_Object;
00915   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_string;
00916   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_longlong;
00917   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_ulonglong;
00918   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_longdouble;
00919   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_wchar;
00920   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_wstring;
00921 
00922   // = Typecode constants for system exceptions.
00923 #define TAO_SYSTEM_EXCEPTION(name) \
00924   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_ ## name
00925   TAO_SYSTEM_EXCEPTION_LIST
00926 #undef  TAO_SYSTEM_EXCEPTION
00927 
00928   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_UnknownUserException;
00929 
00930   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_Current;
00931 
00932   TAO_NAMESPACE_STORAGE_CLASS TypeCode_ptr _tc_NamedValue;
00933 
00934   enum
00935   {
00936     // = Flags for NVList add methods
00937     ARG_IN                  = 0x01,
00938     ARG_OUT                 = 0x02,
00939     ARG_INOUT               = 0x04,
00940     IN_COPY_VALUE           = 0x08,
00941     OUT_LIST_MEMORY         = 0x10,
00942     DEPENDENT_LIST          = 0x20,
00943 
00944     // = Flags for Context methods
00945     CTX_RESTRICT_SCOPE      = 0x40,
00946     CTX_DELETE_DESCENDENTS  = 0x80,
00947 
00948     // = Flags for deferred synchronous methods
00949     INV_NO_RESPONSE         = 0x100,
00950     INV_TERM_ON_ERR         = 0x200,
00951     RESP_NO_WAIT            = 0x400
00952   };
00953 
00954   typedef char *ORBid;
00955   typedef CORBA::String_var ORBid_var;
00956   typedef CORBA::String_out ORBid_out;
00957   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ORBid;
00958 
00959   // = Service definitions
00960   typedef CORBA::UShort ServiceType;
00961   typedef ServiceType CORBA_ServiceType;
00962   typedef CORBA::UShort_out ServiceType_out;
00963   typedef ServiceType_out CORBA_ServiceType_out;
00964   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ServiceType;
00965   TAO_NAMESPACE_STORAGE_CLASS const ServiceType Security;
00966 
00967   typedef CORBA::ULong ServiceOption;
00968   typedef ServiceOption CORBA_ServiceOption;
00969   typedef CORBA::ULong_out ServiceOption_out;
00970   typedef ServiceOption_out CORBA_ServiceOption_out;
00971   TAO_NAMESPACE_STORAGE_CLASS  CORBA::TypeCode_ptr _tc_ServiceOption;
00972 
00973   typedef CORBA::ULong ServiceDetailType;
00974   typedef ServiceDetailType CORBA_ServiceDetailType;
00975   typedef CORBA::ULong_out ServiceDetailType_out;
00976   typedef ServiceDetailType_out CORBA_ServiceDetailType_out;
00977   TAO_NAMESPACE_STORAGE_CLASS  CORBA::TypeCode_ptr _tc_ServiceDetailType;
00978 
00979   typedef CORBA_ServiceDetail ServiceDetail;
00980   typedef CORBA_ServiceDetail_var ServiceDetail_var;
00981   typedef CORBA_ServiceDetail_out ServiceDetail_out;
00982   typedef CORBA_ServiceDetail *ServiceDetail_ptr;
00983   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ServiceDetail;
00984 
00985   typedef CORBA_ServiceInformation ServiceInformation;
00986   typedef CORBA_ServiceInformation_var ServiceInformation_var;
00987   typedef CORBA_ServiceInformation_out ServiceInformation_out;
00988   typedef CORBA_ServiceInformation *ServiceInformation_ptr;
00989   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ServiceInformation;
00990 
00991   // ****************************************************************
00992 
00993   // =================== Interface Repository =====================
00994   typedef char *RepositoryId;
00995   typedef CORBA::String_var RepositoryId_var;
00996   typedef CORBA::String_out RepositoryId_out;
00997   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_RepositoryId;
00998 
00999   typedef char *Identifier;
01000   typedef CORBA::String_var Identifier_var;
01001   typedef CORBA::String_out Identifier_out;
01002   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_Identifier;
01003 
01004   typedef char *ScopedName;
01005   typedef CORBA_String_var ScopedName_var;
01006   typedef CORBA_String_out ScopedName_out;
01007   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ScopedName;
01008 
01009   typedef char *VersionSpec;
01010   typedef CORBA_String_var VersionSpec_var;
01011   typedef CORBA_String_out VersionSpec_out;
01012   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_VersionSpec;
01013 
01014   typedef CORBA::Short Visibility;
01015   typedef CORBA::Short_out Visibility_out;
01016   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_Visibility;
01017 
01018   TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short PRIVATE_MEMBER;
01019   TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short PUBLIC_MEMBER;
01020 
01021   typedef CORBA::Short ValueModifier;
01022   typedef CORBA::Short_out ValueModifier_out;
01023   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueModifier;
01024 
01025   TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short VM_NONE;
01026   TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short VM_CUSTOM;
01027   TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short VM_ABSTRACT;
01028   TAO_NAMESPACE_STORAGE_CLASS const CORBA::Short VM_TRUNCATABLE;
01029 
01030   typedef char * ContextIdentifier;
01031   typedef CORBA::String_var ContextIdentifier_var;
01032   typedef CORBA::String_out ContextIdentifier_out;
01033   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ContextIdentifier;
01034 
01035   typedef CORBA_IRObject IRObject;
01036   typedef CORBA_IRObject *IRObject_ptr;
01037   typedef CORBA_IRObject_var IRObject_var;
01038   typedef CORBA_IRObject_out IRObject_out;
01039   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_IRObject;
01040 
01041   enum DefinitionKind
01042     {
01043         dk_none,
01044         dk_all,
01045         dk_Attribute,
01046         dk_Constant,
01047         dk_Exception,
01048         dk_Interface,
01049         dk_Module,
01050         dk_Operation,
01051         dk_Typedef,
01052         dk_Alias,
01053         dk_Struct,
01054         dk_Union,
01055         dk_Enum,
01056         dk_Primitive,
01057         dk_String,
01058         dk_Sequence,
01059         dk_Array,
01060         dk_Repository,
01061         dk_Wstring,
01062         dk_Fixed,
01063         dk_Value,
01064         dk_ValueBox,
01065         dk_ValueMember,
01066         dk_Native,
01067         dk_AbstractInterface,
01068         dk_LocalInterface,
01069         dk_Component,
01070         dk_Home,
01071         dk_Factory,
01072         dk_Finder,
01073         dk_PrimaryKey,
01074         dk_Emits,
01075         dk_Publishes,
01076         dk_Consumes,
01077         dk_Provides,
01078         dk_Uses,
01079         dk_Event
01080     };
01081 
01082   typedef DefinitionKind &DefinitionKind_out;
01083   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_DefinitionKind;
01084 
01085   typedef CORBA_Contained Contained;
01086   typedef CORBA_Contained *Contained_ptr;
01087   typedef CORBA_Contained_var Contained_var;
01088   typedef CORBA_Contained_out Contained_out;
01089   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_Contained;
01090 
01091   typedef CORBA_ContainedSeq ContainedSeq;
01092   typedef CORBA_ContainedSeq_var ContainedSeq_var;
01093   typedef CORBA_ContainedSeq_out ContainedSeq_out;
01094   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ContainedSeq;
01095 
01096   typedef CORBA_Repository Repository;
01097   typedef CORBA_Repository *Repository_ptr;
01098   typedef CORBA_Repository_var Repository_var;
01099   typedef CORBA_Repository_out Repository_out;
01100   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_Repository;
01101 
01102   typedef CORBA_Container Container;
01103   typedef CORBA_Container *Container_ptr;
01104   typedef CORBA_Container_var Container_var;
01105   typedef CORBA_Container_out Container_out;
01106   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_Container;
01107 
01108   typedef CORBA_ModuleDef ModuleDef;
01109   typedef CORBA_ModuleDef *ModuleDef_ptr;
01110   typedef CORBA_ModuleDef_var ModuleDef_var;
01111   typedef CORBA_ModuleDef_out ModuleDef_out;
01112   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ModuleDef;
01113 
01114   typedef CORBA_ConstantDef ConstantDef;
01115   typedef CORBA_ConstantDef *ConstantDef_ptr;
01116   typedef CORBA_ConstantDef_var ConstantDef_var;
01117   typedef CORBA_ConstantDef_out ConstantDef_out;
01118   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ConstantDef;
01119 
01120   typedef CORBA_IDLType IDLType;
01121   typedef CORBA_IDLType *IDLType_ptr;
01122   typedef CORBA_IDLType_var IDLType_var;
01123   typedef CORBA_IDLType_out IDLType_out;
01124   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_IDLType;
01125 
01126   typedef CORBA_StructDef StructDef;
01127   typedef CORBA_StructDef *StructDef_ptr;
01128   typedef CORBA_StructDef_var StructDef_var;
01129   typedef CORBA_StructDef_out StructDef_out;
01130   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_StructDef;
01131 
01132   typedef CORBA_UnionDef UnionDef;
01133   typedef CORBA_UnionDef *UnionDef_ptr;
01134   typedef CORBA_UnionDef_var UnionDef_var;
01135   typedef CORBA_UnionDef_out UnionDef_out;
01136   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_UnionDef;
01137 
01138   typedef CORBA_EnumDef EnumDef;
01139   typedef CORBA_EnumDef *EnumDef_ptr;
01140   typedef CORBA_EnumDef_var EnumDef_var;
01141   typedef CORBA_EnumDef_out EnumDef_out;
01142   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_EnumDef;
01143 
01144   typedef CORBA_AliasDef AliasDef;
01145   typedef CORBA_AliasDef *AliasDef_ptr;
01146   typedef CORBA_AliasDef_var AliasDef_var;
01147   typedef CORBA_AliasDef_out AliasDef_out;
01148   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AliasDef;
01149 
01150   typedef CORBA_InterfaceDef InterfaceDef;
01151   typedef CORBA_InterfaceDef *InterfaceDef_ptr;
01152   typedef CORBA_InterfaceDef_var InterfaceDef_var;
01153   typedef CORBA_InterfaceDef_out InterfaceDef_out;
01154   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_InterfaceDef;
01155 
01156   typedef CORBA_AbstractInterfaceDef AbstractInterfaceDef;
01157   typedef CORBA_AbstractInterfaceDef *AbstractInterfaceDef_ptr;
01158   typedef CORBA_AbstractInterfaceDef_var AbstractInterfaceDef_var;
01159   typedef CORBA_AbstractInterfaceDef_out AbstractInterfaceDef_out;
01160   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AbstractInterfaceDef;
01161 
01162   typedef CORBA_LocalInterfaceDef LocalInterfaceDef;
01163   typedef CORBA_LocalInterfaceDef *LocalInterfaceDef_ptr;
01164   typedef CORBA_LocalInterfaceDef_var LocalInterfaceDef_var;
01165   typedef CORBA_LocalInterfaceDef_out LocalInterfaceDef_out;
01166   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_LocalInterfaceDef;
01167 
01168   typedef CORBA_ExceptionDef ExceptionDef;
01169   typedef CORBA_ExceptionDef *ExceptionDef_ptr;
01170   typedef CORBA_ExceptionDef_var ExceptionDef_var;
01171   typedef CORBA_ExceptionDef_out ExceptionDef_out;
01172   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ExceptionDef;
01173 
01174   typedef CORBA_NativeDef NativeDef;
01175   typedef CORBA_NativeDef *NativeDef_ptr;
01176   typedef CORBA_NativeDef_var NativeDef_var;
01177   typedef CORBA_NativeDef_out NativeDef_out;
01178   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_NativeDef;
01179 
01180   typedef CORBA_InterfaceDefSeq InterfaceDefSeq;
01181   typedef CORBA_InterfaceDefSeq_var InterfaceDefSeq_var;
01182   typedef CORBA_InterfaceDefSeq_out InterfaceDefSeq_out;
01183   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_InterfaceDefSeq;
01184 
01185   typedef CORBA_AbstractInterfaceDefSeq AbstractInterfaceDefSeq;
01186   typedef CORBA_AbstractInterfaceDefSeq_var AbstractInterfaceDefSeq_var;
01187   typedef CORBA_AbstractInterfaceDefSeq_out AbstractInterfaceDefSeq_out;
01188   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AbstractInterfaceDefSeq;
01189 
01190   typedef CORBA_LocalInterfaceDefSeq LocalInterfaceDefSeq;
01191   typedef CORBA_LocalInterfaceDefSeq_var LocalInterfaceDefSeq_var;
01192   typedef CORBA_LocalInterfaceDefSeq_out LocalInterfaceDefSeq_out;
01193   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_LocalInterfaceDefSeq;
01194 
01195   typedef CORBA_ValueDef ValueDef;
01196   typedef CORBA_ValueDef *ValueDef_ptr;
01197   typedef CORBA_ValueDef_var ValueDef_var;
01198   typedef CORBA_ValueDef_out ValueDef_out;
01199   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueDef;
01200 
01201   typedef CORBA_ValueDefSeq ValueDefSeq;
01202   typedef CORBA_ValueDefSeq_var ValueDefSeq_var;
01203   typedef CORBA_ValueDefSeq_out ValueDefSeq_out;
01204   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueDefSeq;
01205 
01206   typedef CORBA_ValueBoxDef ValueBoxDef;
01207   typedef CORBA_ValueBoxDef *ValueBoxDef_ptr;
01208   typedef CORBA_ValueBoxDef_var ValueBoxDef_var;
01209   typedef CORBA_ValueBoxDef_out ValueBoxDef_out;
01210   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueBoxDef;
01211 
01212   typedef CORBA_StructMember StructMember;
01213   typedef CORBA_StructMember_var StructMember_var;
01214   typedef CORBA_StructMember_out StructMember_out;
01215   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_StructMember;
01216 
01217   typedef CORBA_StructMemberSeq StructMemberSeq;
01218   typedef CORBA_StructMemberSeq_var StructMemberSeq_var;
01219   typedef CORBA_StructMemberSeq_out StructMemberSeq_out;
01220   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_StructMemberSeq;
01221 
01222   typedef CORBA_Initializer Initializer;
01223   typedef CORBA_Initializer_var Initializer_var;
01224   typedef CORBA_Initializer_out Initializer_out;
01225   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_Initializer;
01226 
01227   typedef CORBA_InitializerSeq InitializerSeq;
01228   typedef CORBA_InitializerSeq_var InitializerSeq_var;
01229   typedef CORBA_InitializerSeq_out InitializerSeq_out;
01230   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_InitializerSeq;
01231 
01232   typedef CORBA_UnionMember UnionMember;
01233   typedef CORBA_UnionMember_var UnionMember_var;
01234   typedef CORBA_UnionMember_out UnionMember_out;
01235   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_UnionMember;
01236 
01237   typedef CORBA_UnionMemberSeq UnionMemberSeq;
01238   typedef CORBA_UnionMemberSeq_var UnionMemberSeq_var;
01239   typedef CORBA_UnionMemberSeq_out UnionMemberSeq_out;
01240   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_UnionMemberSeq;
01241 
01242   typedef CORBA_EnumMemberSeq EnumMemberSeq;
01243   typedef CORBA_EnumMemberSeq_var EnumMemberSeq_var;
01244   typedef CORBA_EnumMemberSeq_out EnumMemberSeq_out;
01245   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_EnumMemberSeq;
01246 
01247   typedef CORBA_ModuleDescription ModuleDescription;
01248   typedef CORBA_ModuleDescription_var ModuleDescription_var;
01249   typedef CORBA_ModuleDescription_out ModuleDescription_out;
01250   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ModuleDescription;
01251 
01252   typedef CORBA_ConstantDescription ConstantDescription;
01253   typedef CORBA_ConstantDescription_var ConstantDescription_var;
01254   typedef CORBA_ConstantDescription_out ConstantDescription_out;
01255   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ConstantDescription;
01256 
01257   typedef CORBA_TypedefDef TypedefDef;
01258   typedef CORBA_TypedefDef *TypedefDef_ptr;
01259   typedef CORBA_TypedefDef_var TypedefDef_var;
01260   typedef CORBA_TypedefDef_out TypedefDef_out;
01261   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_TypedefDef;
01262 
01263   typedef CORBA_TypeDescription TypeDescription;
01264   typedef CORBA_TypeDescription_var TypeDescription_var;
01265   typedef CORBA_TypeDescription_out TypeDescription_out;
01266   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_TypeDescription;
01267 
01268   typedef CORBA_PrimitiveDef PrimitiveDef;
01269   typedef CORBA_PrimitiveDef *PrimitiveDef_ptr;
01270   typedef CORBA_PrimitiveDef_var PrimitiveDef_var;
01271   typedef CORBA_PrimitiveDef_out PrimitiveDef_out;
01272   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_PrimitiveDef;
01273 
01274   typedef CORBA_StringDef StringDef;
01275   typedef CORBA_StringDef *StringDef_ptr;
01276   typedef CORBA_StringDef_var StringDef_var;
01277   typedef CORBA_StringDef_out StringDef_out;
01278   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_StringDef;
01279 
01280   typedef CORBA_WstringDef WstringDef;
01281   typedef CORBA_WstringDef *WstringDef_ptr;
01282   typedef CORBA_WstringDef_var WstringDef_var;
01283   typedef CORBA_WstringDef_out WstringDef_out;
01284   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_WstringDef;
01285 
01286   typedef CORBA_FixedDef FixedDef;
01287   typedef CORBA_FixedDef *FixedDef_ptr;
01288   typedef CORBA_FixedDef_var FixedDef_var;
01289   typedef CORBA_FixedDef_out FixedDef_out;
01290   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_FixedDef;
01291 
01292   typedef CORBA_SequenceDef SequenceDef;
01293   typedef CORBA_SequenceDef *SequenceDef_ptr;
01294   typedef CORBA_SequenceDef_var SequenceDef_var;
01295   typedef CORBA_SequenceDef_out SequenceDef_out;
01296   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_SequenceDef;
01297 
01298   typedef CORBA_ArrayDef ArrayDef;
01299   typedef CORBA_ArrayDef *ArrayDef_ptr;
01300   typedef CORBA_ArrayDef_var ArrayDef_var;
01301   typedef CORBA_ArrayDef_out ArrayDef_out;
01302   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ArrayDef;
01303 
01304   typedef CORBA_ExceptionDescription ExceptionDescription;
01305   typedef CORBA_ExceptionDescription_var ExceptionDescription_var;
01306   typedef CORBA_ExceptionDescription_out ExceptionDescription_out;
01307   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ExceptionDescription;
01308 
01309   typedef CORBA_ExceptionDefSeq ExceptionDefSeq;
01310   typedef CORBA_ExceptionDefSeq_var ExceptionDefSeq_var;
01311   typedef CORBA_ExceptionDefSeq_out ExceptionDefSeq_out;
01312   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ExceptionDefSeq;
01313 
01314   typedef CORBA_ExcDescriptionSeq ExcDescriptionSeq;
01315   typedef CORBA_ExcDescriptionSeq_var ExcDescriptionSeq_var;
01316   typedef CORBA_ExcDescriptionSeq_out ExcDescriptionSeq_out;
01317   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ExcDescriptionSeq;
01318 
01319   enum AttributeMode
01320   {
01321     ATTR_NORMAL,
01322     ATTR_READONLY
01323   };
01324 
01325   typedef AttributeMode &AttributeMode_out;
01326   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AttributeMode;
01327 
01328   typedef CORBA_AttributeDef AttributeDef;
01329   typedef CORBA_AttributeDef *AttributeDef_ptr;
01330   typedef CORBA_AttributeDef_var AttributeDef_var;
01331   typedef CORBA_AttributeDef_out AttributeDef_out;
01332   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AttributeDef;
01333 
01334   typedef CORBA_AttributeDescription AttributeDescription;
01335   typedef CORBA_AttributeDescription_var AttributeDescription_var;
01336   typedef CORBA_AttributeDescription_out AttributeDescription_out;
01337   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AttributeDescription;
01338 
01339   enum PrimitiveKind
01340     {
01341       pk_null,
01342       pk_void,
01343       pk_short,
01344       pk_long,
01345       pk_ushort,
01346       pk_ulong,
01347       pk_float,
01348       pk_double,
01349       pk_boolean,
01350       pk_char,
01351       pk_octet,
01352       pk_any,
01353       pk_TypeCode,
01354       pk_Principal,
01355       pk_string,
01356       pk_objref,
01357       pk_longlong,
01358       pk_ulonglong,
01359       pk_longdouble,
01360       pk_wchar,
01361       pk_wstring,
01362       pk_value_base
01363     };
01364 
01365   typedef PrimitiveKind &PrimitiveKind_out;
01366   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_PrimitiveKind;
01367 
01368   enum ParameterMode
01369     {
01370       PARAM_IN,
01371       PARAM_OUT,
01372       PARAM_INOUT
01373     };
01374 
01375   typedef ParameterMode &ParameterMode_out;
01376   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ParameterMode;
01377 
01378   typedef CORBA_ParameterDescription ParameterDescription;
01379   typedef CORBA_ParameterDescription_var ParameterDescription_var;
01380   typedef CORBA_ParameterDescription_out ParameterDescription_out;
01381   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ParameterDescription;
01382 
01383   typedef CORBA_ParDescriptionSeq ParDescriptionSeq;
01384   typedef CORBA_ParDescriptionSeq_var ParDescriptionSeq_var;
01385   typedef CORBA_ParDescriptionSeq_out ParDescriptionSeq_out;
01386   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ParDescriptionSeq;
01387 
01388   typedef CORBA_ContextIdSeq ContextIdSeq;
01389   typedef CORBA_ContextIdSeq_var ContextIdSeq_var;
01390   typedef CORBA_ContextIdSeq_out ContextIdSeq_out;
01391   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ContextIdSeq;
01392 
01393   typedef CORBA_OperationDef OperationDef;
01394   typedef CORBA_OperationDef *OperationDef_ptr;
01395   typedef CORBA_OperationDef_var OperationDef_var;
01396   typedef CORBA_OperationDef_out OperationDef_out;
01397   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_OperationDef;
01398 
01399   enum OperationMode
01400     {
01401       OP_NORMAL,
01402       OP_ONEWAY
01403     };
01404 
01405   typedef OperationMode &OperationMode_out;
01406   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_OperationMode;
01407 
01408   typedef CORBA_OperationDescription OperationDescription;
01409   typedef CORBA_OperationDescription_var OperationDescription_var;
01410   typedef CORBA_OperationDescription_out OperationDescription_out;
01411   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_OperationDescription;
01412 
01413   typedef CORBA_RepositoryIdSeq RepositoryIdSeq;
01414   typedef CORBA_RepositoryIdSeq_var RepositoryIdSeq_var;
01415   typedef CORBA_RepositoryIdSeq_out RepositoryIdSeq_out;
01416   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_RepositoryIdSeq;
01417 
01418   typedef CORBA_OpDescriptionSeq OpDescriptionSeq;
01419   typedef CORBA_OpDescriptionSeq_var OpDescriptionSeq_var;
01420   typedef CORBA_OpDescriptionSeq_out OpDescriptionSeq_out;
01421   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_OpDescriptionSeq;
01422 
01423   typedef CORBA_AttrDescriptionSeq AttrDescriptionSeq;
01424   typedef CORBA_AttrDescriptionSeq_var AttrDescriptionSeq_var;
01425   typedef CORBA_AttrDescriptionSeq_out AttrDescriptionSeq_out;
01426   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_AttrDescriptionSeq;
01427 
01428   typedef CORBA_InterfaceDescription InterfaceDescription;
01429   typedef CORBA_InterfaceDescription_var InterfaceDescription_var;
01430   typedef CORBA_InterfaceDescription_out InterfaceDescription_out;
01431   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_InterfaceDescription;
01432 
01433   typedef CORBA_ValueMember ValueMember;
01434   typedef CORBA_ValueMember_var ValueMember_var;
01435   typedef CORBA_ValueMember_out ValueMember_out;
01436   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueMember;
01437 
01438   typedef CORBA_ValueMemberSeq ValueMemberSeq;
01439   typedef CORBA_ValueMemberSeq_var ValueMemberSeq_var;
01440   typedef CORBA_ValueMemberSeq_out ValueMemberSeq_out;
01441   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueMemberSeq;
01442 
01443   typedef CORBA_ValueMemberDef ValueMemberDef;
01444   typedef CORBA_ValueMemberDef *ValueMemberDef_ptr;
01445   typedef CORBA_ValueMemberDef_var ValueMemberDef_var;
01446   typedef CORBA_ValueMemberDef_out ValueMemberDef_out;
01447   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueMemberDef;
01448 
01449   typedef CORBA_ValueDescription ValueDescription;
01450   typedef CORBA_ValueDescription_var ValueDescription_var;
01451   typedef CORBA_ValueDescription_out ValueDescription_out;
01452   TAO_NAMESPACE_STORAGE_CLASS CORBA::TypeCode_ptr _tc_ValueDescription;
01453   // ================== Interface Repository =====================
01454 
01455   // There could be a single version of these methods, but g++ 2.7.2
01456   // gets horribly confused if we used CORBA::default_environment() at
01457   // this point.
01458   TAO_NAMESPACE_STORAGE_CLASS ORB_ptr ORB_init (int &argc,
01459                                                 char *argv[],
01460                                                 const char *orb_name = 0);
01461   TAO_NAMESPACE_STORAGE_CLASS ORB_ptr ORB_init (int &argc,
01462                                                 char *argv[],
01463                                                 const char *orb_name,
01464                                                 CORBA_Environment &ACE_TRY_ENV);
01465   // ORB initialisation
01466 
01467   // = TAO extensions...
01468 
01469   TAO_NAMESPACE_INLINE_FUNCTION CORBA_Environment& default_environment (void);
01470 
01471   // Obtain the thread-specific default environment.
01472   // This is obsolete and only left here for backwards compatibility.
01473 
01474 }
01475 TAO_NAMESPACE_CLOSE  // end of class (namespace) CORBA
01476 
01477 // ****************************************************************
01478 
01479 // Several OMG assigned numbers, for a complete list check:
01480 //
01481 // ftp://ftp.omg.org/pub/docs/ptc/99-05-02.txt
01482 
01483 //
01484 // For details on how to ask more numbers check:
01485 //
01486 // http://www.omg.org/cgi-bin/doc?ptc/99-02-01
01487 //
01488 
01489 /**
01490  * @name TAO-Specific Profile IDs
01491  *
01492  * The TAO @c IOP::ProfileId range 0x54414f00 - 0x54414f0f has been
01493  * reserved with the OMG.
01494  *
01495  * @note It is *NOT* necessary to list your own protocols here.
01496  *
01497  * @note The values below are subject to change at any point.
01498  */
01499 //@{
01500 /// Local IPC (Unix Domain)
01501 const CORBA::ULong TAO_TAG_UIOP_PROFILE = 0x54414f00U;
01502 
01503 /// ATM/AAL5
01504 // const CORBA::ULong TAO_TAG_AIOP_PROFILE = 0x54414f01U;
01505 
01506 /// Shared memory
01507 const CORBA::ULong TAO_TAG_SHMEM_PROFILE = 0x54414f02U;
01508 
01509 /// Message Queue
01510 // const CORBA::ULong TAO_TAG_MSGQ_PROFILE = 0x54414f03U;
01511 
01512 /// UDP
01513 const CORBA::ULong TAO_TAG_UDP_PROFILE = 0x54414f04U;
01514 
01515 /// IP/Multicast
01516 // const CORBA::ULong TAO_TAG_MCAST_PROFILE = 0x54414f05U;
01517 
01518 /// Compact/PCI
01519 // const CORBA::ULong TAO_TAG_CPCI_PROFILE = 0x54414f06U;
01520 
01521 /// VME Bus
01522 // const CORBA::ULong TAO_TAG_VME_PROFILE = 0x54414f07U;
01523 
01524 /// NT Named Pipes
01525 // const CORBA::ULong TAO_TAG_NTNP_PROFILE = 0x54414f08U;
01526 
01527 /// HTTP-NG
01528 // const CORBA::ULong TAO_TAG_HTTPNG_PROFILE = 0x54414f09U;
01529 
01530 /// Pipe
01531 // const CORBA::ULong TAO_TAG_PIPE_PROFILE = 0x54414f0AU;
01532 
01533 /// ????
01534 // const CORBA::ULong TAO_TAG_XXXX_PROFILE = 0x54414f0BU;
01535 
01536 /// Unreliable IP Multicast
01537 const CORBA::ULong TAO_TAG_UIPMC_PROFILE = 0x54414f0CU;
01538 
01539 /// Boeing Custom Protocol
01540 const CORBA::ULong TAO_TAG_BIOP_PROFILE = 0x54414f0FU;
01541 //@}
01542 
01543 /**
01544  * @name TAO-Specific Profile Tagged Component IDs
01545  *
01546  * The TAO @c IOP::TaggedComponent range 0x54414f00 - 0x54414f0f has
01547  * been reserved with the OMG.
01548  */
01549 //@{
01550 
01551 /// The TAO-specific OMG assigned value for the TAG_ORB_TYPE tagged
01552 /// component.
01553 /**
01554  * This number was assigned by the OMG.  Do *NOT* change.  The ASCII
01555  * representation is "TA\x00".  If necessary, we can request more ORB
01556  * types later.
01557  */
01558 const CORBA::ULong TAO_ORB_TYPE = 0x54414f00U;
01559 
01560 // This tag is no longer used in TAO.  It will not be reused for a
01561 // period of time to preserve backward compatibility with servers
01562 // running older versions of TAO.
01563 // ********* CHANGE THE VALUE!!!! IT IS THE SAME AS THE TAO_ORB_TYPE
01564 // VALUE.  THE ORB TYPE IS A TAGGED COMPONENT TOO SO TAO_TAG_PRIORITY
01565 // SHOULD HAVE A DIFFERENT VALUE.
01566 // #define TAO_TAG_PRIORITY 0x54414f00U
01567 
01568 //  Tag 0x54414f01U is defined/used by SSLIOP.
01569 
01570 /// Tag for storing multiple endpoints within a single profile.
01571 /**
01572  * This is TAO-specific, and is mostly used by TAO's RTCORBA support.
01573  * The standard TAG_ALTERNATE_IIOP_ADDRESSES tagged component is the
01574  * portable alternative.
01575  */
01576 const CORBA::ULong TAO_TAG_ENDPOINTS =  0x54414f02U;
01577 
01578 //const CORBA::ULong TAO_TAG_SOME_OTHER_TAG = 0x54414f03U;
01579 
01580 //@}
01581 
01582 /**
01583  * @name TAO-Specific @c IOP::ServiceId Values
01584  *
01585  * The TAO @c IOP::ServiceId range 0x54414f00 - 0x54414f0f has been
01586  * reserved with the OMG.
01587  * @par
01588  * These values are used in service contexts that are inserted into a
01589  * request or reply @c IOP::ServiceContextList.
01590  */
01591 //@{
01592 
01593 /// A dummy service context that is inserted in the service context
01594 /// list to preserve the alignment in DSI based gateways, so no
01595 /// marshaling/demarshaling is required.
01596 /**
01597  * @note This is *extremely* brittle but works.
01598  */
01599 const CORBA::ULong TAO_SVC_CONTEXT_ALIGN = 0x54414f00U;
01600 
01601 namespace CORBA
01602 {
01603   /// The OMG Vendor Minor Codeset ID.
01604   /**
01605    * This number is reserved by the OMG as a prefix to all the
01606    * standard system exception minor codes.  Check the CORBA/IIOP
01607    * specification for details.
01608    */
01609   const CORBA::ULong OMGVMCID = 0x4f4d0000U;
01610 }
01611 
01612 // This number was assigned by the OMG.  Do *NOT* change at random.
01613 // The ASCII representation is TA0xxxx, close enough since they only
01614 // take 20 bits, the first 16 are TA, the next 4 are 0000.  Remember
01615 // that we can only play with the last 12 bits, TAO_MAX_MINOR_CODE is
01616 // there to remind us of that.
01617 const CORBA::ULong TAO_DEFAULT_MINOR_CODE = 0x54410000U;
01618 const CORBA::ULong TAO_MAX_MINOR_CODE = 0x54410fffU;
01619 
01620 /**
01621  * @name Minor Code Encoding
01622  *
01623  * Encode the location in 5 bits, and the errno in 7 bits:
01624  *
01625  * @verbatim
01626  * 0x   0101 0100   0100 0001   0000   ____ _     ___ ____
01627  *          T           A        0    location      errno
01628  * @endverbatim
01629  **/
01630 //@{
01631 /**
01632  * @name Location Encoding
01633  *
01634  * The location encoding is the 5 bits, after the @ errno encoding.
01635  */
01636 //@{
01637 const CORBA::ULong TAO_INVOCATION_LOCATION_FORWARD_MINOR_CODE = (0x01U << 7);
01638 const CORBA::ULong TAO_INVOCATION_SEND_REQUEST_MINOR_CODE     = (0x02U << 7);
01639 const CORBA::ULong TAO_POA_DISCARDING                         = (0x03U << 7);
01640 const CORBA::ULong TAO_POA_HOLDING                            = (0x04U << 7);
01641 const CORBA::ULong TAO_UNHANDLED_SERVER_CXX_EXCEPTION         = (0x05U << 7);
01642 const CORBA::ULong TAO_INVOCATION_RECV_REQUEST_MINOR_CODE     = (0x06U << 7);
01643 const CORBA::ULong TAO_CONNECTOR_REGISTRY_NO_USABLE_PROTOCOL  = (0x07U << 7);
01644 const CORBA::ULong TAO_MPROFILE_CREATION_ERROR                = (0x08U << 7);
01645 const CORBA::ULong TAO_TIMEOUT_CONNECT_MINOR_CODE             = (0x09U << 7);
01646 const CORBA::ULong TAO_TIMEOUT_SEND_MINOR_CODE                = (0x0AU << 7);
01647 const CORBA::ULong TAO_TIMEOUT_RECV_MINOR_CODE                = (0x0BU << 7);
01648 const CORBA::ULong TAO_IMPLREPO_MINOR_CODE                    = (0x0CU << 7);
01649 const CORBA::ULong TAO_ACCEPTOR_REGISTRY_OPEN_LOCATION_CODE   = (0x0DU << 7);
01650 const CORBA::ULong TAO_ORB_CORE_INIT_LOCATION_CODE            = (0x0EU << 7);
01651 const CORBA::ULong TAO_POLICY_NARROW_CODE                     = (0x0FU << 7);
01652 const CORBA::ULong TAO_GUARD_FAILURE                          = (0x10U << 7);
01653 const CORBA::ULong TAO_POA_BEING_DESTROYED                    = (0x11U << 7);
01654 const CORBA::ULong TAO_POA_INACTIVE                           = (0x12U << 7);
01655 const CORBA::ULong TAO_CONNECTOR_REGISTRY_INIT_LOCATION_CODE  = (0x13U << 7);
01656 const CORBA::ULong TAO_AMH_REPLY_LOCATION_CODE                = (0x14U << 7);
01657 const CORBA::ULong TAO_RTCORBA_THREAD_CREATION_LOCATION_CODE  = (0x15U << 7);
01658 // *Don't* use TAO_<location>_MINOR_CODE greater than 0x1FU!
01659 //@}
01660 
01661 /**
01662  * @name @c errno Encoding
01663  *
01664  * The @c errno encoding is located in the bottom 7 bits.
01665  */
01666 //@{
01667 const CORBA::ULong TAO_UNSPECIFIED_MINOR_CODE        = 0x0U;
01668 const CORBA::ULong TAO_ETIMEDOUT_MINOR_CODE          = 0x1U;
01669 const CORBA::ULong TAO_ENFILE_MINOR_CODE             = 0x2U;
01670 const CORBA::ULong TAO_EMFILE_MINOR_CODE             = 0x3U;
01671 const CORBA::ULong TAO_EPIPE_MINOR_CODE              = 0x4U;
01672 const CORBA::ULong TAO_ECONNREFUSED_MINOR_CODE       = 0x5U;
01673 const CORBA::ULong TAO_ENOENT_MINOR_CODE             = 0x6U;
01674 const CORBA::ULong TAO_EBADF_MINOR_CODE              = 0x7U;
01675 const CORBA::ULong TAO_ENOSYS_MINOR_CODE             = 0x8U;
01676 const CORBA::ULong TAO_EPERM_MINOR_CODE              = 0x9U;
01677 const CORBA::ULong TAO_EAFNOSUPPORT_MINOR_CODE       = 0xAU;
01678 const CORBA::ULong TAO_EAGAIN_MINOR_CODE             = 0xBU;
01679 const CORBA::ULong TAO_ENOMEM_MINOR_CODE             = 0xCU;
01680 const CORBA::ULong TAO_EACCES_MINOR_CODE             = 0xDU;
01681 const CORBA::ULong TAO_EFAULT_MINOR_CODE             = 0xEU;
01682 const CORBA::ULong TAO_EBUSY_MINOR_CODE              = 0xFU;
01683 const CORBA::ULong TAO_EEXIST_MINOR_CODE             = 0x10U;
01684 const CORBA::ULong TAO_EINVAL_MINOR_CODE             = 0x11U;
01685 const CORBA::ULong TAO_ECOMM_MINOR_CODE              = 0x12U;
01686 const CORBA::ULong TAO_ECONNRESET_MINOR_CODE         = 0x13U;
01687 const CORBA::ULong TAO_ENOTSUP_MINOR_CODE            = 0x14U;
01688 // *Don't* use TAO_<errno>_MINOR_CODE greater than 0x7FU!
01689 //@}
01690 //@}
01691 
01692 // These numbers are assigned by the OpenGroup, a database is
01693 // available at
01694 //
01695 // ftp://ftp.opengroup.org/pub/code_set_registry/
01696 //
01697 #define TAO_CODESET_ID_ISO8859_1 0x00010001U
01698 #define TAO_CODESET_ID_UNICODE   0x00010109U
01699 
01700 // These are the default codesets that TAO declares, of course they
01701 // will be different on each platform, once the complete support for
01702 // character sets is implemented
01703 #define TAO_DEFAULT_CHAR_CODESET_ID  TAO_CODESET_ID_ISO8859_1
01704 #define TAO_DEFAULT_WCHAR_CODESET_ID TAO_CODESET_ID_UNICODE
01705 
01706 #define TAO_INVALID_PRIORITY -1
01707 
01708 // An hash define for the regular two way operation
01709 #define TAO_TWOWAY_RESPONSE_FLAG 255
01710 // ****************************************************************
01711 
01712 // A helper class to handle the various kinds of octet sequences used
01713 // inside the ORB.
01714 
01715 typedef TAO_Unbounded_Sequence<CORBA::Octet> TAO_opaque;
01716 extern TAO_Export CORBA::TypeCode_ptr TC_opaque;
01717 
01718 TAO_Export CORBA::Boolean
01719 operator<< (TAO_OutputCDR&, const TAO_opaque&);
01720 
01721 TAO_Export CORBA::Boolean
01722 operator>> (TAO_InputCDR&, TAO_opaque&);
01723 
01724 TAO_Export CORBA::Boolean
01725 operator<< (TAO_OutputCDR &, const CORBA::TCKind &);
01726 
01727 TAO_Export CORBA::Boolean
01728 operator>> (TAO_InputCDR &, CORBA::TCKind &);
01729 
01730 class TAO_ObjectKey;
01731 class TAO_ObjectKey_var;
01732 class TAO_ObjectKey_out;
01733 
01734 #if defined (__ACE_INLINE__)
01735 # include "tao/corbafwd.i"
01736 #endif /* ! __ACE_INLINE__ */
01737 
01738 #if defined(_MSC_VER) && (_MSC_VER >= 1200)
01739 #pragma warning(pop)
01740 #endif /* _MSC_VER */
01741 
01742 #include "ace/post.h"
01743 #endif /* TAO_CORBAFWD_H */

Generated on Mon Jun 16 13:48:11 2003 for TAO by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002