OSF DCE Application Development Guide--Introduction and Style Guide

OSF DCE Application Development Guide—Introduction and Style Guide
int do_client_command_line(
int argc,
char *argv[],
unsigned32 *kill_server,
objectname_vector_t *objectname_vector
)
{
unsigned32 status;
/* Check the command line... */
/* The "Usage" message requires some explanation. There are two */
/* modes for running the client: you can either specify that */
/* the server be killed, or you can specify a single object to */
/* bind to. It is possible that the object name is not a namespace */
/* entry (for example, I suppose, if it’s the management object, */
/* whatever its name is). That is when things get interesting, be- */
/* cause the application in effect implements a junction located */
/* at its server entry in the namespace, and clients are supposed */
/* to be able to bind to objects under the junction. Essentially */
/* this is done as follows. The client tries to bind to the over- */
/* qualified CDS entry formed by concatenating the specified ob- */
/* ject name to the server entry name; it ends up getting a part- */
/* ial binding to (what else?) the server; and it then makes a */
/* call to the remote bind operation with that binding, ostensibly */
/* to get the object UUID of the object whose name was specified */
/* (to bind to) when the client was invoked. These objects are */
/* held in a backing store database. The remote call makes its way */
/* by the familiar procedure to the server; the name_to_object() */
/* routine then simply looks up the desired object UUID by access- */
/* ing the name-indexed backing store. When the remote call com- */
/* pletes, the client finds itself with a full binding and the de- */
/* sired object UUID. It is pointed out below that remote calls */
/* are not routed by object UUID, so this is actually useless in */
/* regard to further operations, and can be discarded. Whether */
/* this is the way things ought to be I’m not sure. */
/* */
/* If the object binding option is specified, the following things */
/* should happen: */
/* */
/* 1. The message "View object <object_name_specified>" is dis- */
/* played. */
/* */
/* 2. The message "Via junction: <server_entry> */
/* Object name: <object_name>" */
/* is displayed. */
/* */
/* 3. The message "Binding: <full_binding_to_object>" is dis- */
/* played. */
/* */
A 88 Tandem Computers Incorporated 124246