gd_nentries, gd_nfields, gd_nfields_by_type gd_nmfields, gd_nmfields_by_type, gd_nmvectors, gd_nvectors —
Contents
Description
The gd_nentries() function queries a dirfile(5) database specified by dirfile and counts the number of
metadata entries satisfying the provided criteria. If parent is non-NULL, metafields under the field
specified by parent are considered; otherwise, top-level fields are considered, and metafields ignored.
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_INDIR_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_SARRAY_ENTRY, GD_SBIT_ENTRY, GD_SINDIR_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 spe‐
cial 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, SARRAY, STRING).
GD_VECTOR_ENTRIES
Count only numeric-valued vector field types (all field types except SINDIR and 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).
This function has a subset of the functionality of the gd_match_entries(3) function (q.v.).
SpecialCases
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);History
The get_nfields() function appeared in GetData-0.3.0.
The get_nfields_by_type(), get_nmfields(), get_nmfields_by_type(), get_nmvectors(), and get_nvectors()
functions appeared in GetData-0.4.0.
In GetData-0.7.0, these functions were renamed to gd_nfields(), gd_nfields_by_type(), gd_nmfields(),
gd_nmfields_by_type(), gd_nmvectors(), and gd_nvectors().
The gd_nentries() function appeared in GetData-0.8.0.
Name
gd_nentries, gd_nfields, gd_nfields_by_type gd_nmfields, gd_nmfields_by_type, gd_nmvectors, gd_nvectors —
count field entries in a Dirfile
Return Value
Upon successful completion, these functions return an unsigned in indicating the number of entries in the
database satisfying the supplied criteria.
On error, these functions return zero and store a negative-valued error code in the DIRFILE object which
may be retrieved by a subsequent call to gd_error(3). Possible error codes 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.
A descriptive error string for the error may be obtained by calling gd_error_string(3).
See Also
dirfile(5), gd_open(3), gd_entry_list(3), gd_error(3), gd_error_string(3), gd_hidden(3), gd_match_entries(3) Version 0.10.0 25 December 2016 gd_nentries(3)
Synopsis
#include<getdata.h>unsignedintgd_nentries(DIRFILE*dirfile,constchar*parent,unsignedinttype,unsignedintflags);unsignedintgd_nfields(DIRFILE*dirfile);unsignedintgd_nfields_by_type(DIRFILE*dirfile,gd_entype_ttype);unsignedintgd_nmfields(DIRFILE*dirfile,constchar*parent);unsignedintgd_nmfields_by_type(DIRFILE*dirfile,constchar*parent,gd_entype_ttype);unsignedintgd_nmvectors(DIRFILE*dirfile,constchar*parent);unsignedintgd_nvectors(DIRFILE*dirfile);
