OSF DCE Application Development Guide--Core Components

OSF DCE Application Development Guide—Core Components
A structure can contain a conformant array (conformant structure) only as its last
member. And such a structure can be contained by another structure only as its last
member, and so on. A conformant structure cannot be returned by an operation as its
value and cannot be simply an out parameter. Note that a structure can contain any
number of pointer to conformant arrays. Structure fields defined as pointers to an array
base type and with one or more of the array size attributes define pointers to conformant
arrays. Since the size of the pointer field in the structure is fixed, the structure itself is
not conformant, although the array that it points to is conformant.
A structure cannot contain a pipe or context handle.
The ignore attribute specifies that the pointer is not to be transmitted in remote
procedure calls. Note that the ignore attribute can be applied only to a pointer that is a
member of a structure. The ignore attribute is not allowed in a type declaration that
defines a pointer type.
17.14.2 Unions
IDL provides two types of unions: encapsulated and nonencapsulated. An IDL union
must be discriminated. In an encapsulated union, the discriminator is part of the union.
In a nonencapsulated union, the discriminator is not part of the union.
The following type_specifier can be used to indicate either kind of union.
union [tag]
A definition of the union identified by tag must appear elsewhere in the interface
definition.
17.14.2.1 Encapsulated Unions
To define an encapsulated union, use the following syntax:
union [tag] switch (disc_type_spec discriminator) [union_name]
{
case
...
[default_case]
}
If a tag is supplied, it can be used in a type_specifier of the form shown in Section
17.14.2.
The disc_type_spec indicates the type of the discriminator, which can be an integer, a
character, a boolean, or an enumeration.
17 26 Tandem Computers Incorporated 124245