![]() |
![]() |
e-docs > Tuxedo > Administering a Tuxedo Application at Run Time > OMG IDL Syntax and the C++ IDL Compiler |
Administering a Tuxedo Application at Run Time
|
OMG IDL Syntax and the C++ IDL Compiler
The Object Management Group (OMG) Interface Definition Language (IDL) is used to describe the interfaces that client objects call and that object implementations provide. An OMG IDL interface definition fully specifies each operation's parameters and provides the information needed to develop client applications that use the interface's operations.
Client applications are written in languages for which mappings from OMG IDL statements have been defined. How an OMG IDL statement is mapped to a client language construct depends on the facilities available in the client language. For example, an OMG IDL exception might be mapped to a structure in a language that has no notion of exception, or to an exception in a language that does.
OMG IDL statements obey the same lexical rules as C++ statements, although new keywords are introduced to support distribution concepts. OMG IDL statements also provide full support for standard C++ preprocessing features and OMG IDL-specific pragmas.
Note: When using a pragma version statement, be sure to locate it after the corresponding interface definition. The following is an example of proper usage:
module A
{
interface B
{
#pragma version B "3.5"
void op1();
};
};
The OMG IDL grammar is a subset of ANSI C++ with additional constructs to support the operation invocation mechanism. OMG IDL is a declarative language; it supports C++ syntax for constant, type, and operation declarations; it does not include any algorithmic structures or variables.
For a description of OMG IDL grammar, see Chapter 3 of the Common Object Request Broker: Architecture and Specification Revision 2.4 "OMG IDL Syntax and Semantics."
All OMG IDL grammar is supported, with the exception of the following type declarations and associated literals:
Note: Because CORBA 2.4 states that the native type declaration is intended for use in Object Adapters, not user interfaces, this type is available in the PortableServer module only for clients that support callbacks, that is, joint client/servers.
Do not use these data types in IDL definitions.
Note: Support for the long long, unsigned long long, wchar, and wstring data types was added to BEA Tuxedo CORBA in release 8.0.
OMG IDL Compiler Extensions
The IDL compiler defines preprocessor macros specific to the platform. All macros predefined by the preprocessor that you are using can be used in the OMG IDL file, in addition to the user-defined macros. You can also define your own macros when you are compiling or loading OMG IDL files.
Table 1-1 describes the predefined macros for each platform.
Note: The following platforms will not be supported when BEA Tuxedo 8.0 is initially released to customers, however, they will be certified and supported after the release:
To find out when the support for these platforms becomes official, contact BEA Customer Support. The contact Customer Support, go to http://www.beasys.com/support/ on the Internet and click on Contact Customer Support.
C++ IDL Compiler Constraints
Table 1-2 describes constraints for the BEA Tuxedo 8.0 C++ IDL compiler and provides information about recommended workarounds.
![]() |
![]() |
![]() |
![]() |
||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |