Provided by: libgetdata-doc_0.9.0-2.2_all bug

NAME

       gd_eof — report the number of samples in a dirfile field

SYNOPSIS

       #include <getdata.h>

       off_t gd_eof(DIRFILE *dirfile, const char *field_code);

DESCRIPTION

       The  gd_eof()  function queries a dirfile(5) database specified by dirfile and returns the
       sample number of the end-of-field marker for the vector field given by  field_code.   This
       is  effectively  the  total number of samples available for the field, including any frame
       offset.

       The caller should not assume that this is equivalent (when accounting for the samples-per-
       frame  of  the  indicated  field)  to  the  number  of  frames in the database returned by
       gd_nframes(3), nor even that the end-of-field marker falls on a frame boundary.

       For a RAW field, the end-of-field marker occurs immediately after the last  datum  in  the
       data  file  associated  with the field.  For other field types, the end-of-field marker is
       equivalent to the end-of-field marker closest to the start of the dirfile of  any  of  the
       field inputs.  The special field INDEX has no end-of-field marker.

       The  end-of-field  marker  for  a  field containing no data is in the same location as, or
       before, its beginning-of-field marker (see gd_bof(3)).  For a RAW  field,  the  difference
       between  the  locations of the beginning- and end-of-field markers indicates the number of
       samples of data actually stored on disk.

       The dirfile argument must point to a valid DIRFILE object previously created by a call  to
       gd_open(3).

RETURN VALUE

       Upon  successful completion, gd_eof() returns the sample number of the end-of-field marker
       for the indicated field.  On error, it returns -1 and sets the dirfile error to a non-zero
       error value.  Possible error values are:

       GD_E_ALLOC
               The library was unable to allocate memory.

       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_FIELD_TYPE
               The location of the non-existent end-of-field marker for the special  field  INDEX
               was  requested,  possibly  as  a result of the field specified by field_code using
               INDEX as one of its inputs.

       GD_E_DIMENSION
               A scalar field was found where a vector field was expected in  the  definition  of
               field_code  or  one  of  its  inputs, or else field_code itself specified a scalar
               field.

       GD_E_INTERNAL_ERROR
               An internal error occurred in the library while trying to perform the task.   This
               indicates  a  bug  in  the  library.   Please  report  the incident to the GetData
               developers.

       GD_E_IO An attempt to stat(2) the file associated with the field,  or  one  of  its  input
               fields, failed.

       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.

       GD_E_UNKNOWN_ENCODING
               The  size  of  the decoded data file associated with the specified field or one of
               its  inputs  could  not  be  determined,  because  its  encoding  scheme  was  not
               understood.

       GD_E_UNSUPPORTED
               The  size  of  the decoded data file associated with the specified field or one of
               its inputs could not be determined, because its encoding scheme was not supported.

       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).

SEE ALSO

       dirfile(5),  dirfile-encoding(5),  gd_open(3), gd_bof(3), gd_error(3), gd_error_string(3),
       gd_nframes(3)