Delta Chat Core C-API
dc_sqlite3.h
1 #ifndef __DC_SQLITE3_H__
2 #define __DC_SQLITE3_H__
3 #ifdef __cplusplus
4 extern "C" {
5 #endif
6 
7 
8 /*** library-private **********************************************************/
9 
10 #include <sqlite3.h>
11 #include <libetpan/libetpan.h>
12 #include <pthread.h>
13 
14 
15 typedef struct _dc_sqlite3 dc_sqlite3_t;
16 
17 
21 struct _dc_sqlite3
22 {
24  sqlite3* cobj;
25  dc_context_t* context;
27 };
28 
29 
30 dc_sqlite3_t* dc_sqlite3_new (dc_context_t*);
31 void dc_sqlite3_unref (dc_sqlite3_t*);
32 
33 #define DC_OPEN_READONLY 0x01
34 int dc_sqlite3_open (dc_sqlite3_t*, const char* dbfile, int flags);
35 
36 void dc_sqlite3_close (dc_sqlite3_t*);
37 int dc_sqlite3_is_open (const dc_sqlite3_t*);
38 
39 /* handle configurations, private */
40 int dc_sqlite3_set_config (dc_sqlite3_t*, const char* key, const char* value);
41 int dc_sqlite3_set_config_int (dc_sqlite3_t*, const char* key, int32_t value);
42 char* dc_sqlite3_get_config (dc_sqlite3_t*, const char* key, const char* def); /* the returned string must be free()'d, returns NULL on errors */
43 int32_t dc_sqlite3_get_config_int (dc_sqlite3_t*, const char* key, int32_t def);
44 
45 /* tools, these functions are compatible to the corresponding sqlite3_* functions */
46 sqlite3_stmt* dc_sqlite3_prepare (dc_sqlite3_t*, const char* sql); /* the result mus be freed using sqlite3_finalize() */
47 int dc_sqlite3_execute (dc_sqlite3_t*, const char* sql);
48 int dc_sqlite3_table_exists (dc_sqlite3_t*, const char* name);
49 void dc_sqlite3_log_error (dc_sqlite3_t*, const char* msg, ...);
50 uint32_t dc_sqlite3_get_rowid (dc_sqlite3_t*, const char* table, const char* field, const char* value);
51 
52 void dc_sqlite3_begin_transaction(dc_sqlite3_t*);
53 void dc_sqlite3_commit (dc_sqlite3_t*);
54 void dc_sqlite3_rollback (dc_sqlite3_t*);
55 
56 /* housekeeping */
57 #define DC_HOUSEKEEPING_DELAY_SEC 10
58 void dc_housekeeping (dc_context_t*);
59 
60 
61 #ifdef __cplusplus
62 } /* /extern "C" */
63 #endif
64 #endif /* __DC_SQLITE3_H__ */
65 
An object representing a single account.