Because the mapping of CORBA data types to C++ code is determined by both the type and usage (for example, whether the item is assigned to its in, inout, out, or return), each type is mapped to a certain C++ construct according to its usage either during code generation or when you copy it from the CORBA domain to the C++ domain (such as when you drag an attribute or operation from a CORBA interface to a regular class).
There are two properties that affect mapping of CORBA types to C++ code, in the case of types and interfaces:
The table lists the mapping settings used for the different property values.
| Property Value | C++ Implementation | Metaclass Used when Declaring Argument in Operation Signature | |
|---|---|---|---|
| Structure | Fixed | <Structure name> | CORBA::C++Mapping_CORBAFixedStruct |
| Variable | <Structure name>_var | CORBA::C++Mapping_CORBAVariableStruct | |
| Array Typedef | Fixed | <Typedef name> | CORBA::C++Mapping_CORBAFixedArray |
| Variable | <Typedef name>_var | CORBA::C++Mapping_CORBAVariableArray | |
| Sequence Typedef | Fixed | <Typedef name>_var | CORBA::C++Mapping_CORBASequence |
| Variable | <Typedef name>_var | CORBA::C++Mapping_CORBASequence | |
| Language Type | Fixed | <Type name> | User can choose; default is CORBA::C++Mapping_CORBABasic |
| Variable | |||
| Simple Typedef |
Simple Typedef recurses to the last real type that the typedef redefines, and uses the value of that type's CORBA::Type::C++Implementation if it is a type, or the value of CORBA::Class:C++Implementation if it is an interface, and the type's corresponding CORBA::C++Mapping_CORBA<implementation><type> metaclass. | ||