Section 6 Definitions of Server Functions
Rev. 1.01 Mar. 17, 2008 Page 67 of 128
REJ10J1822-0101
6.6.5 COUNT (Number of Elements in an Array)
Description:
When ARY is used, it must be followed by a definition of COUNT, which indicates the number of
elements in the array to be passed between the client and the server.
(1) When the input/output keyword selected for ARY is IN
In this case, a parameter specification that includes ARY must be followed by a single definition
of COUNT to indicate the number of elements in the array.
<parameter including ARY>,<definition of COUNT>
COUNT is an expression that specifies the number of elements in the array to be passed from the
client to the server.
RPCGEN creates client-stub code that makes an RPC call after setting the size of an input IOVEC
structure by using an expression of the kind specified in figure 6.2. This must be taken into
account when COUNT is defined. For example, the expression for COUNT must not contain any
variables that hold the return value of a function. Figures 6.2 and 6.3 show the code for example 5
(without SVR_AUTH) of the examples introduced following the figures.
int func (struct INF * inf, struct ST * ptr )
{
IOVEC __input[2];
...
__input[ __ulInputParamCount ].pBaseAddress = (UINT8 *)(inf);
__input[ __ulInputParamCount++ ].ulSize = sizeof(*inf);
...
if (((UINT32)(inf->count)) > 0UL)
{
__input[ __ulInputParamCount ].pBaseAddress = (UINT8 *)(ptr);
__input[ __ulInputParamCount++ ].ulSize = sizeof(*ptr) * ((UINT32)(inf->count));
}
...
rpc_call(...);
}
Figure 6.2 Code Output to the Client Stub (IN) for COUNT