1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122
|
.\" gd_bof.3. The gd_bof man page.
.\"
.\" Copyright (C) 2010, 2011, 2016 D. V. Wiebe
.\"
.\""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.\"
.\" This file is part of the GetData project.
.\"
.\" Permission is granted to copy, distribute and/or modify this document
.\" under the terms of the GNU Free Documentation License, Version 1.2 or
.\" any later version published by the Free Software Foundation; with no
.\" Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
.\" Texts. A copy of the license is included in the `COPYING.DOC' file
.\" as part of this distribution.
.\"
.TH gd_bof 3 "25 December 2016" "Version 0.10.0" "GETDATA"
.SH NAME
gd_bof \(em find the start of data in a Dirfile field
.SH SYNOPSIS
.SC
.B #include <getdata.h>
.HP
.BI "off_t gd_bof(DIRFILE *" dirfile ", const char *" field_code );
.EC
.SH DESCRIPTION
The
.FN gd_bof
function queries a dirfile(5) database specified by
.ARG dirfile
and finds the beginning-of-field marker for the vector field given by
.ARG field_code .
The caller should not assume that the beginning-of-field marker falls on a
frame boundary. The beginning-of-field marker is never negative.
For a
.B RAW
field, the beginning-of-field corresponds to the frame offset of that field
(see
.F3 gd_frameoffset ).
The beginning-of-field marker of the special field
.I INDEX
is zero.
The beginning-of-field of a
.B PHASE
field is the beginning-of-field of its input adjusted by the
.B PHASE
field's shift (or zero, if the shift would make it negative). The
beginning-of-field for all other vector fields is the the latest
beginning-of-field of any of its input fields.
If the beginning-of-field marker of a field is greather than or equal to its
end-of-field marker (see
.F3 gd_eof ),
then that field contains no data. For a
.B 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
.ARG dirfile
argument must point to a valid DIRFILE object previously created by a call to
.F3 gd_open .
.SH RETURN VALUE
Upon successful completion,
.FN gd_bof
returns a non-negative integer which is the sample number of the
beginning-of-field marker for the specified field. On error, it returns a
negative-valued error code. Possible error codes are:
.DD GD_E_BAD_CODE
The field specified by
.ARG field_code
or one of the fields it uses as input was not found in the database.
.DD GD_E_BAD_DIRFILE
The supplied dirfile was invalid.
.DD GD_E_DIMENSION
A scalar field was found where a vector field was expected in the definition
of
.ARG field_code
or one of its inputs, or else
.ARG field_code
itself specified a scalar field.
.DD 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.
.DD GD_E_RECURSE_LEVEL
Too many levels of recursion were encountered while trying to resolve
.ARG field_code .
This usually indicates a circular dependency in field specification in the
dirfile.
.PP
The error code is also stored in the
.B DIRFILE
object and may be retrieved after this function returns by calling
.F3 gd_error .
A descriptive error string for the error may be obtained by calling
.F3 gd_error_string .
.SH HISTORY
The
.FN gd_bof
function appeared in GetData-0.7.0.
Before GetData-0.10.0, this function could also fail with the error code
.BR GD_E_ALLOC .
In GetData-0.10.0, the error return from this function changed from -1 to a
negative-valued error code.
.SH SEE ALSO
.F3 gd_eof ,
.F3 gd_error ,
.F3 gd_error_string ,
.F3 gd_frameoffset ,
.F3 gd_open ,
dirfile(5), dirfile-encoding(5)
|