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 char *value, size_t value_length)
88 memcached_return rc= memcached_set(&memc, key.c_str(), key.length(),
90 time_t(0), uint32_t(0));
91 return (rc == MEMCACHED_SUCCESS);
94 bool set_by_key(const std::string& master_key,
95 const std::string& key,
96 const char *value, size_t value_length)
98 memcached_return rc= memcached_set_by_key(&memc, master_key.c_str(),
100 key.c_str(), key.length(),
104 return (rc == MEMCACHED_SUCCESS);
107 bool increment(const std::string& key, unsigned int offset, uint64_t *value)
109 memcached_return rc= memcached_increment(&memc, key.c_str(), key.length(),
111 return (rc == MEMCACHED_SUCCESS);
114 bool decrement(const std::string& key, unsigned int offset, uint64_t *value)
116 memcached_return rc= memcached_decrement(&memc, key.c_str(),
119 return (rc == MEMCACHED_SUCCESS);
123 bool add(const std::string& key, const std::string& value, size_t value_length)
125 memcached_return rc= memcached_add(&memc, key.c_str(), key.length(),
126 value.c_str(), value_length, 0, 0);
127 return (rc == MEMCACHED_SUCCESS);
130 bool add_by_key(const std::string& master_key, const std::string& key,
131 const std::string& value, size_t value_length)
133 memcached_return rc= memcached_add_by_key(&memc,
141 return (rc == MEMCACHED_SUCCESS);
144 bool replace(const std::string& key, const std::string& value,
147 memcached_return rc= memcached_replace(&memc, key.c_str(), key.length(),
148 value.c_str(), value_length,
150 return (rc == MEMCACHED_SUCCESS);
153 bool replace_by_key(const std::string& master_key, const std::string& key,
154 const std::string& value, size_t value_length)
156 memcached_return rc= memcached_replace_by_key(&memc,
164 return (rc == MEMCACHED_SUCCESS);
167 bool prepend(const std::string& key, const std::string& value,
170 memcached_return rc= memcached_prepend(&memc, key.c_str(), key.length(),
171 value.c_str(), value_length, 0, 0);
172 return (rc == MEMCACHED_SUCCESS);
175 bool prepend_by_key(const std::string& master_key, const std::string& key,
176 const std::string& value, size_t value_length)
178 memcached_return rc= memcached_prepend_by_key(&memc,
187 return (rc == MEMCACHED_SUCCESS);
190 bool append(const std::string& key, const std::string& value,
193 memcached_return rc= memcached_append(&memc,
198 return (rc == MEMCACHED_SUCCESS);
201 bool append_by_key(const std::string& master_key, const std::string& key,
202 const std::string& value, size_t value_length)
204 memcached_return rc= memcached_append_by_key(&memc,
211 return (rc == MEMCACHED_SUCCESS);
214 bool cas(const std::string& key, const std::string& value,
215 size_t value_length, uint64_t cas_arg)
217 memcached_return rc= memcached_cas(&memc, key.c_str(), key.length(),
218 value.c_str(), value_length, 0, 0, cas_arg);
219 return (rc == MEMCACHED_SUCCESS);
222 bool cas_by_key(const std::string& master_key, const std::string& key,
223 const std::string& value, size_t value_length,
226 memcached_return rc= memcached_cas_by_key(&memc,
234 return (rc == MEMCACHED_SUCCESS);
237 // using 'remove' vs. 'delete' since 'delete' is a keyword
238 bool remove(const std::string& key)
240 memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
241 return (rc == MEMCACHED_SUCCESS);
244 bool delete_by_key(const std::string& master_key,
245 const std::string& key)
247 memcached_return rc= memcached_delete_by_key(&memc,
253 return (rc == MEMCACHED_SUCCESS);
256 const std::string lib_version() const
258 const char *ver= memcached_lib_version();
259 const std::string version(ver);
265 memcached_result_st result;