-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathtcdb.h
143 lines (101 loc) · 4.46 KB
/
tcdb.h
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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#ifndef _REDISK_TCDB_
#define _REDISK_TCDB_
#include <tchdb.h>
#include <tctdb.h>
#include <tcbdb.h>
#include "redisk.h"
typedef struct rk_tcdb_t_ {
bool open; /* successful open flag */
TCHDB *str; /* main database for strings commands */
TCTDB *hsh; /* database for hashes commands */
TCTDB *set; /* database for sets commands */
TCBDB *lst; /* database for lists commands */
} rk_tcdb_t;
/** Skeleton initialization */
void rk_tcdb_skel_init(rk_skel_t *skel);
rk_tcdb_t *rk_tcdb_new(void);
void rk_tcdb_free(rk_tcdb_t *db);
bool rk_tcdb_open(rk_tcdb_t *db, const char *path);
bool rk_tcdb_close(rk_tcdb_t *db);
/*************************************************
* KEYS COMMANDS
*************************************************/
/** DEL key */
int rk_tcdb_del(rk_tcdb_t *db, const char *kbuf, int ksiz);
/** EXISTS key */
int rk_tcdb_exists(rk_tcdb_t *db, const char *kbuf, int ksiz);
/** TYPE key */
char *rk_tcdb_type(rk_tcdb_t *db, const char *kbuf, int ksiz);
/*************************************************
* STRINGS COMMANDS
*************************************************/
/** GET key */
char *rk_tcdb_get(rk_tcdb_t *db, const char *kbuf, int ksiz, int *sp);
/** SET key value */
bool rk_tcdb_set(rk_tcdb_t *db, const char *kbuf, int ksiz, const char *vbuf, int vsiz);
/** SETNX key value */
int rk_tcdb_setnx(rk_tcdb_t *db, const char *kbuf, int ksiz, const char *vbuf, int vsiz);
/** INCR key */
int64_t rk_tcdb_incr(rk_tcdb_t *db, const char *kbuf, int ksiz);
/** DECR key */
int64_t rk_tcdb_decr(rk_tcdb_t *db, const char *kbuf, int ksiz);
/** INCRBY key increment */
int64_t rk_tcdb_incrby(rk_tcdb_t *db, const char *kbuf, int ksiz, int64_t inc);
/** DECRBY key decrement */
int64_t rk_tcdb_decrby(rk_tcdb_t *db, const char *kbuf, int ksiz, int64_t dec);
/** GETSET key value */
char *rk_tcdb_getset(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *vbuf, int vsiz, int *sp);
/*************************************************
* HASHES COMMANDS
*************************************************/
/** HGET key field */
char *rk_tcdb_hget(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *fbuf, int fsiz, int *sp);
/** HSET key field value */
int rk_tcdb_hset(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *fbuf, int fsiz, const char *vbuf, int vsiz);
/** HDEL key field */
int rk_tcdb_hdel(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *fbuf, int fsiz);
/** HSETNX key field value */
int rk_tcdb_hsetnx(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *fbuf, int fsiz, const char *vbuf, int vsiz);
/** HEXISTS key field */
int rk_tcdb_hexists(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *fbuf, int fsiz);
/** HLEN key */
int rk_tcdb_hlen(rk_tcdb_t *db, const char *kbuf, int ksiz);
/*************************************************
* SETS COMMANDS
*************************************************/
/** SADD key member */
int rk_tcdb_sadd(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *mbuf, int msiz);
/** SREM key member */
int rk_tcdb_srem(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *mbuf, int msiz);
/** SCARD key */
int rk_tcdb_scard(rk_tcdb_t *db, const char *kbuf, int ksiz);
/** SISMEMBER key member */
int rk_tcdb_sismember(rk_tcdb_t *db, const char *kbuf, int ksiz,
const char *mbuf, int msiz);
/** SMEMBERS key */
rk_listval_t *rk_tcdb_smembers(rk_tcdb_t *db, const char *kbuf, int ksiz);
/*************************************************
* LISTS COMMANDS
*************************************************/
/** LLEN key */
int rk_tcdb_llen(rk_tcdb_t *db, const char *kbuf, int ksiz);
/** LPUSH key value */
int rk_tcdb_lpush(rk_tcdb_t *db, const char *kbuf, int ksiz, const char *vbuf, int vsiz);
/** RPUSH key value */
int rk_tcdb_rpush(rk_tcdb_t *db, const char *kbuf, int ksiz, const char *vbuf, int vsiz);
/** LPOP key */
char *rk_tcdb_lpop(rk_tcdb_t *db, const char *kbuf, int ksiz, int *sp);
/** RPOP key */
char *rk_tcdb_rpop(rk_tcdb_t *db, const char *kbuf, int ksiz, int *sp);
/** LRANGE key start stop */
rk_listval_t *rk_tcdb_lrange(rk_tcdb_t *db, const char *kbuf, int ksiz,
int start, int stop);
#endif