Fix all include location, and drop versions of the library that were never shipped.
[awesomized/libmemcached] / clients / execute.cc
index 7f89f77373da6a120d01b490c40e375695e17b41..cf7779e5140c8f2afada67ebc5c1ab8c81e8d45d 100644 (file)
@@ -1,4 +1,5 @@
 /* LibMemcached
+ * Copyright (C) 2011-2012 Data Differential, http://datadifferential.com/
  * Copyright (C) 2006-2009 Brian Aker
  * All rights reserved.
  *
   Return the number of rows set.
 */
 
-#include "config.h"
-#include "execute.h"
+#include <config.h>
+#include "clients/execute.h"
 
 unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int number_of)
 {
-  memcached_return_t rc;
   unsigned int x;
   unsigned int pairs_sent;
 
   for (x= 0, pairs_sent= 0; x < number_of; x++)
   {
-    rc= memcached_set(memc, pairs[x].key, pairs[x].key_length,
-                      pairs[x].value, pairs[x].value_length,
-                      0, 0);
-    if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_BUFFERED)
-      fprintf(stderr, "Failured on insert of %.*s\n",
+    memcached_return_t rc= memcached_set(memc, pairs[x].key, pairs[x].key_length,
+                                         pairs[x].value, pairs[x].value_length,
+                                         0, 0);
+    if (memcached_failed(rc))
+    {
+      fprintf(stderr, "%s:%d Failure on insert (%s) of %.*s\n",
+              __FILE__, __LINE__,
+              memcached_last_error_message(memc),
               (unsigned int)pairs[x].key_length, pairs[x].key);
+      
+      // We will try to reconnect and see if that fixes the issue
+      memcached_quit(memc);
+    }
     else
+    {
       pairs_sent++;
+    }
   }
 
   return pairs_sent;
@@ -44,30 +53,34 @@ unsigned int execute_set(memcached_st *memc, pairs_st *pairs, unsigned int numbe
 */
 unsigned int execute_get(memcached_st *memc, pairs_st *pairs, unsigned int number_of)
 {
-  memcached_return_t rc;
   unsigned int x;
   unsigned int retrieved;
 
 
   for (retrieved= 0,x= 0; x < number_of; x++)
   {
-    char *value;
     size_t value_length;
     uint32_t flags;
-    unsigned int fetch_key;
 
-    fetch_key= (unsigned int)((unsigned int)random() % number_of);
+    unsigned int fetch_key= (unsigned int)((unsigned int)random() % number_of);
 
-    value= memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length,
-                         &value_length, &flags, &rc);
+    memcached_return_t rc;
+    char *value= memcached_get(memc, pairs[fetch_key].key, pairs[fetch_key].key_length,
+                               &value_length, &flags, &rc);
 
-    if (rc != MEMCACHED_SUCCESS)
-      fprintf(stderr, "Failured on read of %.*s\n",
+    if (memcached_failed(rc))
+    {
+      fprintf(stderr, "%s:%d Failure on read(%s) of %.*s\n",
+              __FILE__, __LINE__,
+              memcached_last_error_message(memc),
               (unsigned int)pairs[fetch_key].key_length, pairs[fetch_key].key);
+    }
     else
+    {
       retrieved++;
+    }
 
-    free(value);
+    ::free(value);
   }
 
   return retrieved;
@@ -113,7 +126,8 @@ unsigned int execute_mget(memcached_st *memc,
     rc= memcached_fetch_execute(memc, callbacks, (void *)&retrieved, 1);
     if (rc != MEMCACHED_SUCCESS && rc != MEMCACHED_NOTFOUND && rc != MEMCACHED_END)
     {
-      fprintf(stderr, "Failed to execute mget: %s\n",
+      fprintf(stderr, "%s:%d Failed to execute mget: %s\n",
+              __FILE__, __LINE__,
               memcached_strerror(memc, rc));
       memcached_quit(memc);
       return 0;
@@ -121,7 +135,8 @@ unsigned int execute_mget(memcached_st *memc,
   }
   else
   {
-    fprintf(stderr, "Failed to execute mget: %s\n",
+    fprintf(stderr, "%s:%d Failed to execute mget: %s\n",
+            __FILE__, __LINE__,
             memcached_strerror(memc, rc));
     memcached_quit(memc);
     return 0;