Abstraction (which will save us merge hell with 1.2).
[awesomized/libmemcached] / libmemcached / auto.cc
index 4196b6683deb4fc8a8affa6db2bd29ca584a4103..57d6d2fdc00311e339d12f36efc9fea9cf3ef7c8 100644 (file)
@@ -52,13 +52,15 @@ static void auto_response(org::libmemcached::Instance* instance, const bool repl
     rc= memcached_response(instance, &instance->root->result);
   }
 
-  if (memcached_success(rc))
+  if (memcached_fatal(rc))
   {
-    *value= instance->root->result.numeric_value;
+    fprintf(stderr, "%s\n", memcached_strerror(NULL, rc));
+    assert(memcached_last_error(instance->root) != MEMCACHED_SUCCESS);
+    *value= UINT64_MAX;
   }
   else
   {
-    *value= UINT64_MAX;
+    *value= instance->root->result.numeric_value;
   }
 }
 
@@ -149,7 +151,7 @@ memcached_return_t memcached_increment(memcached_st *memc,
 }
 
 static memcached_return_t increment_decrement_by_key(const protocol_binary_command command,
-                                                     memcached_st *memc,
+                                                     Memcached *memc,
                                                      const char *group_key, size_t group_key_length,
                                                      const char *key, size_t key_length,
                                                      uint64_t offset,
@@ -204,7 +206,7 @@ static memcached_return_t increment_decrement_by_key(const protocol_binary_comma
 }
 
 static memcached_return_t increment_decrement_with_initial_by_key(const protocol_binary_command command,
-                                                                  memcached_st *memc,
+                                                                  Memcached *memc,
                                                                   const char *group_key,
                                                                   size_t group_key_length,
                                                                   const char *key,
@@ -270,12 +272,13 @@ memcached_return_t memcached_decrement(memcached_st *memc,
 }
 
 
-memcached_return_t memcached_increment_by_key(memcached_st *memc,
+memcached_return_t memcached_increment_by_key(memcached_st *shell,
                                               const char *group_key, size_t group_key_length,
                                               const char *key, size_t key_length,
                                               uint64_t offset,
                                               uint64_t *value)
 {
+  Memcached* memc= memcached2Memcached(shell);
   LIBMEMCACHED_MEMCACHED_INCREMENT_START();
   memcached_return_t rc= increment_decrement_by_key(PROTOCOL_BINARY_CMD_INCREMENT,
                                                     memc,
@@ -288,12 +291,13 @@ memcached_return_t memcached_increment_by_key(memcached_st *memc,
   return rc;
 }
 
-memcached_return_t memcached_decrement_by_key(memcached_st *memc,
+memcached_return_t memcached_decrement_by_key(memcached_st *shell,
                                               const char *group_key, size_t group_key_length,
                                               const char *key, size_t key_length,
                                               uint64_t offset,
                                               uint64_t *value)
 {
+  Memcached* memc= memcached2Memcached(shell);
   LIBMEMCACHED_MEMCACHED_DECREMENT_START();
   memcached_return_t rc= increment_decrement_by_key(PROTOCOL_BINARY_CMD_DECREMENT,
                                                     memc,
@@ -318,7 +322,7 @@ memcached_return_t memcached_increment_with_initial(memcached_st *memc,
                                                  offset, initial, expiration, value);
 }
 
-memcached_return_t memcached_increment_with_initial_by_key(memcached_st *memc,
+memcached_return_t memcached_increment_with_initial_by_key(memcached_st *shell,
                                                            const char *group_key,
                                                            size_t group_key_length,
                                                            const char *key,
@@ -329,6 +333,7 @@ memcached_return_t memcached_increment_with_initial_by_key(memcached_st *memc,
                                                            uint64_t *value)
 {
   LIBMEMCACHED_MEMCACHED_INCREMENT_WITH_INITIAL_START();
+  Memcached* memc= memcached2Memcached(shell);
   memcached_return_t rc= increment_decrement_with_initial_by_key(PROTOCOL_BINARY_CMD_INCREMENT, 
                                                                  memc,
                                                                  group_key, group_key_length,
@@ -352,7 +357,7 @@ memcached_return_t memcached_decrement_with_initial(memcached_st *memc,
                                                  offset, initial, expiration, value);
 }
 
-memcached_return_t memcached_decrement_with_initial_by_key(memcached_st *memc,
+memcached_return_t memcached_decrement_with_initial_by_key(memcached_st *shell,
                                                            const char *group_key,
                                                            size_t group_key_length,
                                                            const char *key,
@@ -363,6 +368,7 @@ memcached_return_t memcached_decrement_with_initial_by_key(memcached_st *memc,
                                                            uint64_t *value)
 {
   LIBMEMCACHED_MEMCACHED_INCREMENT_WITH_INITIAL_START();
+  Memcached* memc= memcached2Memcached(shell);
   memcached_return_t rc= increment_decrement_with_initial_by_key(PROTOCOL_BINARY_CMD_DECREMENT, 
                                                                  memc,
                                                                  group_key, group_key_length,