projects
/
m6w6
/
libmemcached
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
|
github
raw
|
inline
| side by side
Updating Patrick's C++ exceptions to build without warnings on solaris.
[m6w6/libmemcached]
/
libmemcached
/
memcached.hpp
diff --git
a/libmemcached/memcached.hpp
b/libmemcached/memcached.hpp
index e437312d1ac6e6a45ec5a73314e3635101d400bd..c42eba03c89f2be454133769c437b4b0b85081ab 100644
(file)
--- a/
libmemcached/memcached.hpp
+++ b/
libmemcached/memcached.hpp
@@
-16,6
+16,7
@@
#define LIBMEMCACHEDPP_H
#include <libmemcached/memcached.h>
#define LIBMEMCACHEDPP_H
#include <libmemcached/memcached.h>
+#include <libmemcached/exception.hpp>
#include <string.h>
#include <string.h>
@@
-54,6
+55,7
@@
public:
{
memcached_create(&memc);
servers= memcached_servers_parse(servers_list.c_str());
{
memcached_create(&memc);
servers= memcached_servers_parse(servers_list.c_str());
+ memcached_server_push(&memc, servers);
}
Memcache(const std::string &hostname,
}
Memcache(const std::string &hostname,
@@
-71,6
+73,7
@@
public:
strsmt << port;
servers_list.append(strsmt.str());
servers= memcached_servers_parse(servers_list.c_str());
strsmt << port;
servers_list.append(strsmt.str());
servers= memcached_servers_parse(servers_list.c_str());
+ memcached_server_push(&memc, servers);
}
Memcache(memcached_st *clone)
}
Memcache(memcached_st *clone)
@@
-92,6
+95,7
@@
public:
{
memcached_clone(&memc, const_cast<memcached_st *>(&rhs.getImpl()));
servers= memcached_servers_parse(servers_list.c_str());
{
memcached_clone(&memc, const_cast<memcached_st *>(&rhs.getImpl()));
servers= memcached_servers_parse(servers_list.c_str());
+ memcached_server_push(&memc, servers);
}
Memcache &operator=(const Memcache &rhs)
}
Memcache &operator=(const Memcache &rhs)
@@
-100,6
+104,7
@@
public:
{
memcached_clone(&memc, const_cast<memcached_st *>(&rhs.getImpl()));
servers= memcached_servers_parse(servers_list.c_str());
{
memcached_clone(&memc, const_cast<memcached_st *>(&rhs.getImpl()));
servers= memcached_servers_parse(servers_list.c_str());
+ memcached_server_push(&memc, servers);
}
return *this;
}
}
return *this;
}
@@
-221,7
+226,7
@@
public:
* @return true on success; false otherwise
*/
bool get(const std::string &key,
* @return true on success; false otherwise
*/
bool get(const std::string &key,
- std::vector<char> &ret_val)
+ std::vector<char> &ret_val)
throw (Error)
{
uint32_t flags= 0;
memcached_return rc;
{
uint32_t flags= 0;
memcached_return rc;
@@
-229,7
+234,7
@@
public:
if (key.empty())
{
if (key.empty())
{
-
return false
;
+
throw(Error("the key supplied is empty!", false))
;
}
char *value= memcached_get(&memc, key.c_str(), key.length(),
&value_length, &flags, &rc);
}
char *value= memcached_get(&memc, key.c_str(), key.length(),
&value_length, &flags, &rc);
@@
-256,7
+261,7
@@
public:
*/
bool getByKey(const std::string &master_key,
const std::string &key,
*/
bool getByKey(const std::string &master_key,
const std::string &key,
- std::vector<char> &ret_val)
+ std::vector<char> &ret_val)
throw(Error)
{
uint32_t flags= 0;
memcached_return rc;
{
uint32_t flags= 0;
memcached_return rc;
@@
-264,10
+269,10
@@
public:
if (master_key.empty() || key.empty())
{
if (master_key.empty() || key.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
}
- char *value= memcached_get_by_key(&memc,
- master_key.c_str(), master_key.length(),
+ char *value= memcached_get_by_key(&memc,
+ master_key.c_str(), master_key.length(),
key.c_str(), key.length(),
&value_length, &flags, &rc);
if (value)
key.c_str(), key.length(),
&value_length, &flags, &rc);
if (value)
@@
-333,16
+338,16
@@
public:
* @param[in] flags flags to store with the object
* @return true on succcess; false otherwise
*/
* @param[in] flags flags to store with the object
* @return true on succcess; false otherwise
*/
- bool set(const std::string &key,
+ bool set(const std::string &key,
const std::vector<char> &value,
time_t expiration,
const std::vector<char> &value,
time_t expiration,
- uint32_t flags)
+ uint32_t flags)
throw(Error)
{
if (key.empty() || value.empty())
{
{
if (key.empty() || value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
}
- memcached_return rc= memcached_set(&memc,
+ memcached_return rc= memcached_set(&memc,
key.c_str(), key.length(),
&value[0], value.size(),
expiration, flags);
key.c_str(), key.length(),
&value[0], value.size(),
expiration, flags);
@@
-364,13
+369,13
@@
public:
const std::string &key,
const std::vector<char> &value,
time_t expiration,
const std::string &key,
const std::vector<char> &value,
time_t expiration,
- uint32_t flags)
+ uint32_t flags)
throw(Error)
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
memcached_return rc= memcached_set_by_key(&memc, master_key.c_str(),
master_key.length(),
}
memcached_return rc= memcached_set_by_key(&memc, master_key.c_str(),
master_key.length(),
@@
-394,11
+399,11
@@
public:
bool setAll(std::vector<std::string> &keys,
std::vector< std::vector<char> *> &values,
time_t expiration,
bool setAll(std::vector<std::string> &keys,
std::vector< std::vector<char> *> &values,
time_t expiration,
- uint32_t flags)
+ uint32_t flags)
throw(Error)
{
if (keys.size() != values.size())
{
{
if (keys.size() != values.size())
{
-
return false
;
+
throw(Error("The number of keys and values do not match!", false))
;
}
bool retval= true;
std::vector<std::string>::iterator key_it= keys.begin();
}
bool retval= true;
std::vector<std::string>::iterator key_it= keys.begin();
@@
-427,11
+432,11
@@
public:
*/
bool setAll(std::map<const std::string, std::vector<char> > &key_value_map,
time_t expiration,
*/
bool setAll(std::map<const std::string, std::vector<char> > &key_value_map,
time_t expiration,
- uint32_t flags)
+ uint32_t flags)
throw(Error)
{
if (key_value_map.empty())
{
{
if (key_value_map.empty())
{
-
return false
;
+
throw(Error("The key/values are not properly set!", false))
;
}
bool retval= true;
std::map<const std::string, std::vector<char> >::iterator it=
}
bool retval= true;
std::map<const std::string, std::vector<char> >::iterator it=
@@
-441,7
+446,9
@@
public:
retval= set(it->first, it->second, expiration, flags);
if (retval == false)
{
retval= set(it->first, it->second, expiration, flags);
if (retval == false)
{
- return false;
+ std::string err_buff("There was an error setting the key ");
+ err_buff.append(it->first);
+ throw(Error(err_buff, false));
}
++it;
}
}
++it;
}
@@
-458,11
+465,11
@@
public:
* @param[out] value store the result of the increment here
* @return true on success; false otherwise
*/
* @param[out] value store the result of the increment here
* @return true on success; false otherwise
*/
- bool increment(const std::string &key, uint32_t offset, uint64_t *value)
+ bool increment(const std::string &key, uint32_t offset, uint64_t *value)
throw(Error)
{
if (key.empty())
{
{
if (key.empty())
{
-
return false
;
+
throw(Error("the key supplied is empty!", false))
;
}
memcached_return rc= memcached_increment(&memc, key.c_str(), key.length(),
offset, value);
}
memcached_return rc= memcached_increment(&memc, key.c_str(), key.length(),
offset, value);
@@
-480,10
+487,11
@@
public:
* @return true on success; false otherwise
*/
bool decrement(const std::string &key, uint32_t offset, uint64_t *value)
* @return true on success; false otherwise
*/
bool decrement(const std::string &key, uint32_t offset, uint64_t *value)
+ throw(Error)
{
if (key.empty())
{
{
if (key.empty())
{
-
return false
;
+
throw(Error("the key supplied is empty!", false))
;
}
memcached_return rc= memcached_decrement(&memc, key.c_str(),
key.length(),
}
memcached_return rc= memcached_decrement(&memc, key.c_str(),
key.length(),
@@
-501,10
+509,11
@@
public:
* @return true on success; false otherwise
*/
bool add(const std::string &key, const std::vector<char> &value)
* @return true on success; false otherwise
*/
bool add(const std::string &key, const std::vector<char> &value)
+ throw(Error)
{
if (key.empty() || value.empty())
{
{
if (key.empty() || value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
memcached_return rc= memcached_add(&memc, key.c_str(), key.length(),
&value[0], value.size(), 0, 0);
}
memcached_return rc= memcached_add(&memc, key.c_str(), key.length(),
&value[0], value.size(), 0, 0);
@@
-523,13
+532,13
@@
public:
*/
bool addByKey(const std::string &master_key,
const std::string &key,
*/
bool addByKey(const std::string &master_key,
const std::string &key,
- const std::vector<char> &value)
+ const std::vector<char> &value)
throw(Error)
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
memcached_return rc= memcached_add_by_key(&memc,
master_key.c_str(),
}
memcached_return rc= memcached_add_by_key(&memc,
master_key.c_str(),
@@
-550,12
+559,12
@@
public:
* @param[in[ value value to replace object with
* @return true on success; false otherwise
*/
* @param[in[ value value to replace object with
* @return true on success; false otherwise
*/
- bool replace(const std::string &key, const std::vector<char> &value)
+ bool replace(const std::string &key, const std::vector<char> &value)
throw(Error)
{
if (key.empty() ||
value.empty())
{
{
if (key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
memcached_return rc= memcached_replace(&memc, key.c_str(), key.length(),
&value[0], value.size(),
}
memcached_return rc= memcached_replace(&memc, key.c_str(), key.length(),
&value[0], value.size(),
@@
-581,7
+590,7
@@
public:
key.empty() ||
value.empty())
{
key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
memcached_return rc= memcached_replace_by_key(&memc,
master_key.c_str(),
}
memcached_return rc= memcached_replace_by_key(&memc,
master_key.c_str(),
@@
-602,10
+611,11
@@
public:
* @return true on success; false otherwise
*/
bool prepend(const std::string &key, const std::vector<char> &value)
* @return true on success; false otherwise
*/
bool prepend(const std::string &key, const std::vector<char> &value)
+ throw(Error)
{
if (key.empty() || value.empty())
{
{
if (key.empty() || value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
memcached_return rc= memcached_prepend(&memc, key.c_str(), key.length(),
&value[0], value.size(), 0, 0);
}
memcached_return rc= memcached_prepend(&memc, key.c_str(), key.length(),
&value[0], value.size(), 0, 0);
@@
-625,19
+635,20
@@
public:
bool prependByKey(const std::string &master_key,
const std::string &key,
const std::vector<char> &value)
bool prependByKey(const std::string &master_key,
const std::string &key,
const std::vector<char> &value)
+ throw(Error)
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
}
- memcached_return rc= memcached_prepend_by_key(&memc,
- master_key.c_str(),
+ memcached_return rc= memcached_prepend_by_key(&memc,
+ master_key.c_str(),
master_key.length(),
master_key.length(),
- key.c_str(),
+ key.c_str(),
key.length(),
key.length(),
- &value[0],
+ &value[0],
value.size(),
0,
0);
value.size(),
0,
0);
@@
-652,16
+663,17
@@
public:
* @return true on success; false otherwise
*/
bool append(const std::string &key, const std::vector<char> &value)
* @return true on success; false otherwise
*/
bool append(const std::string &key, const std::vector<char> &value)
+ throw(Error)
{
if (key.empty() || value.empty())
{
{
if (key.empty() || value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
}
- memcached_return rc= memcached_append(&memc,
- key.c_str(),
+ memcached_return rc= memcached_append(&memc,
+ key.c_str(),
key.length(),
key.length(),
- &value[0],
- value.size(),
+ &value[0],
+ value.size(),
0, 0);
return (rc == MEMCACHED_SUCCESS);
}
0, 0);
return (rc == MEMCACHED_SUCCESS);
}
@@
-676,15
+688,16
@@
public:
* @param[in] value data to append to object's value
* @return true on success; false otherwise
*/
* @param[in] value data to append to object's value
* @return true on success; false otherwise
*/
- bool appendByKey(const std::string &master_key,
- const std::string &key,
+ bool appendByKey(const std::string &master_key,
+ const std::string &key,
const std::vector<char> &value)
const std::vector<char> &value)
+ throw(Error)
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
memcached_return rc= memcached_append_by_key(&memc,
master_key.c_str(),
}
memcached_return rc= memcached_append_by_key(&memc,
master_key.c_str(),
@@
-707,11
+720,11
@@
public:
*/
bool cas(const std::string &key,
const std::vector<char> &value,
*/
bool cas(const std::string &key,
const std::vector<char> &value,
- uint64_t cas_arg)
+ uint64_t cas_arg)
throw(Error)
{
if (key.empty() || value.empty())
{
{
if (key.empty() || value.empty())
{
-
return false
;
+
throw(Error("the key or value supplied is empty!", false))
;
}
memcached_return rc= memcached_cas(&memc, key.c_str(), key.length(),
&value[0], value.size(),
}
memcached_return rc= memcached_cas(&memc, key.c_str(), key.length(),
&value[0], value.size(),
@@
-732,13
+745,13
@@
public:
bool casByKey(const std::string &master_key,
const std::string &key,
const std::vector<char> &value,
bool casByKey(const std::string &master_key,
const std::string &key,
const std::vector<char> &value,
- uint64_t cas_arg)
+ uint64_t cas_arg)
throw(Error)
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
{
if (master_key.empty() ||
key.empty() ||
value.empty())
{
-
return false
;
+
throw(Error("the master key, key or value supplied is empty!", false))
;
}
memcached_return rc= memcached_cas_by_key(&memc,
master_key.c_str(),
}
memcached_return rc= memcached_cas_by_key(&memc,
master_key.c_str(),
@@
-757,11
+770,11
@@
public:
* @param[in] key key of object to delete
* @return true on success; false otherwise
*/
* @param[in] key key of object to delete
* @return true on success; false otherwise
*/
- bool remove(const std::string &key)
+ bool remove(const std::string &key)
throw(Error)
{
if (key.empty())
{
{
if (key.empty())
{
-
return false
;
+
throw(Error("the key supplied is empty!", false))
;
}
memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
return (rc == MEMCACHED_SUCCESS);
}
memcached_return rc= memcached_delete(&memc, key.c_str(), key.length(), 0);
return (rc == MEMCACHED_SUCCESS);
@@
-775,15
+788,15
@@
public:
* @return true on success; false otherwise
*/
bool remove(const std::string &key,
* @return true on success; false otherwise
*/
bool remove(const std::string &key,
- time_t expiration)
+ time_t expiration)
throw(Error)
{
if (key.empty())
{
{
if (key.empty())
{
-
return false
;
+
throw(Error("the key supplied is empty!", false))
;
}
}
- memcached_return rc= memcached_delete(&memc,
- key.c_str(),
- key.length(),
+ memcached_return rc= memcached_delete(&memc,
+ key.c_str(),
+ key.length(),
expiration);
return (rc == MEMCACHED_SUCCESS);
}
expiration);
return (rc == MEMCACHED_SUCCESS);
}
@@
-795,18
+808,18
@@
public:
* @param[in] key key of object to delete
* @return true on success; false otherwise
*/
* @param[in] key key of object to delete
* @return true on success; false otherwise
*/
- bool removeByKey(const std::string &master_key,
- const std::string &key)
+ bool removeByKey(const std::string &master_key,
+ const std::string &key)
throw(Error)
{
if (master_key.empty() || key.empty())
{
{
if (master_key.empty() || key.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
}
- memcached_return rc= memcached_delete_by_key(&memc,
- master_key.c_str(),
+ memcached_return rc= memcached_delete_by_key(&memc,
+ master_key.c_str(),
master_key.length(),
master_key.length(),
- key.c_str(),
- key.length(),
+ key.c_str(),
+ key.length(),
0);
return (rc == MEMCACHED_SUCCESS);
}
0);
return (rc == MEMCACHED_SUCCESS);
}
@@
-821,11
+834,11
@@
public:
*/
bool removeByKey(const std::string &master_key,
const std::string &key,
*/
bool removeByKey(const std::string &master_key,
const std::string &key,
- time_t expiration)
+ time_t expiration)
throw(Error)
{
if (master_key.empty() || key.empty())
{
{
if (master_key.empty() || key.empty())
{
-
return false
;
+
throw(Error("the master key or key supplied is empty!", false))
;
}
memcached_return rc= memcached_delete_by_key(&memc,
master_key.c_str(),
}
memcached_return rc= memcached_delete_by_key(&memc,
master_key.c_str(),