3 #include <sys/socket.h>
4 #include <netinet/tcp.h>
7 These functions provide data and function callback support
10 memcached_return
memcached_callback_set(memcached_st
*ptr
,
11 memcached_callback flag
,
16 case MEMCACHED_CALLBACK_USER_DATA
:
21 case MEMCACHED_CALLBACK_CLEANUP_FUNCTION
:
23 memcached_cleanup_func func
= (memcached_cleanup_func
)data
;
24 ptr
->on_cleanup
= func
;
27 case MEMCACHED_CALLBACK_CLONE_FUNCTION
:
29 memcached_clone_func func
= (memcached_clone_func
)data
;
33 case MEMCACHED_CALLBACK_MALLOC_FUNCTION
:
35 memcached_malloc_function func
= (memcached_malloc_function
)data
;
36 ptr
->call_malloc
= func
;
39 case MEMCACHED_CALLBACK_REALLOC_FUNCTION
:
41 memcached_realloc_function func
= (memcached_realloc_function
)data
;
42 ptr
->call_realloc
= func
;
45 case MEMCACHED_CALLBACK_FREE_FUNCTION
:
47 memcached_free_function func
= (memcached_free_function
)data
;
51 case MEMCACHED_CALLBACK_GET_FAILURE
:
53 memcached_trigger_key func
= (memcached_trigger_key
)data
;
54 ptr
->get_key_failure
= func
;
57 case MEMCACHED_CALLBACK_DELETE_TRIGGER
:
59 memcached_trigger_delete_key func
= (memcached_trigger_delete_key
)data
;
60 ptr
->delete_trigger
= func
;
64 return MEMCACHED_FAILURE
;
67 return MEMCACHED_SUCCESS
;
70 void *memcached_callback_get(memcached_st
*ptr
,
71 memcached_callback flag
,
72 memcached_return
*error
)
74 memcached_return local_error
;
80 case MEMCACHED_CALLBACK_USER_DATA
:
82 *error
= ptr
->user_data
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
83 return (void *)ptr
->user_data
;
85 case MEMCACHED_CALLBACK_CLEANUP_FUNCTION
:
87 *error
= ptr
->on_cleanup
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
88 return (void *)ptr
->on_cleanup
;
90 case MEMCACHED_CALLBACK_CLONE_FUNCTION
:
92 *error
= ptr
->on_clone
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
93 return (void *)ptr
->on_clone
;
95 case MEMCACHED_CALLBACK_MALLOC_FUNCTION
:
97 *error
= ptr
->call_malloc
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
98 return (void *)ptr
->call_malloc
;
100 case MEMCACHED_CALLBACK_REALLOC_FUNCTION
:
102 *error
= ptr
->call_realloc
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
103 return (void *)ptr
->call_realloc
;
105 case MEMCACHED_CALLBACK_FREE_FUNCTION
:
107 *error
= ptr
->call_free
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
108 return (void *)ptr
->call_free
;
110 case MEMCACHED_CALLBACK_GET_FAILURE
:
112 *error
= ptr
->get_key_failure
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
113 return (void *)ptr
->get_key_failure
;
115 case MEMCACHED_CALLBACK_DELETE_TRIGGER
:
117 *error
= ptr
->delete_trigger
? MEMCACHED_SUCCESS
: MEMCACHED_FAILURE
;
118 return (void *)ptr
->delete_trigger
;
121 WATCHPOINT_ASSERT(0);
122 *error
= MEMCACHED_FAILURE
;