Implement the server failure rehash mechanism
[awesomized/libmemcached] / libmemcached / memcached_server.h
1 /*
2 * Summary: String structure used for libmemcached.
3 *
4 * Copy: See Copyright for the status of this software.
5 *
6 * Author: Brian Aker
7 */
8
9 #ifndef __MEMCACHED_SERVER_H__
10 #define __MEMCACHED_SERVER_H__
11
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15
16 struct memcached_server_st {
17 char hostname[MEMCACHED_MAX_HOST_LENGTH];
18 unsigned int port;
19 int fd;
20 int cached_errno;
21 unsigned int cursor_active;
22 char write_buffer[MEMCACHED_MAX_BUFFER];
23 size_t write_buffer_offset;
24 char read_buffer[MEMCACHED_MAX_BUFFER];
25 size_t read_data_length;
26 size_t read_buffer_length;
27 char *read_ptr;
28 memcached_allocated sockaddr_inited;
29 struct addrinfo *address_info;
30 memcached_connection type;
31 uint8_t major_version;
32 uint8_t minor_version;
33 uint8_t micro_version;
34 uint16_t count;
35 time_t next_retry;
36 memcached_st *root;
37 uint64_t limit_maxbytes;
38 uint32_t server_failure_counter;
39 };
40
41 #define memcached_server_count(A) (A)->number_of_hosts
42 #define memcached_server_name(A,B) (B).hostname
43 #define memcached_server_port(A,B) (B).port
44 #define memcached_server_list(A) (A)->hosts
45 #define memcached_server_response_count(A) (A)->cursor_active
46
47
48 #ifdef __cplusplus
49 }
50 #endif
51
52 #endif /* __MEMCACHED_SERVER_H__ */