NAME¶
gd_validate — check a dirfile field code for validity
SYNOPSIS¶
#include <getdata.h>
int gd_validate(DIRFILE *dirfile, const char
*field_code);
DESCRIPTION¶
The
gd_validate() function queries a
dirfile(5) database specified by
dirfile and checks whether
field_code, which may contain a
representation suffix, specifies a valid field.
The
dirfile argument must point to a valid DIRFILE object previously
created by a call to
gd_open(3).
This function checks whether the field and its input fields (if any) are found,
whether the representation suffix (if any) is valid, and also that all
non-literal parameters specify valid scalar fields.
RETURN VALUE¶
If all checks pass,
gd_validate() returns zero. On error, it returns -1
and sets the dirfile error to a non-zero error value. Possible error values
are:
- GD_E_BAD_CODE
- The field specified by field_code or one of the fields it uses as
input was not found in the database.
- GD_E_BAD_DIRFILE
- The supplied dirfile was invalid.
- GD_E_BAD_REPR
- The representation suffix specified in field_code was not
recognised.
- GD_E_BAD_SCALAR
- A non-literal scalar used in the definition of the field or one of its
inputs was not found, or was not a CONST or CARRAY
field.
- GD_E_DIMENSION
- A scalar field was found where a vector field was expected.
- GD_E_RECURSE_LEVEL
- Too many levels of recursion were encountered while trying to resolve
field_code. This usually indicates a circular dependency in field
specification in the dirfile.
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).
NOTES¶
It is not necessary to call this function before passing a field code to another
GetData function: all functions which accept field codes perform these checks
themselves.
SEE ALSO¶
dirfile(5),
gd_getdata(3),
gd_error(3),
gd_error_string(3),
gd_open(3)