Merge
[awesomized/libmemcached] / libmemcached / memcached.hpp
index 0b27291b095ca3f76dd908759900fe2325baf1f4..8c5ca934c9055fda7b1539d927256697f1a53ac9 100644 (file)
@@ -98,6 +98,32 @@ public:
     return memcached_strerror(NULL, rc);
   }
 
+  bool error(std::string& error_message) const
+  {
+    if (memcached_failed(memcached_last_error(memc)))
+    {
+      error_message+= memcached_last_error_message(memc);
+      return true;
+    }
+
+    return false;
+  }
+
+  bool error() const
+  {
+    if (memcached_failed(memcached_last_error(memc)))
+    {
+      return true;
+    }
+
+    return false;
+  }
+
+  bool error(memcached_return_t& arg) const
+  {
+    arg= memcached_last_error(memc);
+    return memcached_failed(arg);
+  }
 
   bool setBehavior(memcached_behavior_t flag, uint64_t data)
   {
@@ -117,7 +143,17 @@ public:
    */
   bool configure(const std::string &configuration)
   {
-    return memcached_success(memcached_parse_configuration(memc, configuration.c_str(), configuration.size()));
+    memcached_st *new_memc= memcached(configuration.c_str(), configuration.size());
+
+    if (new_memc)
+    {
+      memcached_free(memc);
+      memc= new_memc;
+
+      return true;
+    }
+
+    return false;
   }
 
   /**
@@ -320,7 +356,7 @@ public:
                                          key.c_str(), key.length(),
                                          &value[0], value.size(),
                                          expiration, flags);
-    return (rc == MEMCACHED_SUCCESS || rc == MEMCACHED_BUFFERED);
+    return memcached_success(rc);
   }
 
   /**