OSF DCE Application Development Guide--Core Components

Writing Internationalized RPC Applications
server’s local code set.
2. If both client and server support converters for each other’s local code sets (that is,
they can convert to and from each other’s local code set), the routine sets the
conversion method to RMIR.
3. If the server can convert to and from the client’s local code set, but the client
cannot convert from the server’s local code set, the routine sets the conversion
method to SMIR.
4. If the client can convert to and from the server’s local code set, but the server
cannot convert to and from the client’s local code set, the routine sets the
conversion method to CMIR.
If the conversion method is SMIR or RMIR, the rpc_cs_eval_with_universal( )
routine sets both the sending tag and the desired receiving tag to the code set value
that represents the client’s local code set. In the case of CMIR, the routine sets
both the sending tag and the desired receiving tag to the code set value that
represents the server’s local code set.
5. If neither client nor server support each other’s local code set, the routine next
determines if they both support a code set into which they both can convert to/from
their local code sets. If it finds an intermediate set into which they both can
convert, it sets the conversion method to INTERMEDIATE and sets the sending
tag and desired receiving tag to the code set value that represents the intermediate
code set to use.
6. If the routine does not find any intermediate code set into which client and server
can convert, it sets the sending tag and desired receiving tag to the code set value
that represents the ISO 10646 universal code set, which is the default intermediate
code set that all DCE clients and servers support.
The rpc_cs_eval_without_universal() routine uses the following conversion model to
determine a conversion method:
RMIR
SMIR (client uses its local code set, server converts to and from it)
CMIR (server uses its local code set, client converts to and from it)
Intermediate
Reject for code set incompatibility
Consequently, the rpc_cs_eval_without_universal( ) uses the same evaluation logic as
rpc_cs_eval_with_universal( ) except that it rejects the server binding if the client and
server do not support a common code set to use as an intermediate code set.
15.3.6.2 Writing Customized Evaluation Routines
Programmers writing internationalized RPC applications can develop their own character
and code set compatibility evaluation routines if their applications’ needs are not met by
the DCE RPC evaluation routines. These programmers may want to use the following
DCE RPC routines within their evaluation routine:
124245 Tandem Computers Incorporated 15 29