rpc_register(3ncs)rpc_register(3ncs)Namerpc_register - register an interface (server only)
Syntax
#include <idl/c/rpc.h>
void rpc_$register(ifspec, epv, status)
rpc_$if_spec_t *ifspec;
rpc_$epv_t epv;
status_$t *status;
Arguments
ifspec The interface being registered.
epv The entry point vector (EPV) for the operations in
the interface. The EPV is always defined in the
server stub that is generated by the NIDL compiler
from an interface definition.
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 registers an interface with the RPC runtime library. After
an interface is registered, the RPC runtime library will pass requests
for that interface to the server.
You can call several times with the same interface (for example, from
various subroutines of the same server), but each call must specify the
same EPV. Each registration increments a reference count for the reg‐
istered interface; an equal number of routines are then required to
unregister the interface.
Examples
The following statement registers the bank interface with the bank
server host's RPC runtime library:
rpc_$register (&bank_$if_spec, bank_$server_epv, &status);
Diagnostics
This section lists status codes for errors returned by this routine in
rpc_$op_rng_error The requested operation does not correspond to a
valid operation in the requested interface.
rpc_$too_many_ifs The maximum number of interfaces is already regis‐
tered with the RPC runtime library; the server must
unregister some interface before it registers an
additional interface.
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.
rpc_$illegal_register
You are trying to register an interface that is
already registered and you are using an EPV differ‐
ent from the one used when the interface was first
registered. An interface can be multiply regis‐
tered, but you must use the same EPV in each rou‐
tine.
rpc_$bad_pkt The server or client has received an ill-formed
packet.
FilesSee Alsointro(3ncs), rpc_register_mgr(3ncs), rpc_register_object(3ncs),
rpc_unregister(3ncs)rpc_register(3ncs)