Statistics
| Branch: | Tag: | Revision:

root / lib / filter-kvs.h @ aebfd4cc

History | View | Annotate | Download (1.87 KB)

1
/* SylFilter - a message filter
2
 *
3
 * Copyright (C) 2011 Hiroyuki Yamamoto
4
 * Copyright (C) 2011 Sylpheed Development Team
5
 */
6

    
7
#ifndef __FILTER_KVS_H__
8
#define __FILTER_KVS_H__
9

    
10
typedef struct _XFilterKVS        XFilterKVS;
11

    
12
typedef int (*XFilterKVSForeachFunc) (XFilterKVS *kvs, const char *key, void *value, int size, void *data);
13

    
14
typedef struct _XFilterKVSEngine
15
{
16
        XFilterKVS * (*open)        (const char *dbfile);
17
        int (*close)                (XFilterKVS *kvs);
18
        int (*insert)                (XFilterKVS *kvs, const char *key, void *value,
19
                                 int size);
20
        int (*delete)                (XFilterKVS *kvs, const char *key);
21
        int (*update)                (XFilterKVS *kvs, const char *key, void *value,
22
                                 int size);
23
        int (*fetch)                (XFilterKVS *kvs, const char *key, void *vbuf, int vsize);
24
        int (*size)                (XFilterKVS *kvs);
25
        int (*foreach)                (XFilterKVS *kvs, XFilterKVSForeachFunc func, void *data);
26
} XFilterKVSEngine;
27

    
28
int xfilter_kvs_set_engine        (XFilterKVSEngine *engine);
29

    
30
XFilterKVS *xfilter_kvs_new        (const char *dbfile, void *dbhandle);
31
const char *xfilter_kvs_get_file(XFilterKVS *kvs);
32
void *xfilter_kvs_get_handle        (XFilterKVS *kvs);
33

    
34
XFilterKVS *xfilter_kvs_open        (const char *dbfile);
35
int xfilter_kvs_close                (XFilterKVS *kvs);
36

    
37
int xfilter_kvs_insert                (XFilterKVS *kvs, const char *key, void *value,
38
                                 int size);
39
int xfilter_kvs_delete                (XFilterKVS *kvs, const char *key);
40
int xfilter_kvs_update                (XFilterKVS *kvs, const char *key, void *value,
41
                                 int size);
42
int xfilter_kvs_fetch                (XFilterKVS *kvs, const char *key, void *vbuf, int vsize);
43

    
44
int xfilter_kvs_get_record_size        (XFilterKVS *kvs);
45

    
46
int xfilter_kvs_foreach                (XFilterKVS *kvs, XFilterKVSForeachFunc func, void *data);
47

    
48
int xfilter_kvs_fetch_int        (XFilterKVS *kvs, const char *key);
49

    
50
int xfilter_kvs_increment        (XFilterKVS *kvs, const char *key, int num);
51
int xfilter_kvs_decrement        (XFilterKVS *kvs, const char *key, int num);
52

    
53
int xfilter_kvs_count_sum        (XFilterKVS *kvs);
54

    
55
#endif /* __FILTER_KVS_H__ */