Merge 477:75823cad36b7 with -r 476
author <patg@patg.net> <>
Mon, 5 May 2008 03:32:10 +0000 (23:32 -0400)
committer <patg@patg.net> <>
Mon, 5 May 2008 03:32:10 +0000 (23:32 -0400)
1  2 
libmemcached/memcached.hh
tests/plus.cpp

index 0000000000000000000000000000000000000000,f7e349e7ee2fca05a4e28a8e8b5e78424f89610a..3bbcaf0bbf9fdec56b20e3d26d8c9d70f8358970
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,100 +1,183 @@@
 -
+ #ifdef USE_PRAGMA_INTERFACE
+ #pragma interface                       /* gcc class implementation */
+ #endif
+ #include <memcached.h>
+ #include <string.h>
+ #include <stdio.h>
+ class Memcached
+ {
+   memcached_st memc;
++  memcached_result_st result;
+ public:
+   Memcached()
+   {
+     memcached_create(&memc);
+   }
+   Memcached(memcached_st *clone)
+   {
+     memcached_clone(&memc, clone);
+   }
++  char *fetch (char *key, size_t *key_length, size_t *value_length)
++  {
++    uint32_t flags;
++    memcached_return rc;
++    return memcached_fetch(&memc, key, key_length,
++                    value_length, &flags, &rc);
++  }
+   char *get(char *key, size_t *value_length)
+   {
+     uint32_t flags;
+     memcached_return rc;
+     return memcached_get(&memc, key, strlen(key),
+                          value_length, &flags, &rc);
+   }
+   char *get_by_key(char *master_key, char *key, size_t *value_length)
+   {
+     uint32_t flags;
+     memcached_return rc;
+     return memcached_get_by_key(&memc, master_key, strlen(master_key), key, strlen(key),
+                                 value_length, &flags, &rc);
+   }
+   memcached_return mget(char **keys, size_t *key_length, unsigned int number_of_keys)
+   {
+     return memcached_mget(&memc, keys, key_length, number_of_keys);
+   }
+   memcached_return set(char *key, char *value, size_t value_length)
+   {
+     return memcached_set(&memc, key, strlen(key),
+                          value, value_length,
+                          (time_t)0, (uint32_t)0);
+   }
+   memcached_return set_by_key(char *master_key, char *key, char *value, size_t value_length)
+   {
+     return memcached_set_by_key(&memc, master_key, strlen(master_key),
+                          key, strlen(key),
+                          value, value_length,
+                          (time_t)0,
+                          (uint32_t)0 );
+   }
++  memcached_return
++    increment(char *key, unsigned int offset, uint64_t *value)
++  {
++    return memcached_increment(&memc, key, strlen(key),
++                         offset, value);
++  }
++  memcached_return
++    decrement(char *key, unsigned int offset, uint64_t *value)
++  {
++    return memcached_decrement(&memc, key, strlen(key),
++                         offset, value);
++  }
+   memcached_return add(char *key, char *value, size_t value_length)
+   {
+     return memcached_add(&memc, key, strlen(key),
+                  value, value_length,
+                  (time_t)0, (uint32_t)0);
+   }
++  memcached_return add_by_key(char *master_key, char *key, char *value, size_t value_length)
++  {
++    return memcached_add_by_key(&memc, master_key, strlen(master_key),
++                                key, strlen(key),
++                                value, value_length,
++                                (time_t)0, (uint32_t)0);
++  }
+   memcached_return replace(char *key, char *value, size_t value_length)
+   {
+     return memcached_replace(&memc, key, strlen(key),
+                      value, value_length,
+                      (time_t)0, (uint32_t)0);
+   }
++  memcached_return replace_by_key(char *master_key,
++                                  char *key, char *value, size_t value_length)
++  {
++    return memcached_replace_by_key(&memc, master_key, strlen(master_key),
++                                    key, strlen(key),
++                                    value, value_length,
++                                    (time_t)0, (uint32_t)0);
++  }
+   memcached_return prepend(char *key, char *value, size_t value_length)
+   {
+     return memcached_prepend(&memc, key, strlen(key),
+                     value, value_length,
+                     (time_t)0,
+                     (uint32_t)0);
+   }
++  memcached_return prepend_by_key(char *master_key,
++                                  char *key, char *value, size_t value_length)
++  {
++    return memcached_prepend_by_key(&memc, master_key, strlen(master_key),
++                                    key, strlen(key),
++                                    value, value_length,
++                                    (time_t)0,
++                                    (uint32_t)0);
++  }
+   memcached_return  append(char *key, char *value, size_t value_length)
+   {
+     return memcached_append(&memc, key, strlen(key),
+                     value, value_length,
+                     (time_t)0,
+                     (uint32_t)0);
+   }
++  memcached_return  append_by_key(char *master_key,
++                                  char *key, char *value, size_t value_length)
++  {
++    return memcached_append_by_key(&memc,
++                                   master_key, strlen(master_key),
++                                   key, strlen(key),
++                                   value, value_length,
++                                   (time_t)0,
++                                   (uint32_t)0);
++  }
++  memcached_return  cas(char *key, char *value, size_t value_length, uint64_t cas)
++  {
++    return memcached_cas(&memc, key, strlen(key),
++                    value, value_length,
++                    (time_t)0,
++                    (uint32_t)0,
++                    cas);
++  }
++  memcached_return  cas_by_key(char *master_key, char *key, char *value,
++                               size_t value_length, uint64_t cas)
++  {
++    return memcached_cas_by_key(&memc,
++                                master_key, strlen(master_key),
++                                key, strlen(key),
++                                value, value_length,
++                                (time_t)0,
++                                (uint32_t)0,
++                                cas);
++  }
++  // using 'remove' vs. 'delete' since 'delete' is a keyword 
++  memcached_return remove(char *key)
++  {
++    return memcached_delete (&memc, key, strlen(key), (time_t)0);
++
++  }
++  memcached_return delete_by_key(char *master_key, char *key)
++  {
++    return memcached_delete_by_key(&memc, master_key, strlen(master_key),
++                           key, strlen(key), (time_t)0);
++  }
+  ~Memcached()
+  {
+    memcached_free(&memc);
+  }
+ };
diff --cc tests/plus.cpp
index 2e5ea513545188e51e264144c4d8ec70b35e2cce,20a537b1ac20ed28e7c7102dd666aa889cb7de55..ab9cdbe6e7d466be903917d7defdcb3e7eb57d22
@@@ -27,42 -27,10 +27,43 @@@ test_return basic_test(memcached_st *me
  
    assert((memcmp(value, value_set, value_length) == 0));
  
-   return 0;
+   return TEST_SUCCESS;
  }
