Update cursor
[m6w6/libmemcached] / libmemcached / namespace.cc
index d9961e2959e64282656d6a2df66a04ebdac8ccf1..6a9ec2439d5e279e1734ed0c0bc8056ca06c9547 100644 (file)
  */
 
 #include <libmemcached/common.h>
+#include <libmemcached/assert.hpp>
 
 memcached_return_t memcached_set_namespace(memcached_st *self, const char *key, size_t key_length)
 {
-  WATCHPOINT_ASSERT(self);
+  assert_msg(self, "A NULL memcached_st was used");
 
   if (key and key_length == 0)
   { 
@@ -58,7 +59,7 @@ memcached_return_t memcached_set_namespace(memcached_st *self, const char *key,
     if (memcached_failed(memcached_key_test(*self, (const char **)&key, &key_length, 1)))
     {
       self->flags.verify_key= orig;
-      return memcached_set_error(*self, MEMCACHED_BAD_KEY_PROVIDED, MEMCACHED_AT);
+      return memcached_last_error(self);
     }
     self->flags.verify_key= orig;
 
@@ -67,19 +68,29 @@ memcached_return_t memcached_set_namespace(memcached_st *self, const char *key,
       return memcached_set_error(*self, MEMCACHED_KEY_TOO_BIG, MEMCACHED_AT);
     }
 
-    memcached_array_free(self->prefix_key);
-    self->prefix_key= memcached_strcpy(self, key, key_length);
+    memcached_array_free(self->_namespace);
+    self->_namespace= memcached_strcpy(self, key, key_length);
 
-    if (not self->prefix_key)
+    if (not self->_namespace)
     {
       return memcached_set_error(*self, MEMCACHED_MEMORY_ALLOCATION_FAILURE, MEMCACHED_AT);
     }
   }
   else
   {
-    memcached_array_free(self->prefix_key);
-    self->prefix_key= NULL;
+    memcached_array_free(self->_namespace);
+    self->_namespace= NULL;
   }
 
   return MEMCACHED_SUCCESS;
 }
+
+const char * memcached_get_namespace(memcached_st *self)
+{
+  if (self->_namespace == NULL)
+  {
+    return NULL;
+  }
+
+  return memcached_array_string(self->_namespace);
+}