DwtOpenHierarchy(3Dwt) DwtOpenHierarchy(3Dwt)
Name
DwtOpenHierarchy - Allocates a hierarchy ID and opens all the UID files in the hierarchy.
Syntax
#include <X11/DwtAppl.h>
Cardinal DwtOpenHierarchy(num_files, file_names_list, ancillary_structures_list,
hierarchy_id_return)
DRMCount num_files;
String file_names_list [];
IDBOSOpenParamPtr *ancillary_structures_list;
DRMHierarchy *hierarchy_id_return;
Arguments
num_files Specifies the number of files in the name list.
file_names_list
Specifies an array of pointers to character strings that identify the .uid files.
ancillary_structures_list
A list of operating system-dependent ancillary structures corresponding to such things as file names, clobber flag, and so forth.
This argument should be NULL for most operations. If you need to reference this structure, see the definition of IDBOSOpen-
ParamPtr in DwtAppl.h for more information.
hierarchy_id_return
Returns the search hierarchy ID. The search hierarchy ID identifies the list of .uid files that DRM will search (in order) when
performing subsequent fetch calls.
Description
The DwtOpenHierarchy function allows the user to specify the list of UID files that DRM will search in subsequent fetch operations. All
subsequent fetch operations will return the first occurrence of the named item encountered while traversing the UID hierarchy from the
first list element (UID file specification) to the last list element. This function also allocates a hierarchy ID and opens all the UID
files in the hierarchy. It initializes the optimized search lists in the hierarchy. If DwtOpenHierarchy encounters any errors during its
execution, any files that were opened are closed.
Each UID file specified in file_names_list can specify either a full directory pathname or a file name. If a UID file does not specify the
pathname it will not contain any embedded slashes (/), and it will be accessed through the UIDPATH environment variable.
The UIDPATH environment variable specifies search paths and naming conventions associated with UID files. It can contain the substitution
fields %L and %N, where the current setting of the LANG environment variable is substituted for %L and the .uid name passed to DwtOpenHier-
archy is substituted for %N. For example, the following UID path and DwtOpenHierarchy call would cause DRM to open two separate .uid
files:
UIDPATH=/uidlib/%L/%N.uid:/uidlib/%N/%L
static char *uid_files[] = {"/usr/users/me/test.uid", "test2"};
DRMHierarchy *Hierarchy_id;
DwtOpenHierarchy((DRMCount)2,uid_files, NULL, Hierarchy_id)
The first file, /usr/users/me/test.uid, would be opened as specified, as this file specification includes a pathname. The second file,
test2, would be looked for first in /uidlib/$LANG/test2.uid, and second in /uidlib/test2/$LANG.
After DwtOpenHierarchy opens the UID hierarchy, you should not delete or modify the UID files until you close the UID hierarchy by calling
DwtCloseHierarchy.
Return Values
This function returns one of these status return constants:
DRMSuccess The function executed
successfully.
DRMNotFound File not found.
DRMFailure The function failed.
See Also
DwtCloseHierarchy(3Dwt)
DwtOpenHierarchy(3Dwt)