OSF DCE Application Development Guide--Core Components
OSF DCE Application Development Guide—Core Components
• The rpc_rgy_get_codesets() routine
• The rpc_cs_char_set_compat_check() routine
• The rpc_cs_binding_set_tags( ) routine
• The dce_cs_loc_to_rgy( ) routine
• The rpc_ns_mgmt_read_codesets() routine
• The rpc_ns_mgmt_free_codesets() routine
Refer to the OSF DCE Application Development Reference for complete details about
these routines.
Programmers who write their own evaluation routines can also select when
evaluation is performed; that is, they can defer evaluation from occurring in the
client code, or they can defer evaluation completely at the client side and let it take
place in the server instead. Programmers who desire to defer evaluation to the
client stub can write an evaluation routine that sets the client’s and server’s
supported code sets into the binding handle returned by the client, then write the
evaluation logic into the stub support routine for tag setting so that it performs
evaluation within the client stub.
Applications that do evaluation in the client stub take the chance that the binding
handle that is evaluated is the only binding handle available. For example, suppose
there are three binding handles. Two are character and code set compatible, and
one is incompatible. The incompatible binding is selected for RPC. If you evaluate
in the tag-setting routine, you cannot reselect to get the other compatible bindings.
In general, it is recommended that character and code set evaluation take place in
the client, rather than the server, for performance reasons. Also, once the server is
selected and a connection is established between it and the client, the client cannot
typically reselect the server because the code sets are incompatible.
Within the client, it is recommended that evaluation be performed in the client code
rather than in the client stub because deferring evaluation to occur in the client stub
removes any way for the client to gain access to other potential binding handles.
15.3.6.3 Notes About Tag Setting
The DCE RPC character and code set compatibility evaluation routines set the method
and the code set tag values into a data structure in the binding handle returned to the
client. These routines always set the sending tag and desired receiving tag to the same
code set value.
In addition, if the application uses the DCE RPC routine rpc_cs_get_tags() to set the
code set tags for the stubs, the value of the server’s receiving tag will always be the value
of what the client sent to it in the desired receiving tag. If RMIR is used, the desired
receiving tag is the server’s current code set.
RPC application programmers who do not want to use the DCE RPC-provided
evaluation routines can use the rpc_cs_binding_set_tags( ) routine to set the code set tag
values into a binding handle.
15 − 30 Tandem Computers Incorporated 124245