SYNOPSIS
#include <getdata.h>-
unsigned int gd_nentries(DIRFILE *dirfile, const char *parent,
unsigned int type, unsigned int flags);
- unsigned int gd_nfields(DIRFILE *dirfile);
- unsigned int gd_nfields_by_type(DIRFILE *dirfile, gd_entype_t type);
- unsigned int gd_nmfields(DIRFILE *dirfile, const char *parent);
- unsigned int gd_nmfields_by_type(DIRFILE *dirfile, const char *parent, gd_entype_t type);
- unsigned int gd_nmvectors(DIRFILE *dirfile, const char *parent);
- unsigned int gd_nvectors(DIRFILE *dirfile);
- unsigned int gd_nfields(DIRFILE *dirfile);
DESCRIPTION
The type argument should be one of the following symbols indicating an explicit entry type to count:
- GD_BIT_ENTRY, GD_CARRAY_ENTRY, GD_CONST_ENTRY, GD_DIVIDE_ENTRY, GD_INDEX_ENTRY, GD_LINCOM_ENTRY, GD_LINTERP_ENTRY, GD_MPLEX_ENTRY, GD_MULTIPLY_ENTRY, GD_PHASE_ENTRY, GD_POLYNOM_ENTRY, GD_RAW_ENTRY, GD_RECIP_ENTRY, GD_SBIT_ENTRY, GD_STRING_ENTRY, GD_WINDOW_ENTRY.
(GD_INDEX_ENTRY is a special field type for the implicit INDEX field) or else one of the following special symbols:
- GD_ALL_ENTRIES (= 0)
- Count entries of all types.
- GD_ALIAS_ENTRIES
- Count only aliases. This is the only way to get a count including aliases which do not point to valid field codes.
- GD_SCALAR_ENTRIES
- Count only scalar field types (CONST, CARRAY, STRING).
- GD_VECTOR_ENTRIES
- Count only vector field types (all field types except the scalar field types listed above).
The flags argument should be zero or more of the following flags, bitwise or'd together:
- GD_ENTRIES_HIDDEN
- Include hidden entries (see gd_hidden(3)) in the count: normally hidden entries are skipped;
- GD_ENTRIES_NOALIAS
- Exclude aliases from the count: normally aliases are considered the same as their target (that is: a field with n aliases, plus its canonical name, will be counted n+1 times).
Special Cases
The call- gd_nfields(dirfile);
is equivalent to
- gd_nentries(dirfile, NULL, GD_ALL_ENTRIES, 0);
The call
- gd_nfields_by_type(dirfile, type);
is equivalent to
- gd_nentries(dirfile, NULL, type, 0);
The call
- gd_nmfields(dirfile, parent);
is equivalent to
- gd_nentries(dirfile, parent, GD_ALL_ENTRIES, 0);
The call
- gd_nmfields_by_type(dirfile, parent, type);
is equivalent to
- gd_nentries(dirfile, parent, type, 0);
The call
- gd_nmvectors(dirfile, parent);
is equivalent to
- gd_nentries(dirfile, parent, GD_VECTOR_ENTRIES, 0);
The call
- gd_nvectors(dirfile);
is equivalent to
- gd_nentries(dirfile, NULL, GD_VECTOR_ENTRIES, 0);
RETURN VALUE
Upon successful completion, these functions return the number of entries in the database satisfying the supplied criteria. On error, they return zero and sets the dirfile error to a non-zero error value. Possible error values are:- GD_E_BAD_CODE
- The supplied parent field code was not found, or referred to a metafield itself.
- GD_E_BAD_DIRFILE
- The supplied dirfile was invalid.
- GD_E_BAD_ENTRY
- The type parameter supplied was not one of the symbols listed above.
The dirfile error may be retrieved by calling gd_error(3). A descriptive error string for the last error encountered can be obtained from a call to gd_error_string(3).