Fix for wrong count on memcache_server_st structure (aka the old hack for
[awesomized/libmemcached] / docs / memcached_callback.pod
index 7d3fe7306e631d3013826ed2159866e90327c5e3..56ba4e29c6a4e3bbb1a4554f0986d92105d4b0f0 100755 (executable)
@@ -32,6 +32,9 @@ function set by memcached_callback_set().
 memcached_callback_set() changes the function/structure assigned by a
 callback flag. No connections are reset. 
 
+You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for any 
+of the callbacks
+
 =over 4
 
 =item MEMCACHED_CALLBACK_CLEANUP_FUNCTION
@@ -57,8 +60,6 @@ The prototype for this is:
 
 void *(*memcached_malloc_function)(memcached_st *ptr, const size_t size);
 
-You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for malloc.
-
 =item  MEMCACHED_CALLBACK_REALLOC_FUNCTION,
 
 This alllows yout to pass in a customized version of realloc that will be used instead of the builtin realloc(3) call.
@@ -66,8 +67,6 @@ The prototype for this is:
 
 void *(*memcached_realloc_function)(memcached_st *ptr, void *mem, const size_t size);
 
-You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for realloc.
-
 =item  MEMCACHED_CALLBACK_FREE_FUNCTION,
 
 This alllows yout to pass in a customized version of realloc that will be used instead of the builtin free(3) call.
@@ -75,7 +74,17 @@ The prototype for this is:
 
 typedef void (*memcached_free_function)(memcached_st *ptr, void *mem);
 
-You can use MEMCACHED_CALLBACK_USER_DATA to provide custom context if required for realloc.
+=item  MEMCACHED_CALLBACK_GET_FAILURE,
+
+This function implements the read through cache behavior. On failure of retrieval this callback will be called. 
+You are responsible for populating the result object provided. This result object will then be stored in the server and
+returned to the calling process. You must clone the memcached_st in order to
+make use of it. The value will be stored only if you return
+MEMCACHED_SUCCESS or MEMCACHED_BUFFERED. Returning MEMCACHED_BUFFERED will
+cause the object to be buffered and not sent immediatly (if this is the default behavior based on your connection setup this will happen automatically).
+
+The prototype for this is:
+memcached_return (*memcached_trigger_key)(memcached_st *ptr, char *key, size_t key_length, memcached_result_st *result);
 
 =back