OSF DCE Application Development Guide--Introduction and Style Guide
OSF DCE Application Development Guide—Introduction and Style Guide
• The owner of the object
• The owner’s group
• The object’s ACL
• The default object ACL
• The default container ACL
The standard header is a convenient means of keeping track of all the object’s associated
UUIDs, without having to define fields for them in one’s own data structure. It is
initialized by a call to the dce_db_std_header_init( ) routine.
This is the only database whose data type is explicitly defined in the .idl file, because it’s
the only database whose data type contains an application-defined field (that is, s_data).
The data type is also complex: that is, it contains both a header part and a data part. The
other two databases have record types that contain only (simple) data, no headers.
3.4.3.11 Name-Indexed Store
The name-indexed store contains only object UUIDs, indexed by the object names that
they are stored (and looked up) by. Note that there is no place where we actually declare
the data type of this database; all we do is declare the conversion routine (uu_convert(),
in the IDL file). The database is created without a header (the default), so all it will hold
is UUIDs.
If, for some reason, we did want to declare a header, then we would have to go through
the steps of declaring a separate complex data type for the store in the .idl file, wherein
would be declared the header type and the UUID type.
3.4.3.12 ACL UUID-Indexed Store
The ACL database contains only ACLs; its records have no headers. The records are
indexed by ACL UUIDs. Here we do not even explicitly declare the conversion routine
(rdacl_convert); it is generated by IDL (from a definition in dce/dceacl.idl). All we
have to do is pass the routine’s name to the dce_db_open( ) call that opens this database.
Note that this is the database that the ACL library has to have access to; this access is set
up by a call to dce_acl_register_object_type( ), which registers a manager type plus
database plus resolver routine combination. The registration then allows the ACL
library to derive any or all of these three things from an object name (the application’s
resolver routine has to help out in this, of course).
3− 30 Tandem Computers Incorporated 124246