rpc_alloc_handle(3ncs)
Name
rpc_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_$ internet is supported.
status The completion status. If the completion status returned in status.all is equal to status_$ok , then the routine that supplied it was successful.
Description
The rpc_$alloc_handle 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 handle 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 rpc_$ routine in status.all.
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.
Files
/usr/include/idl/c/rpc.h
/usr/include/idl/rpc.idl