#include "common.h"
static inline void _result_init(memcached_result_st *self,
- const memcached_st *memc)
+ memcached_st *memc)
{
self->item_flags= 0;
self->item_expiration= 0;
memcached_result_st *ptr)
{
WATCHPOINT_ASSERT(memc);
- WATCHPOINT_ASSERT(memc->options.is_initialized);
/* Saving malloc calls :) */
if (ptr)
ptr->options.is_initialized= true;
- _result_init(ptr, memc);
+ _result_init(ptr, (memcached_st *)memc);
- ptr->root= memc;
+ WATCHPOINT_SET(ptr->value.options.is_initialized= false);
memcached_string_create(memc, &ptr->value, 0);
WATCHPOINT_ASSERT_INITIALIZED(&ptr->value);
WATCHPOINT_ASSERT(ptr->value.string == NULL);
const char *value,
size_t length)
{
- return memcached_string_append(&ptr->value, value, length);
+ memcached_return_t rc= memcached_string_append(&ptr->value, value, length);
+
+ if (rc == MEMCACHED_MEMORY_ALLOCATION_FAILURE)
+ {
+ memcached_set_errno(ptr->root, errno, NULL);
+ }
+
+ return rc;
+}
+
+const char *memcached_result_key_value(const memcached_result_st *self)
+{
+ return self->key_length ? self->item_key : NULL;
+}
+
+size_t memcached_result_key_length(const memcached_result_st *self)
+{
+ return self->key_length;
+}
+
+const char *memcached_result_value(const memcached_result_st *self)
+{
+ const memcached_string_st *sptr= &self->value;
+ return memcached_string_value(sptr);
+}
+
+size_t memcached_result_length(const memcached_result_st *self)
+{
+ const memcached_string_st *sptr= &self->value;
+ return memcached_string_length(sptr);
+}
+
+uint32_t memcached_result_flags(const memcached_result_st *self)
+{
+ return self->item_flags;
+}
+
+uint64_t memcached_result_cas(const memcached_result_st *self)
+{
+ return self->item_cas;
+}
+
+void memcached_result_set_flags(memcached_result_st *self, uint32_t flags)
+{
+ self->item_flags= flags;
+}
+
+void memcached_result_set_expiration(memcached_result_st *self, time_t expiration)
+{
+ self->item_expiration= expiration;
}