In addition to EAServer’s predefined datatypes, you can define your own datatypes in IDL and use them to declare return types and parameters.
All IDL type definitions are allowed, with these exceptions:
Fixed sized arrays are supported, but Sybase recommends that you use sequences instead.
The CORBA::Any type is not supported.
constant declarations are supported.
EAServer allows forward IDL references
You can create new IDL types that refer to other IDL types
that do not yet exist; among other benefits, this feature allows
you to create mutually recursive interface definitions. However,
you must be sure that all references are resolved before you can
generate the package code. EAServer will report errors for any unresolved
type references.
For information on defining datatypes, see Chapter 3, “OMG IDL Syntax and Semantics,” in the CORBA 2.3 specification.
In some cases, you must use the full scope name. In a parameter list, use a type’s full scope name if any of the following is true:
The type is declared in another interface.
The type is declared in another module.
The type has the same local-scope name as a type declared in the interface or module that contains the operation.
For example, consider the IDL:
module MyMod { typedef string MyType; interface MyIntf { typedef double MyOtherType; .... }; };
With these declarations, MyMod::MyType is the full scope name for MyType and MyMod::MyIntf::MyOtherType is the full scope name for MyOtherType.