- uint8_t basic_master_key_test(memcached_st *memc)
 +uint8_t increment_test(memcached_st *memc)
 +{
 +  Memcached mcach;
 +  memcached_return rc;
 +  char *key= "inctest";
 +  char *inc_value= "1";
 +  char *ret_value;
 +  uint64_t int_inc_value;
 +  uint64_t int_ret_value;
 +  size_t value_length;
 +
 +  mcach.set(key, inc_value, strlen(inc_value));
 +  ret_value= mcach.get(key, &value_length);
 +  printf("\nretvalue %s\n",ret_value);
 +  int_inc_value= atoi(inc_value);
 +  int_ret_value= atoi(ret_value);
 +  assert(int_ret_value == int_inc_value); 
 +
 +  rc= mcach.increment(key, 1, &int_ret_value);
 +  assert(rc == MEMCACHED_SUCCESS);
 +  assert(int_ret_value == 2);
 +
 +  rc= mcach.increment(key, 1, &int_ret_value);
 +  assert(rc == MEMCACHED_SUCCESS);
 +  assert(int_ret_value == 3);
 +
 +  rc= mcach.increment(key, 5, &int_ret_value);
 +  assert(rc == MEMCACHED_SUCCESS);
 +  assert(int_ret_value == 8);
 +
 +  return 0;
 +}
 +
+ test_return basic_master_key_test(memcached_st *memc)
  {
    Memcached foo;
    char *value_set= "Data for server A";