Merging Patrick's work on C++ interface.
[awesomized/libmemcached] / include / memcached.hh
index a359488d72d7cf0845c6cca6052deb89fd2cc119..82fbd3ce15badafbd49a643d8e509d40e4abbe14 100644 (file)
@@ -3,6 +3,7 @@
 #endif
 
 #include <memcached.h>
+#include <string.h>
 #include <stdio.h>
 
 class Memcached
@@ -11,13 +12,91 @@ class Memcached
 
 public:
 
- Memcached();
- Memcached(memcached_st *clone);
+  Memcached()
+  {
+    memcached_create(&memc);
+  }
+
+  Memcached(memcached_st *clone)
+  {
+    WATCHPOINT;
+    memcached_clone(&memc, clone);
+    WATCHPOINT;
+  }
+
+  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 *key, char *master_key, size_t *value_length)
+  {
+    uint32_t flags;
+    memcached_return rc;
+
+    return memcached_get_by_key(&memc, key, strlen(key), master_key, strlen(master_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 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 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 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  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()
  {
    memcached_free(&memc);
  }
-
- char *get(char *key, size_t *value_length);
- memcached_return set(char *key, char *value, size_t value_length);
 };