OSF DCE Application Development Guide--Introduction and Style Guide

A Sample Application
[in,out] uuid_t *u,
[in,out] error_status_t *st
);
}
/****************************************************************************/
/* [27.VI.94] */
/* */
/* sample_db.acf -- This makes the sample db interface into one that */
/* does pickling. */
/* */
/* */
/* -77 cols- */
/****************************************************************************/
interface sampledb {
[encode,decode] sample_data_convert();
[encode,decode] uu_convert();
}
The generic server is then implemented by sample_server.h and sample_server.c.
/****************************************************************************/
/* [26.IX.94] */
/* */
/* sample_server.h -- */
/* */
/* */
/* */
/* */
/* */
/* -77 cols- */
/****************************************************************************/
/* */
/* The following is passed via server_acl_mgr_setup() to the calls to */
/* server_create_acl(), where it is used to get a UUID to put in the */
/* ACLs we are creating, which will identify a user. In other words, at */
/* present the application is set up in such a way as to allow only the */
/* Cell Administrator principal to be a user with any kind of permissions */
/* at all on the objects we are creating. That’s why the client can only */
/* be run successfully by a user dce_login’d as "cell_admin". The reason */
/* for doing things this way is that it allows us to have a user principal */
/* we can always rely on being present, and thus avoid having to set up */
/* some user principals ourselves. Not that this would be so hard... */
#define SAMPLE_OWNER "cell_admin"
/* Keytab file name: */
#define KEYTAB "FILE:/tmp/sample_keytab"
/* Default leaf name and length for the server entry: */
124246 Tandem Computers Incorporated A5