rpc_alloc_handle(3ncs)rpc_alloc_handle(3ncs)Namerpc_alloc_handle - create an RPC handle (client only)
Syntax
#include <idl/c/rpc.h>
handle_t rpc_$alloc_handle(object, family, status)
uuid_$t *object;
unsigned long family;
status_$t *status;
Arguments
object The UUID of the object to be accessed. If there is
no specific object, specify uuid_$nil.
family The address family to use in communications to
access the object. Currently, only socket_$ inter‐
net is supported.
status The completion status. If the completion status
returned in is equal to status_$ok , then the rou‐
tine that supplied it was successful.
Description
The routine creates an unbound RPC handle that identifies a particular
object but not a particular server or host.
If a remote procedure call is made using the unbound handle, it will
effect a broadcast to all Local Location Brokers (LLBs) on the local
network. If the call's interface and the object identified by the han‐
dle are both registered with any LLB, that LLB forwards the request to
the registering server. The client RPC runtime library returns the
first response that it receives and binds the handle to the first
responding server.
Examples
The following statement allocates a handle that identifies the Acme
company's payroll database object:
h = rpc_$alloc_handle (&acme_pay_id, socket_$internet, &status);
Diagnostics
This section lists status codes for errors returned by this routine in
rpc_$comm_failure The client was unable to get a response from the
server.
rpc_$unk_if The requested interface is not known. It is not
registered in the server, the version number of the
registered interface is different from the version
number specified in the request, or the UUID in the
request does not match the UUID of the registered
interface.
rpc_$cant_create_sock
The RPC runtime library was unable to create a
socket.
rpc_$cant_bind_sock The RPC runtime library created a socket but was
unable to bind it to a socket address.
rpc_$wrong_boot_time
The server boot time value maintained by the client
does not correspond to the current server boot
time. The server was probably rebooted while the
client program was running.
rpc_$not_in_call An internal error.
rpc_$you_crashed This error can occur if a server has crashed and
restarted. A client RPC runtime library sends the
error to the server if the client makes a remote
procedure call before the server crashes, then
receives a response after the server restarts.
rpc_$proto_error An internal protocol error.
FilesSee Alsointro(3ncs), rpc_free_handle(3ncs), rpc_set_binding(3ncs)rpc_alloc_handle(3ncs)