OSF DCE Application Development Guide--Core Components

OSF DCE Application Development Guide—Core Components
When an array with the length_is attribute is used in a remote procedure call, the
elements actually passed in the call can be a subset of the maximum possible.
The length_is attribute is for use with varying arrays. The following is an example of the
length_is attribute:
/* Assume the following values for the referenced variables:
n3=5;
f2 = 10;
a1 = 11;
a2 = 12;
a3 = 14;
e1=9;
e2=3;
e3 = 10;
*/
/* The following declaration: */
int [min_is(,,n3),first_is(,f2,),last_is(a1,a2,a3)] \
gg[3..13,4..14,*..15];
/* specifies the same data to be */
/* transmitted as the declaration: */
int [min_is(,,n3),first_is(,f2,),length_is(e1,e2,e3)] \
gg[3..13,4..14,*..15];
17.14.5.4 Rules for Using Arrays
Observe the following rules when defining arrays in IDL:
A structure can contain only one conformant array, which must be the last member in
the structure.
Conformant arrays are not valid in unions.
A structure parameter containing a conformant array can be passed only by reference.
Arrays that have the transmit_as attribute cannot be conformant or varying arrays.
The structure member or parameter referenced in an array attribute cannot be defined
to have either the represent_as or transmit_as attribute.
Array bounds must be integers. Array attributes can reference only structure
members or parameters of integer type.
A parameter that is referenced by an array attribute on a conformant array must have
the in attribute.
Array elements cannot be context handles or pipes, or conformant arrays or
conformant structures.
17 40 Tandem Computers Incorporated 124245