gd_native_type3
Returns the native data type of a field in a dirfile
Usage
#include <getdata.h>
gd_type_t gd_native_type(DIRFILE *dirfile, const char *field_code);
Overview
The gd_native_type() function queries a dirfile(5) database specified by dirfile and determines the native type of data specified by field_code, which may contain a representation suffix.
The dirfile argument must point to a valid DIRFILE object previously created by a call to gd_open(3).
The native data type of a field of a given entry type is calculated as:
.PP BIT
.TP 8 INDEX GD_UINT64;
.PP CONST
.TP 8 CARRAY the data type of the field;
.PP DIVIDE
.TP 8 MULTIPLY if either input field is complex valued: GD_COMPLEX128, otherwise: GD_FLOAT64;
.TP 8 INDIR the data type of the input CARRAY;
.PP LINCOM
.TP 8 POLYNOM if any of the scalar parameters is complex valued, or if the native data type of any of the input fields is complex valued: GD_COMPLEX128, otherwise: GD_FLOAT64;
.TP 8 LINTERP if the look-up table is complex valued: GD_COMPLEX128, otherwise: GD_FLOAT64;
.PP MPLEX
.TP 8 WINDOW the native data type of the data field;
.TP 8 PHASE the native data type of the input field;
.TP 8 RAW the data type of the raw data on disk;
.TP 8 RECIP if the dividend or the native data type of the input field is complex valued: GD_COMPLEX128, otherwise: GD_FLOAT64;
.PP SARRAY
.PP SINDIR
.TP 8 STRING GD_STRING;
.TP 8 SBIT GD_INT64.
Furthermore, if the supplied field_code contains a representation suffix, and the native data type of the field is complex valued, the native type returned will be the corresponding real valued type.
Return value
Upon successful completion, gd_native_type() returns the native data type of the field code specified. This will equal one of the symbols:
-
GD_UINT8,GD_INT8,GD_UINT16,GD_INT16,GD_UINT32,GD_INT32,GD_FLOAT32,GD_FLOAT64,GD_COMPLEX64,GD_COMPLEX128,GD_STRING.
The meanings of these symbols are explained in the gd_getdata(3) manual page.
On error, this function returns GD_UNKNOWN and stores 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:
.TP 8 GD_E_ALLOC The library was unable to allocate memory.
.TP 8 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.
.TP 8 GD_E_BAD_DIRFILE The supplied dirfile was invalid.
.TP 8 GD_E_DIMENSION A scalar field was found where a vector field was expected.
.TP 8 GD_E_IO An error occurred while trying to read a LINTERP table from disk.
.TP 8 GD_E_LUT A LINTERP table was malformed.
.TP 8 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.
A descriptive error string for the error may be obtained by calling gd_error_string(3).
Releases
7 releases since Debian 7 (Wheezy); the text changed 2 times.