1 #include "libmemcached/memcached.h"
10 memcached_result_st result;
19 memcached_create(&memc);
22 Memcached(memcached_st *clone)
27 memcached_clone(&memc, clone);
32 memcached_free(&memc);
35 std::string fetch(const std::string& key, size_t *key_length, size_t *value_length)
41 char *value= memcached_fetch(&memc, const_cast<char *>(key.c_str()), key_length,
42 value_length, &flags, &rc);
45 ret_val.assign(value);
50 std::string get(const std::string& key, size_t *value_length)
56 char *value= memcached_get(&memc, key.c_str(), key.length(),
57 value_length, &flags, &rc);
60 ret_val.assign(value);
65 std::string get_by_key(const std::string& master_key,
66 const std::string& key,
73 char *value= memcached_get_by_key(&memc, master_key.c_str(), master_key.length(),
74 key.c_str(), key.length(),
75 value_length, &flags, &rc);
78 ret_val.assign(value);
83 memcached_return mget(char **keys, size_t *key_length,
84 unsigned int number_of_keys)
87 return memcached_mget(&memc, keys, key_length, number_of_keys);
90 bool set(const std::string& key, const char *value, size_t value_length)
92 memcached_return rc= memcached_set(&memc, key.c_str(), key.length(),
94 time_t(0), uint32_t(0));
95 return (rc == MEMCACHED_SUCCESS);
98 bool set_by_key(const std::string& master_key,
99 const std::string& key,
100 const char *value, size_t value_length)
102 memcached_return rc= memcached_set_by_key(&memc, master_key.c_str(),
104 key.c_str(), key.length(),
108 return (rc == MEMCACHED_SUCCESS);
111 bool increment(const std::string& key, unsigned int offset, uint64_t *value)
113 memcached_return rc= memcached_increment(&memc, key.c_str(), key.length(),
115 return (rc == MEMCACHED_SUCCESS);
118 bool decrement(const char *key, unsigned int offset, uint64_t *value)
120 memcached_return rc= memcached_decrement(&memc, key, strlen(key),
122 return (rc == MEMCACHED_SUCCESS);
126 bool add(const char *key, const char *value, size_t value_length)
128 memcached_return rc= memcached_add(&memc, key, strlen(key), value, value_length, 0, 0);
129 return (rc == MEMCACHED_SUCCESS);
132 bool add_by_key(const char *master_key, const char *key,
133 const char *value, size_t value_length)
135 memcached_return rc= memcached_add_by_key(&memc, master_key, strlen(master_key),
139 return (rc == MEMCACHED_SUCCESS);
142 bool replace(const char *key, const char *value,
145 memcached_return rc= memcached_replace(&memc, key, strlen(key),
148 return (rc == MEMCACHED_SUCCESS);
151 bool replace_by_key(const char *master_key, const char *key,
152 const char *value, size_t value_length)
154 memcached_return rc= memcached_replace_by_key(&memc, master_key, strlen(master_key),
156 value, value_length, 0, 0);
157 return (rc == MEMCACHED_SUCCESS);
160 bool prepend(const char *key, const char *value,
163 memcached_return rc= memcached_prepend(&memc, key, strlen(key),
164 value, value_length, 0, 0);
165 return (rc == MEMCACHED_SUCCESS);
168 bool prepend_by_key(const char *master_key, const char *key,
169 const char *value, size_t value_length)
171 memcached_return rc= memcached_prepend_by_key(&memc, master_key, strlen(master_key),
176 return (rc == MEMCACHED_SUCCESS);
179 bool append(const char *key, const char *value,
182 memcached_return rc= memcached_append(&memc, key, strlen(key),
183 value, value_length, 0, 0);
184 return (rc == MEMCACHED_SUCCESS);
187 bool append_by_key(const char *master_key, const char *key,
188 const char *value, size_t value_length)
190 memcached_return rc= memcached_append_by_key(&memc,
191 master_key, strlen(master_key),
193 value, value_length, 0, 0);
194 return (rc == MEMCACHED_SUCCESS);
197 bool cas(const char *key, const char *value,
198 size_t value_length, uint64_t cas_arg)
200 memcached_return rc= memcached_cas(&memc, key, strlen(key),
201 value, value_length, 0, 0, cas_arg);
202 return (rc == MEMCACHED_SUCCESS);
205 bool cas_by_key(const char *master_key, const char *key,
206 const char *value, size_t value_length,
209 memcached_return rc= memcached_cas_by_key(&memc,
210 master_key, strlen(master_key),
214 return (rc == MEMCACHED_SUCCESS);
217 // using 'remove' vs. 'delete' since 'delete' is a keyword
218 bool remove(const std::string& key)
220 memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
221 return (rc == MEMCACHED_SUCCESS);
224 bool delete_by_key(const char *master_key, const char *key)
226 memcached_return rc= memcached_delete_by_key(&memc, master_key, strlen(master_key),
227 key, strlen(key), 0);
228 return (rc == MEMCACHED_SUCCESS);