+
+ bool prepend(const std::string& key, const std::string& value,
+ size_t value_length)
+ {
+ memcached_return rc= memcached_prepend(&memc, key.c_str(), key.length(),
+ value.c_str(), value_length, 0, 0);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ bool prepend_by_key(const std::string& master_key, const std::string& key,
+ const std::string& value, size_t value_length)
+ {
+ memcached_return rc= memcached_prepend_by_key(&memc,
+ master_key.c_str(),
+ master_key.length(),
+ key.c_str(),
+ key.length(),
+ value.c_str(),
+ value_length,
+ 0,
+ 0);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ bool append(const std::string& key, const std::string& value,
+ size_t value_length)
+ {
+ memcached_return rc= memcached_append(&memc,
+ key.c_str(),
+ key.length(),
+ value.c_str(),
+ value_length, 0, 0);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ bool append_by_key(const std::string& master_key, const std::string& key,
+ const std::string& value, size_t value_length)
+ {
+ memcached_return rc= memcached_append_by_key(&memc,
+ master_key.c_str(),
+ master_key.length(),
+ key.c_str(),
+ key.length(),
+ value.c_str(),
+ value_length, 0, 0);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ bool cas(const std::string& key, const std::string& value,
+ size_t value_length, uint64_t cas_arg)
+ {
+ memcached_return rc= memcached_cas(&memc, key.c_str(), key.length(),
+ value.c_str(), value_length, 0, 0, cas_arg);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ bool cas_by_key(const std::string& master_key, const std::string& key,
+ const std::string& value, size_t value_length,
+ uint64_t cas_arg)
+ {
+ memcached_return rc= memcached_cas_by_key(&memc,
+ master_key.c_str(),
+ master_key.length(),
+ key.c_str(),
+ key.length(),
+ value.c_str(),
+ value_length,
+ 0, 0, cas_arg);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ // using 'remove' vs. 'delete' since 'delete' is a keyword
+ bool remove(const std::string& key)
+ {
+ memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ bool delete_by_key(const std::string& master_key,
+ const std::string& key)
+ {
+ memcached_return rc= memcached_delete_by_key(&memc,
+ master_key.c_str(),
+ master_key.length(),
+ key.c_str(),
+ key.length(),
+ 0);
+ return (rc == MEMCACHED_SUCCESS);
+ }
+
+ const std::string lib_version() const
+ {
+ const char *ver= memcached_lib_version();
+ const std::string version(ver);
+ return version;
+ }
+
+private:
+ memcached_st memc;
+ memcached_result_st result;