OSF DCE Application Development Guide--Introduction and Style Guide
Introduction to DCE Application Programming
To control access to the server’s objects, ACL managers are also set up.
1.5.4 Defining the Manager Entry Point Vectors for Each Set of
Operations
Manager is the DCE term for the part of a server that actually implements a set of
interface operations (the remote procedures), as distinguished from the more or less
generic server initialization code described here. (see sample_manager.c for an
example of manager code). A manager EPV is the data structure in which is recorded the
entry addresses of the application routines that implement the server’s operations, as
offered through an interface. The server’s stub code uses the EPV to dispatch incoming
RPCs to the requested operations. For each interface the server supports, a default
manager EPV is generated automatically by the IDL compiler. In order for the RPC
runtime to properly dispatch remote procedure calls to the correct procedure, the server
initialization code must declare the default EPVs and then register them with the runtime,
as shown in the following example:
extern rdaclif_v1_0_epv_t dce_acl_v1_0_epv;
extern sample_bind_v1_0_epv_t sample_bind_epv;
We will later describe registering the EPVs with the RPC runtime.
If more than one version of the same interface is to be supported by the same server,
another EPV is needed for each additional interface version. Interface version numbers
are specified by the version attribute in the .idl file. Additional EPVs are also required if
the application implements the procedures in more than one way. For example, some
applications invoke the same remote procedure to operate on different types of objects.
Different objects would likely require different implementations, and thus more than one
manager procedure would be coded. The type manager RPC runtime mechanism,
properly utilized, allows a server to declare multiple EPVs under the same interface, and
to have the RPC runtime vector (direct) the incoming remote calls to the correct
implementation code.
1.5.5 Registering the Server
To register the server with DCE, the server calls the following:
dce_server_register(
dce_server_c_ns_export, /* flag says register */
server_conf, /* server with CDS */
®ister_data,
&server_handle,
&status
);
124246 Tandem Computers Incorporated 1− 19