OSF DCE Application Development Guide--Core Components

OSF DCE Application Development Guide—Core Components
For a conformant varying array, if the IDL file contains
typedef struct {
long s;
long l;
[size_is(s), length_is(l)] my_byte open_array[];
} open_struct;
the declaration generated in the header file is
typedef struct {
idl_long_int s;
idl_long_int l;
ltype open_array[1];
} open_struct;
The maximum number of array elements in the local representation and the maximum
number of array elements in the network representation need not be the same. The
conversions between these numbers are done in the user-provided _net_size and
_local_size routines.
For fixed or varying arrays, the size of the storage available to hold the local data is
determined by the array size specified in IDL and the local type specified in the cs_char
attribute. For conformant or conformant varying arrays, you must determine the
transformations between local storage size and network storage size without reference to
the characters being transmitted or received. Where a variable-width character set is in
use, this means making the most conservative assumption about the size of the data.
18.3.15 The cs_stag, cs_drtag, and cs_rtag Attributes
The cs_stag, cs_drtag, and cs_rtag attributes are used in conjunction with the cs_char
and (optionally) the cs_tag_rtn attributes and DCE RPC routines for automatic code set
conversion to provide internationalized RPC applications with a mechanism to ensure
character and code set interoperability between clients and servers handling
international character data.
The cs_stag, cs_drtag, and cs_rtag attributes are parameter ACF attributes that
correspond to the sending tag, desired receiving tag, and receiving tag parameters
defined in operations in the IDL file that handle international character data. These
operation parameters tag international characters being passed in the operation’s input
and output parameters with code set identifying information. The cs_stag, cs_drtag,
and cs_rtag ACF parameter attributes declare the tag parameters in the corresponding
operation definition to be special code set parameters.
The cs_stag attribute has the following syntax:
operation_name ([cs_stag] parameter_name);
The cs_stag attribute identifies the code set used when the client sends international
characters to the server. Operations defined in the IDL file that specify international
18 24 Tandem Computers Incorporated 124245