summaryrefslogtreecommitdiffstats
path: root/debian/manpages/tdb_traverse.3
blob: f2c9f22982548813149e5c49624adda8d75c99ca (plain)
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
.TH TDB_TRAVERSE 3 "Aug 16, 2000" "Samba" "Linux Programmer's Manual"
.SH NAME
tdb_traverse \- visit every element in a tdb database
.SH SYNOPSIS
.nf
.B #include <tdb.h>
.sp
.BI "int tdb_traverse(TDB_CONTEXT *" tdb ", "
.BI "        int (*" fn ")(TDB_CONTEXT *,TDB_DATA,TDB_DATA,void *),"
.BI "        void *state);"
.sp
.SH DESCRIPTION
.I tdb_traverse is the only sure way to visit all the items within a
given database,
.I tdb
Because this function has intimate knowledge of the internals of the
database, it is able to cope with writers touching the database at the
same time it is trying to traverse it.
.sp
If 
.I fn 
is supplied it will be called with the 
.I state parameter 
for each element in the database, as the forth argument. The First argument is
the database
.I tdb
the second is the key and the third is the data. If this function call returns 
anything but 0, the traversal will stop. Unlike in tdb_fetch() the programmer
is not required to free either the pointer from either the key or data
parameters that are passed into the function. The
.I fn
function should have the prototype:
.nf
.in 10
int (*tdb_traverse_func)(TDB_CONTEXT *, TDB_DATA, TDB_DATA, void *);
.fi
.PP
.sp
Calling tdb_traverse with a NULL 
.I fn 
parameter is the appropriate way to count the number of elements in
the database.
.SH "RETURN VALUE"
The return value is the number of elements traversed or \-1 if there
was an error.
.SH AUTHORS
Software: Andrew Tridgell <tridge@linuxcare.com> and 
Luke Kenneth Casson Leighton
Man page: Ben Woodard <ben@valinux.com>
.SH "SEE ALSO"
.BR gdbm (3),
.BR tdb(3)