This add AES support.
[m6w6/libmemcached] / libmemcached / result.cc
index 1d0b763df67ab72d89b48cd18be79b6a220ae01f..e7bac559d6456cc17d1bcfb890442dccf62c0a18 100644 (file)
@@ -52,6 +52,8 @@ static inline void _result_init(memcached_result_st *self,
   self->key_length= 0;
   self->item_cas= 0;
   self->root= memc;
+  self->numeric_value= UINT64_MAX;
+  self->count= 0;
   self->item_key[0]= 0;
 }
 
@@ -67,10 +69,12 @@ memcached_result_st *memcached_result_create(const memcached_st *memc,
   }
   else
   {
-    ptr= static_cast<memcached_result_st *>(libmemcached_malloc(memc, sizeof(memcached_result_st)));
+    ptr= libmemcached_xmalloc(memc, memcached_result_st);
 
-    if (ptr == NULL)
+    if (not ptr)
+    {
       return NULL;
+    }
 
     ptr->options.is_allocated= true;
   }
@@ -80,7 +84,7 @@ memcached_result_st *memcached_result_create(const memcached_st *memc,
   _result_init(ptr, (memcached_st *)memc);
 
   WATCHPOINT_SET(ptr->value.options.is_initialized= false);
-  memcached_string_create(memc, &ptr->value, 0);
+  memcached_string_create((memcached_st*)memc, &ptr->value, 0);
   WATCHPOINT_ASSERT_INITIALIZED(&ptr->value);
   WATCHPOINT_ASSERT(ptr->value.string == NULL);
 
@@ -94,14 +98,18 @@ void memcached_result_reset(memcached_result_st *ptr)
   ptr->item_flags= 0;
   ptr->item_cas= 0;
   ptr->item_expiration= 0;
+  ptr->numeric_value= UINT64_MAX;
 }
 
 void memcached_result_free(memcached_result_st *ptr)
 {
   if (ptr == NULL)
+  {
     return;
+  }
 
   memcached_string_free(&ptr->value);
+  ptr->numeric_value= UINT64_MAX;
 
   if (memcached_is_allocated(ptr))
   {
@@ -110,22 +118,26 @@ void memcached_result_free(memcached_result_st *ptr)
   }
   else
   {
+    ptr->count= 0;
     ptr->options.is_initialized= false;
   }
 }
 
+void memcached_result_reset_value(memcached_result_st *ptr)
+{
+  memcached_string_reset(&ptr->value);
+}
+
 memcached_return_t memcached_result_set_value(memcached_result_st *ptr,
                                               const char *value,
                                               size_t length)
 {
-  memcached_return_t rc= memcached_string_append(&ptr->value, value, length);
-
-  if (rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE)
+  if (memcached_failed(memcached_string_append(&ptr->value, value, length)))
   {
-    memcached_set_errno(ptr->root, errno, NULL);
+    return memcached_set_errno(*ptr->root, errno, MEMCACHED_AT);
   }
 
-      return rc;
+  return MEMCACHED_SUCCESS;
 }
 
 const char *memcached_result_key_value(const memcached_result_st *self)