Provided by: libgetdata-doc_0.11.0-13_all bug

NAME

       gd_entry_list,         gd_field_list,         gd_field_list_by_type        gd_mfield_list,
       gd_mfield_list_by_type, gd_mvector_list, gd_vector_list — list field entries in a Dirfile

SYNOPSIS

       #include <getdata.h>

       const char **gd_entry_list(DIRFILE *dirfile, const char *parent, int type, unsigned int
              flags);

       const char **gd_field_list(DIRFILE *dirfile);

       const char **gd_field_list_by_type(DIRFILE *dirfile, gd_entype_t type);

       const char **gd_mfield_list(DIRFILE *dirfile, const char *parent);

       const char **gd_mfield_list_by_type(DIRFILE *dirfile, const char *parent, gd_entype_t
              type);

       const char **gd_mvector_list(DIRFILE *dirfile, const char *parent);

       const char **gd_vector_list(DIRFILE *dirfile);

DESCRIPTION

       The gd_entry_list() function queries a dirfile(5) database specified by dirfile and  finds
       all  the fields 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 list:

              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 special symbols:

       GD_ALL_ENTRIES
       (=0)    List entries of all types.

       GD_ALIAS_ENTRIES
               List only aliases.  This is the only way to get a list including aliases which  do
               not point to valid field codes.

       GD_SCALAR_ENTRIES
               List only scalar field types (CONST, CARRAY, SARRAY, STRING).

       GD_VECTOR_ENTRIES
               List 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 list: normally hidden entries are
               skipped;

       GD_ENTRIES_NOALIAS
               Exclude  aliases  from the list: normally aliases are considered the same as their
               target (that is: if a field satisfies the criteria, both its  canonical  name  and
               all its aliases will appear in the list).

       The  array  returned  will  be de-allocated by a call to gd_close(3) and should not be de-
       allocated by the caller.  The list returned should not be assumed to be in any  particular
       order.   The  array is terminated by a NULL pointer.  The number of elements in the array,
       excluding the terminating NULL, can be obtained from an equivalent call to gd_nentries(3).

       The caller may not modify any strings in the array, or the array  itself.   Doing  so  may
       cause  database corruption.  The pointer returned is guaranteed to be valid at least until
       gd_entry_list() is called again on the same DIRFILE object, or  until  the  array  is  de-
       allocated  by  a  call  to  gd_close(3).   (Although the data may have become obsolete, if
       metadata have been modified in the interrim.)

       This function has a subset  of  the  functionality  of  the  gd_match_entries(3)  function
       (q.v.).

   Special Cases
       The call
              gd_field_list(dirfile);

       is equivalent to
              gd_entry_list(dirfile, NULL, GD_ALL_ENTRIES, 0);

       The call
              gd_field_list_by_type(dirfile, type);

       is equivalent to
              gd_entry_list(dirfile, NULL, type, 0);

       The call
              gd_mfield_list(dirfile, parent);

       is equivalent to
              gd_entry_list(dirfile, parent, GD_ALL_ENTRIES, 0);

       The call
              gd_mfield_list_by_type(dirfile, parent, type);

       is equivalent to
              gd_entry_list(dirfile, parent, type, 0);

       The call
              gd_mvector_list(dirfile, parent);

       is equivalent to
              gd_entry_list(dirfile, parent, GD_VECTOR_ENTRIES, 0);

       The call
              gd_vector_list(dirfile);

       is equivalent to
              gd_entry_list(dirfile, NULL, GD_VECTOR_ENTRIES, 0);

RETURN VALUE

       Upon  successful  completion,  these  functions  returns  a pointer to an array of strings
       containing the names of all the entries in the database satisfying the supplied  criteria.
       The  array  is terminated with a NULL pointer.  If there are no matching entries, an array
       containing only the terminating NULL pointer is returned.

       On error, these functions return NULL 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).

HISTORY

       The get_field_list() function appeared in GetData-0.3.0.

       The      get_field_list_by_type(),      get_mfield_list(),      get_mfield_list_by_type(),
       get_mvector_list(), and get_vector_list() functions appeared in GetData-0.4.0.

       In     GetData-0.7.0,     these     functions    were    renamed    to    gd_field_list(),
       gd_field_list_by_type(),  gd_mfield_list(),  gd_mfield_list_by_type(),  gd_mvector_list(),
       and gd_vector_list().

       The gd_entry_list() function appeared in GetData-0.8.0.

SEE ALSO

       gd_error(3),   gd_error_string(3),   gd_hidden(3),   gd_match_entries(3),  gd_nentries(3),
       gd_open(3), dirfile(5)