1 #include <libmemcached/memcached.h>
14 memcached_create(&memc);
17 Memcached(memcached_st *clone)
22 memcached_clone(&memc, clone);
27 memcached_free(&memc);
30 std::string fetch(std::string &key, size_t *key_length, size_t *value_length)
36 char *value= memcached_fetch(&memc, const_cast<char *>(key.c_str()), key_length,
37 value_length, &flags, &rc);
40 ret_val.assign(value);
45 std::string get(const std::string &key, size_t *value_length)
51 char *value= memcached_get(&memc, key.c_str(), key.length(),
52 value_length, &flags, &rc);
55 ret_val.assign(value);
60 std::string get_by_key(const std::string &master_key,
61 const std::string &key,
68 char *value= memcached_get_by_key(&memc, master_key.c_str(), master_key.length(),
69 key.c_str(), key.length(),
70 value_length, &flags, &rc);
73 ret_val.assign(value);
78 bool mget(char **keys, size_t *key_length,
79 unsigned int number_of_keys)
82 memcached_return rc= memcached_mget(&memc, keys, key_length, number_of_keys);
83 return (rc == MEMCACHED_SUCCESS);
86 bool set(const std::string &key, const std::string &value)
88 memcached_return rc= memcached_set(&memc,
89 key.c_str(), key.length(),
90 value.c_str(), value.length(),
91 time_t(0), uint32_t(0));
92 return (rc == MEMCACHED_SUCCESS);
95 bool set_by_key(const std::string &master_key,
96 const std::string &key,
97 const std::string &value)
99 memcached_return rc= memcached_set_by_key(&memc, master_key.c_str(),
101 key.c_str(), key.length(),
102 value.c_str(), value.length(),
105 return (rc == MEMCACHED_SUCCESS);
108 bool increment(const std::string &key, unsigned int offset, uint64_t *value)
110 memcached_return rc= memcached_increment(&memc, key.c_str(), key.length(),
112 return (rc == MEMCACHED_SUCCESS);
115 bool decrement(const std::string &key, unsigned int offset, uint64_t *value)
117 memcached_return rc= memcached_decrement(&memc, key.c_str(),
120 return (rc == MEMCACHED_SUCCESS);
124 bool add(const std::string &key, const std::string &value)
126 memcached_return rc= memcached_add(&memc, key.c_str(), key.length(),
127 value.c_str(), value.length(), 0, 0);
128 return (rc == MEMCACHED_SUCCESS);
131 bool add_by_key(const std::string &master_key,
132 const std::string &key,
133 const std::string &value)
135 memcached_return rc= memcached_add_by_key(&memc,
143 return (rc == MEMCACHED_SUCCESS);
146 bool replace(const std::string &key, const std::string &value)
148 memcached_return rc= memcached_replace(&memc, key.c_str(), key.length(),
149 value.c_str(), value.length(),
151 return (rc == MEMCACHED_SUCCESS);
154 bool replace_by_key(const std::string &master_key,
155 const std::string &key,
156 const std::string &value)
158 memcached_return rc= memcached_replace_by_key(&memc,
166 return (rc == MEMCACHED_SUCCESS);
169 bool prepend(const std::string &key, const std::string &value)
171 memcached_return rc= memcached_prepend(&memc, key.c_str(), key.length(),
172 value.c_str(), value.length(), 0, 0);
173 return (rc == MEMCACHED_SUCCESS);
176 bool prepend_by_key(const std::string &master_key,
177 const std::string &key,
178 const std::string &value)
180 memcached_return rc= memcached_prepend_by_key(&memc,
189 return (rc == MEMCACHED_SUCCESS);
192 bool append(const std::string &key, const std::string &value)
194 memcached_return rc= memcached_append(&memc,
200 return (rc == MEMCACHED_SUCCESS);
203 bool append_by_key(const std::string &master_key,
204 const std::string &key,
205 const std::string &value)
207 memcached_return rc= memcached_append_by_key(&memc,
215 return (rc == MEMCACHED_SUCCESS);
218 bool cas(const std::string &key,
219 const std::string &value,
222 memcached_return rc= memcached_cas(&memc, key.c_str(), key.length(),
223 value.c_str(), value.length(),
225 return (rc == MEMCACHED_SUCCESS);
228 bool cas_by_key(const std::string &master_key,
229 const std::string &key,
230 const std::string &value,
233 memcached_return rc= memcached_cas_by_key(&memc,
241 return (rc == MEMCACHED_SUCCESS);
244 // using 'remove' vs. 'delete' since 'delete' is a keyword
245 bool remove(const std::string &key)
247 memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
248 return (rc == MEMCACHED_SUCCESS);
251 bool delete_by_key(const std::string &master_key,
252 const std::string &key)
254 memcached_return rc= memcached_delete_by_key(&memc,
260 return (rc == MEMCACHED_SUCCESS);
263 const std::string lib_version() const
265 const char *ver= memcached_lib_version();
266 const std::string version(ver);
272 memcached_result_st result;