]> code.citadel.org Git - citadel.git/blob - citadel/server/database.h
Mostly finished the abstractions, now just need to silence some compiler warnings...
[citadel.git] / citadel / server / database.h
1 // Copyright (c) 1987-2017 by the citadel.org team
2 // This program is open source software.  Use, duplication, or disclosure
3 // are subject to the terms of the GNU General Public License, version 3.
4
5 // We expect these functions to act as an internal API that remains identical
6 // across multiple database back ends.
7
8 #ifndef DATABASE_H
9 #define DATABASE_H
10
11 void                    cdb_init_backends(void);
12
13 extern void             (*cdb_open_databases)(void);
14 extern void             (*cdb_close_databases)(void);
15 extern int              (*cdb_store)(int, const void *, int, void *, int);
16 extern int              (*cdb_delete)(int, void *, int);
17 extern void             (*cdb_free)(struct cdbdata *);
18 extern struct cdbdata * (*cdb_next_item)(int);
19 extern void             (*cdb_close_cursor)(int);
20 extern void             (*cdb_begin_transaction)(void);
21 extern void             (*cdb_end_transaction)(void);
22 extern void             (*cdb_check_handles)(void);
23 extern void             (*cdb_trunc)(int);
24 extern void             (*cdb_chmod_data)(void);
25 extern void             (*check_handles)(void *);
26 extern struct cdbdata * (*cdb_fetch)(int, const void *, int);
27 extern void             (*cdb_checkpoint)(void);
28 extern void             (*cdb_compact)(void);
29 extern void             (*cdb_rewind)(int);
30
31 #endif