MEMCACHED_RESULT_CAS(3)
π MEMCACHED_RESULT_CAS(3) π
okay so bestie, welcome to the libmemcached-awesome page for memcached_result_cas β it's giving "result sets, but make it a whole thing" β¨. Stay with me, this one has twelve functions and every single one of them is important, no skipping π
β¨ NAME β¨
memcached_result_cas β working with result sets π
πΈ SYNOPSIS πΈ
#include <libmemcached/memcached.h>
Compile and link with -lmemcachedutil -lmemcached
typedef struct memcached_result_st memcached_result_st
π«Ά memcached_result_create
memcached_result_st *memcached_result_create(memcached_st *ptr,
memcached_result_st *result)
Parameters
ptrβ pointer to an initializedmemcached_ststructresultβ pointer to amemcached_result_stinstance you want it to initialize, ornullptrif you'd rather it allocate a brand new instance for you π
Returns
a pointer to the initialized memcached_result_st instance, slay
π§ memcached_result_free
void memcached_result_free(memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
π¦ memcached_result_key_value
const char *memcached_result_key_value(memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the key value associated with the current result object π«
π memcached_result_key_length
size_t memcached_result_key_length(const memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the key length associated with the current result object
π memcached_result_value
const char *memcached_result_value(memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the result value associated with the current result object
π memcached_result_take_value
char *memcached_result_take_value(memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the result value associated with the current result object
π memcached_result_length
size_t memcached_result_length(const memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the result length associated with the current result object
π memcached_result_flags
uint32_t memcached_result_flags(const memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the flags associated with the current result object π©
β memcached_result_cas
uint64_t memcached_result_cas(const memcached_result_st *result)
Parameters
resultβ pointer to an initializedmemcached_result_ststruct
Returns
the cas associated with the current result object
π₯ memcached_result_set_value
memcached_return_t memcached_result_set_value(memcached_result_st
*result, const char *value, size_t length)
Parameters
resultβ pointer to an initializedmemcached_result_ststructvalueβ byte array to set the value of the current result object tolengthβ the length ofvalue, without any terminating zero
Returns
a memcached_return_t indicating success β
π
memcached_result_set_flags
void memcached_result_set_flags(memcached_result_st *result, uint32_t
flags)
Parameters
resultβ pointer to an initializedmemcached_result_ststructflagsβ a new value for the flags field
πΈ memcached_result_set_expiration
void memcached_result_set_expiration(memcached_result_st *result, time_t
expiration)
Parameters
resultβ pointer to an initializedmemcached_result_ststructexpirationβ a new value for the expiration field β°
π« DESCRIPTION π«
okay so here's the tea β β libmemcached can optionally hand you back a memcached_result_st, which is basically a whole result object. and bestie, these result objects have added benefits over the plain character pointer return values:
- they're forward compatible with new return items that future memcached servers might implement (the best current example of this? literally the CAS return item, iconic)
- the structures can also be reused, which saves you calls to
malloc(3)
so yeah, it's suggested that you use result objects over char * return functions. do it for the plot π«Ά
the structure of memcached_result_st has been encapsulated, so do not write code that directly accesses members of the structure. hands off the merch, bestie π
memcached_result_create() will either allocate memory for a memcached_result_st, or initialize a structure that you passed in. either way, she's ready π
memcached_result_free() will deallocate any memory attached to the structure. and if the structure was also allocated (like, by create), it will deallocate that too. full clean-up, no crumbs π§Ή
memcached_result_key_value() returns the key value associated with the current result object π
memcached_result_key_length() returns the key length associated with the current result object π
memcached_result_value() returns the result value associated with the current result object π
memcached_result_take_value() returns and hands over the result value associated with the current result object.
β οΈ bestie listen β you must callfree(3)to release this value, unless you've made use of a custom allocator. and if you are using a custom allocator, that means you have to create your own customfree()to release it. no cap, this one is on you.
memcached_result_length() returns the result length associated with the current result object
memcached_result_flags() returns the flags associated with the current result object π©
memcached_result_cas() returns the cas associated with the current result object. heads up tho β this value will only be available if the server tests it π
memcached_result_set_value() takes a byte array and a size, and sets the result to this value. this function is used for trigger responses β‘
memcached_result_set_flags() takes a result structure and stores a new value for the flags field.
memcached_result_set_expiration() takes a result structure and stores a new value for the expiration field β and just so you know, this is only used by read through triggers β³
π― RETURN VALUE π―
varies, bestie β see the particular functions. but the one thing that does not vary: all structures must have memcached_result_free() called on them for cleanup purposes.
π failure to do this will result in leaked memory. and not the cute kind of leak. call the free function, i am begging π
π SEE ALSO π
and that's the whole page, bestie!! π this was libmemcached-awesome version 1.1, dated Jul 24, 2025 β go forth, use result objects over char *, and free your structures. mwah πβ¨
π¦ where this page comes from
- fedora 43: libmemcached-awesome-devel 1.1.4-7.fc43 Β· BSD-3-Clause
- fedora 43: libmemcached-awesome-devel 1.1.4-7.fc43 Β· BSD-3-Clause
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms