1 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:
-
native
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 thePortableServer
module only for clients that support callbacks, that is, joint client/servers. -
long double
-
fixed
Do not use these data types in IDL definitions.
Note:
Support for thelong long
, unsigned long long
, wchar
, and wstring
data types was added to Oracle Tuxedo CORBA in release 8.0.