OSF DCE Application Development Guide--Core Components

Interface Definition Language
17.14.5.3.5 The first_is Attribute
The first_is attribute is one of the attributes that can be used to allow the amount of data
in an array that will be transmitted to be determined at runtime. Each first_is attribute
specifies a lower data limit, which is the lowest index value in that dimension for the
array elements to be transmitted. If the entry in a first_is attribute for a dimension is
empty, the effect is as if the lower bound in that dimension had been specified.
When an array with the first_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 first_is attribute is for use with varying arrays. The following is an example of the
first_is attribute:
/* Assume the following values for the referenced variables:
long p = -1;
long q = -2;
long r = -3;
long t = -25;
long u = -35;
longx=1;
longy=2;
longz=3;
*/
long [first_is(p)] dd1[-10..10]; /* transmit dd1[-1..10] */
long [first_is(p),last_is(x)] dd2[-10..10]; /* transmit dd2[-1..1] */
long [first_is(p,q)] ee1[-10..10][-20..20];
/* transmit ee1[-1..10][-2..20] */
long [first_is(p,q)] ee2[-10..10][-20..20][-30..30];
/* transmit ee2[-1..10][-2..20][-30..30] */
long [first_is(p,q,r),last_is(,,z)] ee3[-10..10][-20..20][-30..30]:
/* transmit ee3[-1..10][-2..20[-3..30] */
double [first_is(,q,r),min_is(,t)] ff1[10][*..2][-30..30];
/* transmit ff1[0..9][-2..2][-3..30] */
double [first_is(p,q),min_is(,t,u)] ff2[-4..4][*..2][*..35];
/* transmit ff2[-1..4][-2..2][-35..35] */
double [max_is(x,,z),min_is(,t,u),first_is(p,,r)] ff3[-20..*][*..30][*..*]
/* transmit ff3[-1..1][-25..30][-3..3] */
17.14.5.3.6 The length_is Attribute
The length_is attribute is one of the attributes that can be used to allow the amount of
data in an array that will be transmitted to be determined at runtime. Each length_is
attribute specifies the number of elements in that dimension to be transmitted. If the
entry in a length_is attribute for a dimension is empty, the effect is for the highest index
value in that dimension for the elements to be transmitted to be determined from the
upper bound in that dimension.
An array can have either the last_is attribute or the length_is attribute, but not both.
124245 Tandem Computers Incorporated 17 39