]> arthur.barton.de Git - netatalk.git/blob - libatalk/cnid/cdb/cnid_cdb.h
d6a8034d6be51576fcf1191cd9502217a3672fea
[netatalk.git] / libatalk / cnid / cdb / cnid_cdb.h
1 /* 
2  * interface for database access to cnids. i do it this way to abstract
3  * things a bit in case we want to change the underlying implementation.
4  */
5
6 #ifndef _ATALK_CNID_CDB__H
7 #define _ATALK_CNID_CDB__H 1
8
9 #include <sys/stat.h>
10 #include <unistd.h>
11 #include <string.h>
12
13 #include <netatalk/endian.h>
14 #include <atalk/cnid.h>
15
16 /* cnid_open.c */
17 extern struct _cnid_module cnid_cdb_module;
18 extern struct _cnid_db *cnid_cdb_open (struct cnid_open_args *args);
19
20 /* cnid_close.c */
21 extern void cnid_cdb_close (struct _cnid_db *);
22
23 /* cnid_add.c */
24 extern cnid_t cnid_cdb_add (struct _cnid_db *, const struct stat *, cnid_t,
25                             const char *, size_t, cnid_t);
26 extern int cnid_cdb_getstamp (struct _cnid_db *, void *, const size_t );
27
28 /* cnid_get.c */
29 extern cnid_t cnid_cdb_get (struct _cnid_db *, cnid_t, const char *, size_t); 
30 extern char *cnid_cdb_resolve (struct _cnid_db *, cnid_t *, void *, size_t ); 
31 extern cnid_t cnid_cdb_lookup (struct _cnid_db *, const struct stat *, cnid_t,
32                                const char *, size_t);
33
34 /* cnid_update.c */
35 extern int cnid_cdb_update (struct _cnid_db *, cnid_t, const struct stat *,
36                             cnid_t, const char *, size_t);
37
38 /* cnid_delete.c */
39 extern int cnid_cdb_delete (struct _cnid_db *, const cnid_t);
40
41 /* cnid_nextid.c */
42 extern cnid_t cnid_cdb_nextid (struct _cnid_db *);
43
44 extern int cnid_cdb_lock   (void *);
45 extern int cnid_cdb_unlock (void *);
46
47 extern cnid_t cnid_cdb_rebuild_add (struct _cnid_db *, const struct stat *,
48                                     cnid_t, const char *, size_t, cnid_t);
49
50
51 #endif /* include/atalk/cnid_cdb.h */
52