1 #include "libmemcached/memcached.h"
9 memcached_result_st result;
18 memcached_create(&memc);
21 Memcached(memcached_st *clone)
26 memcached_clone(&memc, clone);
31 memcached_free(&memc);
34 std::string fetch(const std::string& key, size_t *key_length, size_t *value_length)
40 char *value= memcached_fetch(&memc, const_cast<char *>(key.c_str()), key_length,
41 value_length, &flags, &rc);
44 ret_val.assign(value);
49 std::string get(const std::string& key, size_t *value_length)
55 char *value= memcached_get(&memc, key.c_str(), key.length(),
56 value_length, &flags, &rc);
59 ret_val.assign(value);
64 std::string get_by_key(const std::string& master_key,
65 const std::string& key,
72 char *value= memcached_get_by_key(&memc, master_key.c_str(), master_key.length(),
73 key.c_str(), key.length(),
74 value_length, &flags, &rc);
77 ret_val.assign(value);
82 memcached_return mget(char **keys, size_t *key_length,
83 unsigned int number_of_keys)
86 return memcached_mget(&memc, keys, key_length, number_of_keys);
89 bool set(const std::string& key, const char *value, size_t value_length)
91 memcached_return rc= memcached_set(&memc, key.c_str(), key.length(),
93 time_t(0), uint32_t(0));
94 return (rc == MEMCACHED_SUCCESS);
97 bool set_by_key(const std::string& master_key,
98 const std::string& key,
99 const char *value, size_t value_length)
101 memcached_return rc= memcached_set_by_key(&memc, master_key.c_str(),
103 key.c_str(), key.length(),
107 return (rc == MEMCACHED_SUCCESS);
110 bool increment(const std::string& key, unsigned int offset, uint64_t *value)
112 memcached_return rc= memcached_increment(&memc, key.c_str(), key.length(),
114 return (rc == MEMCACHED_SUCCESS);
117 bool decrement(const char *key, unsigned int offset, uint64_t *value)
119 memcached_return rc= memcached_decrement(&memc, key, strlen(key),
121 return (rc == MEMCACHED_SUCCESS);
125 bool add(const char *key, const char *value, size_t value_length)
127 memcached_return rc= memcached_add(&memc, key, strlen(key), value, value_length, 0, 0);
128 return (rc == MEMCACHED_SUCCESS);
131 bool add_by_key(const char *master_key, const char *key,
132 const char *value, size_t value_length)
134 memcached_return rc= memcached_add_by_key(&memc, master_key, strlen(master_key),
138 return (rc == MEMCACHED_SUCCESS);
141 bool replace(const char *key, const char *value,
144 memcached_return rc= memcached_replace(&memc, key, strlen(key),
147 return (rc == MEMCACHED_SUCCESS);
150 bool replace_by_key(const char *master_key, const char *key,
151 const char *value, size_t value_length)
153 memcached_return rc= memcached_replace_by_key(&memc, master_key, strlen(master_key),
155 value, value_length, 0, 0);
156 return (rc == MEMCACHED_SUCCESS);
159 bool prepend(const char *key, const char *value,
162 memcached_return rc= memcached_prepend(&memc, key, strlen(key),
163 value, value_length, 0, 0);
164 return (rc == MEMCACHED_SUCCESS);
167 bool prepend_by_key(const char *master_key, const char *key,
168 const char *value, size_t value_length)
170 memcached_return rc= memcached_prepend_by_key(&memc, master_key, strlen(master_key),
175 return (rc == MEMCACHED_SUCCESS);
178 bool append(const char *key, const char *value,
181 memcached_return rc= memcached_append(&memc, key, strlen(key),
182 value, value_length, 0, 0);
183 return (rc == MEMCACHED_SUCCESS);
186 bool append_by_key(const char *master_key, const char *key,
187 const char *value, size_t value_length)
189 memcached_return rc= memcached_append_by_key(&memc,
190 master_key, strlen(master_key),
192 value, value_length, 0, 0);
193 return (rc == MEMCACHED_SUCCESS);
196 bool cas(const char *key, const char *value,
197 size_t value_length, uint64_t cas_arg)
199 memcached_return rc= memcached_cas(&memc, key, strlen(key),
200 value, value_length, 0, 0, cas_arg);
201 return (rc == MEMCACHED_SUCCESS);
204 bool cas_by_key(const char *master_key, const char *key,
205 const char *value, size_t value_length,
208 memcached_return rc= memcached_cas_by_key(&memc,
209 master_key, strlen(master_key),
213 return (rc == MEMCACHED_SUCCESS);
216 // using 'remove' vs. 'delete' since 'delete' is a keyword
217 bool remove(const std::string& key)
219 memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
220 return (rc == MEMCACHED_SUCCESS);
223 bool delete_by_key(const char *master_key, const char *key)
225 memcached_return rc= memcached_delete_by_key(&memc, master_key, strlen(master_key),
226 key, strlen(key), 0);
227 return (rc == MEMCACHED_SUCCESS);