Previous | Table of Contents | Next |
void add_arg ( | // PIDL | ||||
in Identifier | name, | // argument name | |||
in TypeCode | arg_type, | // argument datatype | |||
in OpaqueValue | value, | // argument value to be added | |||
in long | len, | // length/count of argument value | |||
in Flags | arg_flags | // argument flags | |||
); |
add_arg incrementally adds arguments to the request.
For each argument, minimally its value and len must be specified. An argument’s data type, name, and usage flags (i.e., in,
out, inout) may also be specified. If so indicated, arguments are validated for data type, order, name, and usage correctness
against the set of arguments expected for the indicated operation.
An implementation of the request services may relax the order constraint (and allow arguments to be specified out of order)
by doing ordering based upon argument name.
The arguments added to the request become associated with the request and are assumed to be unchanged until the invoke has
completed (or the request has been deleted).
Arguments may be associated with a request by specifying them on the Object::create_request call or by adding them via calls
to add_arg. Using both methods for specifying arguments for the same request is not supported.
In addition to the argument modes defined in Section 7.1.1, “Common Data
Structures,? on page 7-2,
arg_flags may also take the flag value IN_COPY_VALUE.
The argument passing flags defined in Section 7.1.1, “Common Data Structures,? on
page 7-2 may be used here to indicate the intended parameter passing mode of an
argument.
If the IN_COPY_VALUE flag is set, a copy of the argument value is made and used instead. This flag is ignored for inout and
out arguments.