X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libmemcached%2Fserver.h;h=1a92eea7d89cdd0d029e30de36283c24ee1ae1fb;hb=8f36e509f6130022162abf7cde7e6c8acbbe224c;hp=73c028766d7275fe7ef3654003b820cd2a72f785;hpb=e7561db4b56f2e78948710a0f360f65f5703a8e6;p=awesomized%2Flibmemcached diff --git a/libmemcached/server.h b/libmemcached/server.h index 73c02876..1a92eea7 100644 --- a/libmemcached/server.h +++ b/libmemcached/server.h @@ -29,6 +29,9 @@ struct memcached_server_st { uint32_t io_bytes_sent; /* # bytes sent since last read */ uint32_t server_failure_counter; uint32_t weight; + struct { // Place any "state" sort variables in here. + bool is_corked; + } state; uint8_t major_version; uint8_t micro_version; uint8_t minor_version; @@ -47,20 +50,25 @@ struct memcached_server_st { char hostname[MEMCACHED_MAX_HOST_LENGTH]; }; +// Local Only Inline static inline uint32_t memcached_servers_count(memcached_server_st *servers) { return servers->number_of_hosts; } +// Local Only Inline static inline uint32_t memcached_servers_set_count(memcached_server_st *servers, uint32_t count) { return servers->number_of_hosts= count; } + + #define memcached_server_count(A) (A)->number_of_hosts #define memcached_server_name(A,B) (B).hostname #define memcached_server_port(A,B) (B).port -#define memcached_server_list(A) (A)->hosts +#define memcached_server_list(A) (A)->servers +#define memcached_server_list_set(A,B) (A)->servers=(B) #define memcached_server_response_count(A) (A)->cursor_active LIBMEMCACHED_API @@ -84,10 +92,10 @@ void memcached_server_error_reset(memcached_server_st *ptr); /* These should not currently be used by end users */ /* TODO: Is the above comment valid? If so, how can we unit test these if they * aren't exported. If not, we should remove the comment */ -LIBMEMCACHED_API +LIBMEMCACHED_LOCAL memcached_server_st *memcached_server_create(memcached_st *memc, memcached_server_st *ptr); -LIBMEMCACHED_API +LIBMEMCACHED_LOCAL memcached_server_st *memcached_server_create_with(memcached_st *memc, memcached_server_st *host, const char *hostname, @@ -98,7 +106,7 @@ memcached_server_st *memcached_server_create_with(memcached_st *memc, LIBMEMCACHED_API void memcached_server_free(memcached_server_st *ptr); -LIBMEMCACHED_API +LIBMEMCACHED_LOCAL memcached_server_st *memcached_server_clone(memcached_server_st *clone, memcached_server_st *ptr); @@ -108,6 +116,55 @@ memcached_return_t memcached_server_remove(memcached_server_st *st_ptr); LIBMEMCACHED_API memcached_server_st *memcached_server_get_last_disconnect(memcached_st *ptr); + +LIBMEMCACHED_API +memcached_return_t memcached_server_add_udp(memcached_st *ptr, + const char *hostname, + in_port_t port); +LIBMEMCACHED_API +memcached_return_t memcached_server_add_unix_socket(memcached_st *ptr, + const char *filename); +LIBMEMCACHED_API +memcached_return_t memcached_server_add(memcached_st *ptr, + const char *hostname, in_port_t port); + +LIBMEMCACHED_API +memcached_return_t memcached_server_add_udp_with_weight(memcached_st *ptr, + const char *hostname, + in_port_t port, + uint32_t weight); +LIBMEMCACHED_API +memcached_return_t memcached_server_add_unix_socket_with_weight(memcached_st *ptr, + const char *filename, + uint32_t weight); +LIBMEMCACHED_API +memcached_return_t memcached_server_add_with_weight(memcached_st *ptr, const char *hostname, + in_port_t port, + uint32_t weight); +/* Server List Public functions */ + +LIBMEMCACHED_API +void memcached_server_list_free(memcached_server_st *ptr); + + +LIBMEMCACHED_API +memcached_return_t memcached_server_push(memcached_st *ptr, memcached_server_st *list); + +LIBMEMCACHED_API +memcached_server_st *memcached_server_list_append(memcached_server_st *ptr, + const char *hostname, + in_port_t port, + memcached_return_t *error); +LIBMEMCACHED_API +memcached_server_st *memcached_server_list_append_with_weight(memcached_server_st *ptr, + const char *hostname, + in_port_t port, + uint32_t weight, + memcached_return_t *error); +LIBMEMCACHED_API +unsigned int memcached_server_list_count(memcached_server_st *ptr); + + #ifdef __cplusplus } #endif