6 memcached_st
*memcached_create(memcached_st
*ptr
)
8 memcached_string_st
*string_ptr
;
11 ptr
= (memcached_st
*)malloc(sizeof(memcached_st
));
14 return NULL
; /* MEMCACHED_MEMORY_ALLOCATION_FAILURE */
16 memset(ptr
, 0, sizeof(memcached_st
));
17 ptr
->is_allocated
= MEMCACHED_ALLOCATED
;
21 memset(ptr
, 0, sizeof(memcached_st
));
23 string_ptr
= memcached_string_create(ptr
, &ptr
->result_buffer
, 0);
24 WATCHPOINT_ASSERT(string_ptr
);
29 void memcached_free(memcached_st
*ptr
)
34 memcached_server_list_free(ptr
->hosts
);
38 memcached_string_free(&ptr
->result_buffer
);
40 if (ptr
->is_allocated
== MEMCACHED_ALLOCATED
)
43 memset(ptr
, 0, sizeof(memcached_st
));
47 clone is the destination, while ptr is the structure to clone.
48 If ptr is NULL the call is the same as if a memcached_create() was
51 memcached_st
*memcached_clone(memcached_st
*clone
, memcached_st
*ptr
)
54 memcached_st
*new_clone
;
57 return memcached_create(clone
);
59 new_clone
= memcached_create(clone
);
62 rc
= memcached_server_push(new_clone
, ptr
->hosts
);
64 if (rc
!= MEMCACHED_SUCCESS
)
66 memcached_free(new_clone
);
72 new_clone
->flags
= ptr
->flags
;
73 new_clone
->number_of_hosts
= ptr
->number_of_hosts
;
74 new_clone
->send_size
= ptr
->send_size
;
75 new_clone
->recv_size
= ptr
->recv_size
;