479693a71df2e63807a6d99a920a1e13fd434201
[awesomized/libmemcached] / libmemcached / memcached.hh
1 #ifdef USE_PRAGMA_INTERFACE
2 #pragma interface /* gcc class implementation */
3 #endif
4
5 #include <memcached.h>
6 #include <string.h>
7 #include <stdio.h>
8
9 class Memcached
10 {
11 memcached_st memc;
12 memcached_result_st result;
13
14 public:
15
16 Memcached()
17 {
18 memcached_create(&memc);
19 }
20
21 Memcached(memcached_st *clone)
22 {
23 memcached_clone(&memc, clone);
24 }
25 char *fetch (char *key, size_t *key_length, size_t *value_length)
26 {
27 uint32_t flags;
28 memcached_return rc;
29
30 return memcached_fetch(&memc, key, key_length,
31 value_length, &flags, &rc);
32 }
33 char *get(const char *key, size_t *value_length)
34 {
35 uint32_t flags;
36 memcached_return rc;
37
38 return memcached_get(&memc, key, strlen(key),
39 value_length, &flags, &rc);
40 }
41
42 char *get_by_key(const char *master_key, const char *key,
43 size_t *value_length)
44 {
45 uint32_t flags;
46 memcached_return rc;
47
48 return memcached_get_by_key(&memc, master_key, strlen(master_key),
49 key, strlen(key),
50 value_length, &flags, &rc);
51 }
52
53 memcached_return mget(char **keys, size_t *key_length,
54 unsigned int number_of_keys)
55 {
56
57 return memcached_mget(&memc, keys, key_length, number_of_keys);
58 }
59
60 memcached_return set(const char *key, const char *value, size_t value_length)
61 {
62 return memcached_set(&memc, key, strlen(key),
63 value, value_length,
64 (time_t)0, (uint32_t)0);
65 }
66
67 memcached_return set_by_key(const char *master_key, const char *key,
68 const char *value, size_t value_length)
69 {
70 return memcached_set_by_key(&memc, master_key, strlen(master_key),
71 key, strlen(key),
72 value, value_length,
73 (time_t)0,
74 (uint32_t)0 );
75 }
76 memcached_return
77 increment(const char *key, unsigned int offset, uint64_t *value)
78 {
79 return memcached_increment(&memc, key, strlen(key),
80 offset, value);
81 }
82 memcached_return
83 decrement(const char *key, unsigned int offset, uint64_t *value)
84 {
85 return memcached_decrement(&memc, key, strlen(key),
86 offset, value);
87 }
88
89
90 memcached_return add(const char *key, const char *value, size_t value_length)
91 {
92 return memcached_add(&memc, key, strlen(key),
93 value, value_length,
94 (time_t)0, (uint32_t)0);
95 }
96 memcached_return add_by_key(const char *master_key, const char *key,
97 const char *value, size_t value_length)
98 {
99 return memcached_add_by_key(&memc, master_key, strlen(master_key),
100 key, strlen(key),
101 value, value_length,
102 (time_t)0, (uint32_t)0);
103 }
104
105 memcached_return replace(const char *key, const char *value,
106 size_t value_length)
107 {
108 return memcached_replace(&memc, key, strlen(key),
109 value, value_length,
110 (time_t)0, (uint32_t)0);
111 }
112 memcached_return replace_by_key(const char *master_key, const char *key,
113 const char *value, size_t value_length)
114 {
115 return memcached_replace_by_key(&memc, master_key, strlen(master_key),
116 key, strlen(key),
117 value, value_length,
118 (time_t)0, (uint32_t)0);
119 }
120
121 memcached_return prepend(const char *key, const char *value,
122 size_t value_length)
123 {
124 return memcached_prepend(&memc, key, strlen(key),
125 value, value_length,
126 (time_t)0,
127 (uint32_t)0);
128 }
129 memcached_return prepend_by_key(const char *master_key, const char *key,
130 const char *value, size_t value_length)
131 {
132 return memcached_prepend_by_key(&memc, master_key, strlen(master_key),
133 key, strlen(key),
134 value, value_length,
135 (time_t)0,
136 (uint32_t)0);
137 }
138
139 memcached_return append(const char *key, const char *value,
140 size_t value_length)
141 {
142 return memcached_append(&memc, key, strlen(key),
143 value, value_length,
144 (time_t)0,
145 (uint32_t)0);
146 }
147 memcached_return append_by_key(const char *master_key, const char *key,
148 const char *value, size_t value_length)
149 {
150 return memcached_append_by_key(&memc,
151 master_key, strlen(master_key),
152 key, strlen(key),
153 value, value_length,
154 (time_t)0,
155 (uint32_t)0);
156 }
157 memcached_return cas(const char *key, const char *value,
158 size_t value_length, uint64_t cas)
159 {
160 return memcached_cas(&memc, key, strlen(key),
161 value, value_length,
162 (time_t)0,
163 (uint32_t)0,
164 cas);
165 }
166 memcached_return cas_by_key(const char *master_key, const char *key,
167 const char *value, size_t value_length,
168 uint64_t cas)
169 {
170 return memcached_cas_by_key(&memc,
171 master_key, strlen(master_key),
172 key, strlen(key),
173 value, value_length,
174 (time_t)0,
175 (uint32_t)0,
176 cas);
177 }
178 // using 'remove' vs. 'delete' since 'delete' is a keyword
179 memcached_return remove(const char *key)
180 {
181 return memcached_delete (&memc, key, strlen(key), (time_t)0);
182
183 }
184 memcached_return delete_by_key(const char *master_key, const char *key)
185 {
186 return memcached_delete_by_key(&memc, master_key, strlen(master_key),
187 key, strlen(key), (time_t)0);
188 }
189 ~Memcached()
190 {
191 memcached_free(&memc);
192 }
193 };