dalli_memcached 1.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (209) hide show
  1. data/BENCHMARKS +142 -0
  2. data/CHANGELOG +176 -0
  3. data/Gemfile +11 -0
  4. data/Gemfile.lock +45 -0
  5. data/LICENSE +184 -0
  6. data/Manifest +209 -0
  7. data/README.rdoc +124 -0
  8. data/Rakefile +134 -0
  9. data/TODO +1 -0
  10. data/dalli_memcached.gemspec +0 -0
  11. data/ext/extconf-make.rb +25 -0
  12. data/ext/extconf.rb +78 -0
  13. data/ext/libmemcached-0.32/AUTHORS +7 -0
  14. data/ext/libmemcached-0.32/COPYING +32 -0
  15. data/ext/libmemcached-0.32/ChangeLog +303 -0
  16. data/ext/libmemcached-0.32/INSTALL +302 -0
  17. data/ext/libmemcached-0.32/Makefile.am +36 -0
  18. data/ext/libmemcached-0.32/Makefile.in +911 -0
  19. data/ext/libmemcached-0.32/NEWS +1 -0
  20. data/ext/libmemcached-0.32/README +33 -0
  21. data/ext/libmemcached-0.32/THANKS +14 -0
  22. data/ext/libmemcached-0.32/TODO +11 -0
  23. data/ext/libmemcached-0.32/aclocal.m4 +2108 -0
  24. data/ext/libmemcached-0.32/clients/Makefile.am +80 -0
  25. data/ext/libmemcached-0.32/clients/Makefile.in +773 -0
  26. data/ext/libmemcached-0.32/clients/client_options.h +32 -0
  27. data/ext/libmemcached-0.32/clients/execute.c +64 -0
  28. data/ext/libmemcached-0.32/clients/execute.h +5 -0
  29. data/ext/libmemcached-0.32/clients/generator.c +74 -0
  30. data/ext/libmemcached-0.32/clients/generator.h +20 -0
  31. data/ext/libmemcached-0.32/clients/memcat.c +178 -0
  32. data/ext/libmemcached-0.32/clients/memcp.c +251 -0
  33. data/ext/libmemcached-0.32/clients/memdump.c +170 -0
  34. data/ext/libmemcached-0.32/clients/memerror.c +80 -0
  35. data/ext/libmemcached-0.32/clients/memflush.c +143 -0
  36. data/ext/libmemcached-0.32/clients/memrm.c +160 -0
  37. data/ext/libmemcached-0.32/clients/memslap.c +441 -0
  38. data/ext/libmemcached-0.32/clients/memstat.c +326 -0
  39. data/ext/libmemcached-0.32/clients/utilities.c +207 -0
  40. data/ext/libmemcached-0.32/clients/utilities.h +41 -0
  41. data/ext/libmemcached-0.32/config.h.in +254 -0
  42. data/ext/libmemcached-0.32/config/compile +143 -0
  43. data/ext/libmemcached-0.32/config/config.guess +1561 -0
  44. data/ext/libmemcached-0.32/config/config.rpath +666 -0
  45. data/ext/libmemcached-0.32/config/config.sub +1686 -0
  46. data/ext/libmemcached-0.32/config/depcomp +630 -0
  47. data/ext/libmemcached-0.32/config/install-sh +520 -0
  48. data/ext/libmemcached-0.32/config/ltmain.sh +9636 -0
  49. data/ext/libmemcached-0.32/config/missing +376 -0
  50. data/ext/libmemcached-0.32/configure +23843 -0
  51. data/ext/libmemcached-0.32/configure.ac +120 -0
  52. data/ext/libmemcached-0.32/libmemcached/Makefile.am +111 -0
  53. data/ext/libmemcached-0.32/libmemcached/Makefile.in +1069 -0
  54. data/ext/libmemcached-0.32/libmemcached/byteorder.c +31 -0
  55. data/ext/libmemcached-0.32/libmemcached/common.h +189 -0
  56. data/ext/libmemcached-0.32/libmemcached/crc.c +86 -0
  57. data/ext/libmemcached-0.32/libmemcached/hsieh_hash.c +68 -0
  58. data/ext/libmemcached-0.32/libmemcached/jenkins_hash.c +213 -0
  59. data/ext/libmemcached-0.32/libmemcached/libmemcached.ver +1 -0
  60. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.d +30 -0
  61. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.h +82 -0
  62. data/ext/libmemcached-0.32/libmemcached/md5.c +354 -0
  63. data/ext/libmemcached-0.32/libmemcached/memcached.c +153 -0
  64. data/ext/libmemcached-0.32/libmemcached/memcached.h +305 -0
  65. data/ext/libmemcached-0.32/libmemcached/memcached.hpp +799 -0
  66. data/ext/libmemcached-0.32/libmemcached/memcached/README.txt +7 -0
  67. data/ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +385 -0
  68. data/ext/libmemcached-0.32/libmemcached/memcached_allocators.c +72 -0
  69. data/ext/libmemcached-0.32/libmemcached/memcached_analyze.c +100 -0
  70. data/ext/libmemcached-0.32/libmemcached/memcached_auto.c +207 -0
  71. data/ext/libmemcached-0.32/libmemcached/memcached_behavior.c +290 -0
  72. data/ext/libmemcached-0.32/libmemcached/memcached_callback.c +175 -0
  73. data/ext/libmemcached-0.32/libmemcached/memcached_configure.h.in +23 -0
  74. data/ext/libmemcached-0.32/libmemcached/memcached_connect.c +371 -0
  75. data/ext/libmemcached-0.32/libmemcached/memcached_constants.h +146 -0
  76. data/ext/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  77. data/ext/libmemcached-0.32/libmemcached/memcached_do.c +72 -0
  78. data/ext/libmemcached-0.32/libmemcached/memcached_dump.c +79 -0
  79. data/ext/libmemcached-0.32/libmemcached/memcached_exist.c +114 -0
  80. data/ext/libmemcached-0.32/libmemcached/memcached_exist.h +20 -0
  81. data/ext/libmemcached-0.32/libmemcached/memcached_fetch.c +102 -0
  82. data/ext/libmemcached-0.32/libmemcached/memcached_flush.c +89 -0
  83. data/ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +23 -0
  84. data/ext/libmemcached-0.32/libmemcached/memcached_get.c +494 -0
  85. data/ext/libmemcached-0.32/libmemcached/memcached_get.h +87 -0
  86. data/ext/libmemcached-0.32/libmemcached/memcached_hash.c +252 -0
  87. data/ext/libmemcached-0.32/libmemcached/memcached_hosts.c +510 -0
  88. data/ext/libmemcached-0.32/libmemcached/memcached_internal.h +31 -0
  89. data/ext/libmemcached-0.32/libmemcached/memcached_io.c +594 -0
  90. data/ext/libmemcached-0.32/libmemcached/memcached_io.h +72 -0
  91. data/ext/libmemcached-0.32/libmemcached/memcached_key.c +28 -0
  92. data/ext/libmemcached-0.32/libmemcached/memcached_parse.c +74 -0
  93. data/ext/libmemcached-0.32/libmemcached/memcached_pool.h +38 -0
  94. data/ext/libmemcached-0.32/libmemcached/memcached_purge.c +76 -0
  95. data/ext/libmemcached-0.32/libmemcached/memcached_quit.c +75 -0
  96. data/ext/libmemcached-0.32/libmemcached/memcached_response.c +529 -0
  97. data/ext/libmemcached-0.32/libmemcached/memcached_result.c +57 -0
  98. data/ext/libmemcached-0.32/libmemcached/memcached_result.h +59 -0
  99. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.c +225 -0
  100. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.h +44 -0
  101. data/ext/libmemcached-0.32/libmemcached/memcached_server.c +159 -0
  102. data/ext/libmemcached-0.32/libmemcached/memcached_server.h +93 -0
  103. data/ext/libmemcached-0.32/libmemcached/memcached_stats.c +437 -0
  104. data/ext/libmemcached-0.32/libmemcached/memcached_storage.c +514 -0
  105. data/ext/libmemcached-0.32/libmemcached/memcached_storage.h +107 -0
  106. data/ext/libmemcached-0.32/libmemcached/memcached_strerror.c +92 -0
  107. data/ext/libmemcached-0.32/libmemcached/memcached_string.c +138 -0
  108. data/ext/libmemcached-0.32/libmemcached/memcached_string.h +53 -0
  109. data/ext/libmemcached-0.32/libmemcached/memcached_touch.c +60 -0
  110. data/ext/libmemcached-0.32/libmemcached/memcached_touch.h +31 -0
  111. data/ext/libmemcached-0.32/libmemcached/memcached_types.h +44 -0
  112. data/ext/libmemcached-0.32/libmemcached/memcached_util.h +15 -0
  113. data/ext/libmemcached-0.32/libmemcached/memcached_verbosity.c +36 -0
  114. data/ext/libmemcached-0.32/libmemcached/memcached_version.c +112 -0
  115. data/ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h +38 -0
  116. data/ext/libmemcached-0.32/libmemcached/murmur_hash.c +76 -0
  117. data/ext/libmemcached-0.32/libmemcached/visibility.h +51 -0
  118. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.am +11 -0
  119. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.in +604 -0
  120. data/ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +1 -0
  121. data/ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c +170 -0
  122. data/ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +103 -0
  123. data/ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +67 -0
  124. data/ext/libmemcached-0.32/m4/acx_pthread.m4 +276 -0
  125. data/ext/libmemcached-0.32/m4/byteorder.m4 +40 -0
  126. data/ext/libmemcached-0.32/m4/deprecated.m4 +17 -0
  127. data/ext/libmemcached-0.32/m4/enable_utillib.m4 +16 -0
  128. data/ext/libmemcached-0.32/m4/extensions.m4 +94 -0
  129. data/ext/libmemcached-0.32/m4/hsieh.m4 +18 -0
  130. data/ext/libmemcached-0.32/m4/lib-prefix.m4 +221 -0
  131. data/ext/libmemcached-0.32/m4/libtool.m4 +7831 -0
  132. data/ext/libmemcached-0.32/m4/ltoptions.m4 +369 -0
  133. data/ext/libmemcached-0.32/m4/ltsugar.m4 +123 -0
  134. data/ext/libmemcached-0.32/m4/ltversion.m4 +23 -0
  135. data/ext/libmemcached-0.32/m4/lt~obsolete.m4 +98 -0
  136. data/ext/libmemcached-0.32/m4/memcached.m4 +30 -0
  137. data/ext/libmemcached-0.32/m4/pandora_64bit.m4 +55 -0
  138. data/ext/libmemcached-0.32/m4/pandora_canonical.m4 +151 -0
  139. data/ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +37 -0
  140. data/ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +16 -0
  141. data/ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +41 -0
  142. data/ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +36 -0
  143. data/ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +54 -0
  144. data/ext/libmemcached-0.32/m4/pandora_have_sasl.m4 +133 -0
  145. data/ext/libmemcached-0.32/m4/pandora_header_assert.m4 +23 -0
  146. data/ext/libmemcached-0.32/m4/pandora_libtool.m4 +15 -0
  147. data/ext/libmemcached-0.32/m4/pandora_optimize.m4 +79 -0
  148. data/ext/libmemcached-0.32/m4/pandora_shared_ptr.m4 +56 -0
  149. data/ext/libmemcached-0.32/m4/pandora_vc_build.m4 +32 -0
  150. data/ext/libmemcached-0.32/m4/pandora_warnings.m4 +262 -0
  151. data/ext/libmemcached-0.32/m4/pod2man.m4 +7 -0
  152. data/ext/libmemcached-0.32/m4/protocol_binary.m4 +23 -0
  153. data/ext/libmemcached-0.32/m4/setsockopt.m4 +57 -0
  154. data/ext/libmemcached-0.32/m4/visibility.m4 +52 -0
  155. data/ext/libmemcached-0.32/support/Makefile.am +4 -0
  156. data/ext/libmemcached-0.32/support/Makefile.in +487 -0
  157. data/ext/libmemcached-0.32/support/libmemcached-fc.spec.in +105 -0
  158. data/ext/libmemcached-0.32/support/libmemcached.pc.in +10 -0
  159. data/ext/libmemcached-0.32/support/libmemcached.spec +105 -0
  160. data/ext/libmemcached-0.32/support/libmemcached.spec.in +105 -0
  161. data/ext/libmemcached-0.32/support/set_benchmark.sh +5 -0
  162. data/ext/libmemcached-0.32/tests/Makefile.am +113 -0
  163. data/ext/libmemcached-0.32/tests/Makefile.in +762 -0
  164. data/ext/libmemcached-0.32/tests/atomsmasher.c +245 -0
  165. data/ext/libmemcached-0.32/tests/function.c +4904 -0
  166. data/ext/libmemcached-0.32/tests/ketama_test_cases.h +108 -0
  167. data/ext/libmemcached-0.32/tests/output.cmp +7 -0
  168. data/ext/libmemcached-0.32/tests/output.res +7 -0
  169. data/ext/libmemcached-0.32/tests/output2.res +46 -0
  170. data/ext/libmemcached-0.32/tests/plus.cpp +293 -0
  171. data/ext/libmemcached-0.32/tests/r/memcat.res +19 -0
  172. data/ext/libmemcached-0.32/tests/r/memcp.res +27 -0
  173. data/ext/libmemcached-0.32/tests/r/memrm.res +19 -0
  174. data/ext/libmemcached-0.32/tests/r/memslap.res +33 -0
  175. data/ext/libmemcached-0.32/tests/r/memstat.res +33 -0
  176. data/ext/libmemcached-0.32/tests/server.c +118 -0
  177. data/ext/libmemcached-0.32/tests/server.h +25 -0
  178. data/ext/libmemcached-0.32/tests/start.c +16 -0
  179. data/ext/libmemcached-0.32/tests/t/memcat.test +4 -0
  180. data/ext/libmemcached-0.32/tests/t/memcp.test +3 -0
  181. data/ext/libmemcached-0.32/tests/t/memrm.test +3 -0
  182. data/ext/libmemcached-0.32/tests/t/memslap.test +5 -0
  183. data/ext/libmemcached-0.32/tests/t/memstat.test +3 -0
  184. data/ext/libmemcached-0.32/tests/test.c +137 -0
  185. data/ext/libmemcached-0.32/tests/test.h +46 -0
  186. data/ext/libmemcached-0.32/tests/udp.c +76 -0
  187. data/ext/rlibmemcached.i +258 -0
  188. data/ext/rlibmemcached_wrap.c +13917 -0
  189. data/lib/memcached.rb +33 -0
  190. data/lib/memcached/auth.rb +16 -0
  191. data/lib/memcached/behaviors.rb +78 -0
  192. data/lib/memcached/exceptions.rb +84 -0
  193. data/lib/memcached/experimental.rb +48 -0
  194. data/lib/memcached/marshal_codec.rb +10 -0
  195. data/lib/memcached/memcached.rb +732 -0
  196. data/lib/memcached/rails.rb +250 -0
  197. data/test/profile/benchmark.rb +280 -0
  198. data/test/profile/c_profiler.rb +14 -0
  199. data/test/profile/exercise.rb +185 -0
  200. data/test/profile/rb_profiler.rb +21 -0
  201. data/test/profile/valgrind.rb +10 -0
  202. data/test/setup.rb +30 -0
  203. data/test/teardown.rb +0 -0
  204. data/test/test_helper.rb +18 -0
  205. data/test/unit/binding_test.rb +8 -0
  206. data/test/unit/memcached_experimental_test.rb +272 -0
  207. data/test/unit/memcached_test.rb +1487 -0
  208. data/test/unit/rails_test.rb +330 -0
  209. metadata +347 -0
@@ -0,0 +1,153 @@
1
+ /*
2
+ Memcached library
3
+ */
4
+ #include "common.h"
5
+
6
+ memcached_st *memcached_create(memcached_st *ptr)
7
+ {
8
+ memcached_result_st *result_ptr;
9
+
10
+ if (ptr == NULL)
11
+ {
12
+ ptr= (memcached_st *)calloc(1, sizeof(memcached_st));
13
+
14
+ if (!ptr)
15
+ return NULL; /* MEMCACHED_MEMORY_ALLOCATION_FAILURE */
16
+
17
+ ptr->is_allocated= true;
18
+ }
19
+ else
20
+ {
21
+ memset(ptr, 0, sizeof(memcached_st));
22
+ }
23
+
24
+ memcached_set_memory_allocators(ptr, NULL, NULL, NULL, NULL);
25
+
26
+ result_ptr= memcached_result_create(ptr, &ptr->result);
27
+ WATCHPOINT_ASSERT(result_ptr);
28
+ ptr->poll_timeout= MEMCACHED_DEFAULT_TIMEOUT;
29
+ ptr->connect_timeout= MEMCACHED_DEFAULT_TIMEOUT;
30
+ ptr->retry_timeout= 0;
31
+ ptr->distribution= MEMCACHED_DISTRIBUTION_MODULA;
32
+
33
+ /* TODO, Document why we picked these defaults */
34
+ ptr->io_msg_watermark= 500;
35
+ ptr->io_bytes_watermark= 65 * 1024;
36
+
37
+ return ptr;
38
+ }
39
+
40
+ void memcached_free(memcached_st *ptr)
41
+ {
42
+ /* If we have anything open, lets close it now */
43
+ memcached_quit(ptr);
44
+ server_list_free(ptr, ptr->hosts);
45
+ memcached_result_free(&ptr->result);
46
+
47
+ if (ptr->on_cleanup)
48
+ ptr->on_cleanup(ptr);
49
+
50
+ if (ptr->continuum)
51
+ ptr->call_free(ptr, ptr->continuum);
52
+
53
+ if (ptr->live_host_indices)
54
+ ptr->call_free(ptr, ptr->live_host_indices);
55
+
56
+ if (ptr->is_allocated)
57
+ ptr->call_free(ptr, ptr);
58
+ else
59
+ memset(ptr, 0, sizeof(memcached_st));
60
+ }
61
+
62
+ /*
63
+ clone is the destination, while source is the structure to clone.
64
+ If source is NULL the call is the same as if a memcached_create() was
65
+ called.
66
+ */
67
+ memcached_st *memcached_clone(memcached_st *clone, memcached_st *source)
68
+ {
69
+ memcached_return rc= MEMCACHED_SUCCESS;
70
+ memcached_st *new_clone;
71
+
72
+ if (source == NULL)
73
+ return memcached_create(clone);
74
+
75
+ if (clone && clone->is_allocated)
76
+ {
77
+ return NULL;
78
+ }
79
+
80
+ new_clone= memcached_create(clone);
81
+
82
+ if (new_clone == NULL)
83
+ return NULL;
84
+
85
+ new_clone->flags= source->flags;
86
+ new_clone->send_size= source->send_size;
87
+ new_clone->recv_size= source->recv_size;
88
+ new_clone->poll_timeout= source->poll_timeout;
89
+ new_clone->poll_max_retries = source->poll_max_retries;
90
+ new_clone->connect_timeout= source->connect_timeout;
91
+ new_clone->retry_timeout= source->retry_timeout;
92
+ new_clone->distribution= source->distribution;
93
+ new_clone->hash= source->hash;
94
+ new_clone->hash_continuum= source->hash_continuum;
95
+ new_clone->user_data= source->user_data;
96
+
97
+ new_clone->snd_timeout= source->snd_timeout;
98
+ new_clone->rcv_timeout= source->rcv_timeout;
99
+
100
+ new_clone->on_clone= source->on_clone;
101
+ new_clone->on_cleanup= source->on_cleanup;
102
+ new_clone->call_free= source->call_free;
103
+ new_clone->call_malloc= source->call_malloc;
104
+ new_clone->call_realloc= source->call_realloc;
105
+ new_clone->call_calloc= source->call_calloc;
106
+ new_clone->get_key_failure= source->get_key_failure;
107
+ new_clone->delete_trigger= source->delete_trigger;
108
+ new_clone->server_failure_limit= source->server_failure_limit;
109
+ new_clone->io_msg_watermark= source->io_msg_watermark;
110
+ new_clone->io_bytes_watermark= source->io_bytes_watermark;
111
+ new_clone->io_key_prefetch= source->io_key_prefetch;
112
+
113
+ if (source->hosts)
114
+ rc= memcached_server_push(new_clone, source->hosts);
115
+
116
+ if (rc != MEMCACHED_SUCCESS)
117
+ {
118
+ memcached_free(new_clone);
119
+
120
+ return NULL;
121
+ }
122
+
123
+
124
+ if (source->prefix_key[0] != 0)
125
+ {
126
+ strcpy(new_clone->prefix_key, source->prefix_key);
127
+ new_clone->prefix_key_length= source->prefix_key_length;
128
+ }
129
+
130
+ rc= run_distribution(new_clone);
131
+ if (rc != MEMCACHED_SUCCESS)
132
+ {
133
+ memcached_free(new_clone);
134
+
135
+ return NULL;
136
+ }
137
+
138
+ if (source->on_clone)
139
+ source->on_clone(source, new_clone);
140
+
141
+ return new_clone;
142
+ }
143
+ void *memcached_get_user_data(memcached_st *ptr)
144
+ {
145
+ return ptr->user_data;
146
+ }
147
+
148
+ void *memcached_set_user_data(memcached_st *ptr, void *data)
149
+ {
150
+ void *ret= ptr->user_data;
151
+ ptr->user_data= data;
152
+ return ret;
153
+ }
@@ -0,0 +1,305 @@
1
+ /*
2
+ * Summary: interface for memcached server
3
+ * Description: main include file for libmemcached
4
+ *
5
+ * Copy: See Copyright for the status of this software.
6
+ *
7
+ * Author: Brian Aker
8
+ */
9
+
10
+ #ifndef LIBMEMCACHED_MEMCACHED_H
11
+ #define LIBMEMCACHED_MEMCACHED_H
12
+
13
+ #include <stdlib.h>
14
+ #include <inttypes.h>
15
+ #if !defined(__cplusplus)
16
+ # include <stdbool.h>
17
+ #endif
18
+ #include <sys/types.h>
19
+ #include <netinet/in.h>
20
+
21
+ #include <libmemcached/visibility.h>
22
+ #include <libmemcached/memcached_configure.h>
23
+ #include <libmemcached/memcached_constants.h>
24
+ #include <libmemcached/memcached_types.h>
25
+ #include <libmemcached/memcached_get.h>
26
+ #include <libmemcached/memcached_touch.h>
27
+ #include <libmemcached/memcached_server.h>
28
+ #include <libmemcached/memcached_string.h>
29
+ #include <libmemcached/memcached_result.h>
30
+ #include <libmemcached/memcached_storage.h>
31
+ #include <libmemcached/memcached_exist.h>
32
+ #include <libmemcached/memcached_sasl.h>
33
+
34
+ #ifdef __cplusplus
35
+ extern "C" {
36
+ #endif
37
+
38
+ #define MEMCACHED_VERSION_STRING_LENGTH 24
39
+ #define LIBMEMCACHED_VERSION_STRING "0.32"
40
+
41
+ struct memcached_analysis_st {
42
+ uint32_t average_item_size;
43
+ uint32_t longest_uptime;
44
+ uint32_t least_free_server;
45
+ uint32_t most_consumed_server;
46
+ uint32_t oldest_server;
47
+ double pool_hit_ratio;
48
+ uint64_t most_used_bytes;
49
+ uint64_t least_remaining_bytes;
50
+ };
51
+
52
+ struct memcached_stat_st {
53
+ uint32_t connection_structures;
54
+ uint32_t curr_connections;
55
+ uint32_t curr_items;
56
+ uint32_t pid;
57
+ uint32_t pointer_size;
58
+ uint32_t rusage_system_microseconds;
59
+ uint32_t rusage_system_seconds;
60
+ uint32_t rusage_user_microseconds;
61
+ uint32_t rusage_user_seconds;
62
+ uint32_t threads;
63
+ uint32_t time;
64
+ uint32_t total_connections;
65
+ uint32_t total_items;
66
+ uint32_t uptime;
67
+ uint64_t bytes;
68
+ uint64_t bytes_read;
69
+ uint64_t bytes_written;
70
+ uint64_t cmd_get;
71
+ uint64_t cmd_set;
72
+ uint64_t evictions;
73
+ uint64_t get_hits;
74
+ uint64_t get_misses;
75
+ uint64_t limit_maxbytes;
76
+ char version[MEMCACHED_VERSION_STRING_LENGTH];
77
+ };
78
+
79
+ struct memcached_st {
80
+ uint8_t purging;
81
+ bool is_allocated;
82
+ uint8_t distribution;
83
+ uint8_t hash;
84
+ uint32_t continuum_points_counter;
85
+ memcached_server_st *hosts;
86
+ int32_t snd_timeout;
87
+ int32_t rcv_timeout;
88
+ int32_t poll_max_retries;
89
+ uint32_t server_failure_limit;
90
+ uint32_t io_msg_watermark;
91
+ uint32_t io_bytes_watermark;
92
+ uint32_t io_key_prefetch;
93
+ uint32_t number_of_hosts;
94
+ uint32_t cursor_server;
95
+ int cached_errno;
96
+ uint32_t flags;
97
+ int32_t poll_timeout;
98
+ int32_t connect_timeout;
99
+ int32_t retry_timeout;
100
+ uint32_t continuum_count;
101
+ int send_size;
102
+ int recv_size;
103
+ void *user_data;
104
+ time_t next_distribution_rebuild;
105
+ size_t prefix_key_length;
106
+ memcached_hash hash_continuum;
107
+ memcached_result_st result;
108
+ memcached_continuum_item_st *continuum;
109
+ memcached_clone_func on_clone;
110
+ memcached_cleanup_func on_cleanup;
111
+ memcached_free_function call_free;
112
+ memcached_malloc_function call_malloc;
113
+ memcached_realloc_function call_realloc;
114
+ memcached_calloc_function call_calloc;
115
+ memcached_trigger_key get_key_failure;
116
+ memcached_trigger_delete_key delete_trigger;
117
+ char prefix_key[MEMCACHED_PREFIX_KEY_MAX_SIZE];
118
+ uint32_t number_of_live_hosts;
119
+ uint32_t *live_host_indices;
120
+ uint32_t live_host_indices_size;
121
+ #ifdef LIBMEMCACHED_WITH_SASL_SUPPORT
122
+ const sasl_callback_t *sasl_callbacks;
123
+ #endif
124
+ int last_server_key;
125
+ };
126
+
127
+ LIBMEMCACHED_API
128
+ memcached_return memcached_version(memcached_st *ptr);
129
+
130
+ /* Public API */
131
+
132
+ LIBMEMCACHED_API
133
+ const char * memcached_lib_version(void);
134
+
135
+ LIBMEMCACHED_API
136
+ memcached_st *memcached_create(memcached_st *ptr);
137
+ LIBMEMCACHED_API
138
+ void memcached_free(memcached_st *ptr);
139
+ LIBMEMCACHED_API
140
+ memcached_st *memcached_clone(memcached_st *clone, memcached_st *ptr);
141
+
142
+ LIBMEMCACHED_API
143
+ memcached_return memcached_delete(memcached_st *ptr, const char *key, size_t key_length,
144
+ time_t expiration);
145
+ LIBMEMCACHED_API
146
+ memcached_return memcached_increment(memcached_st *ptr,
147
+ const char *key, size_t key_length,
148
+ uint32_t offset,
149
+ uint64_t *value);
150
+ LIBMEMCACHED_API
151
+ memcached_return memcached_decrement(memcached_st *ptr,
152
+ const char *key, size_t key_length,
153
+ uint32_t offset,
154
+ uint64_t *value);
155
+ LIBMEMCACHED_API
156
+ memcached_return memcached_increment_with_initial(memcached_st *ptr,
157
+ const char *key,
158
+ size_t key_length,
159
+ uint64_t offset,
160
+ uint64_t initial,
161
+ time_t expiration,
162
+ uint64_t *value);
163
+ LIBMEMCACHED_API
164
+ memcached_return memcached_decrement_with_initial(memcached_st *ptr,
165
+ const char *key,
166
+ size_t key_length,
167
+ uint64_t offset,
168
+ uint64_t initial,
169
+ time_t expiration,
170
+ uint64_t *value);
171
+ LIBMEMCACHED_API
172
+ void memcached_stat_free(memcached_st *, memcached_stat_st *);
173
+ LIBMEMCACHED_API
174
+ memcached_stat_st *memcached_stat(memcached_st *ptr, char *args, memcached_return *error);
175
+ LIBMEMCACHED_API
176
+ memcached_return memcached_stat_servername(memcached_stat_st *memc_stat, char *args,
177
+ char *hostname, unsigned int port);
178
+ LIBMEMCACHED_API
179
+ memcached_return memcached_flush(memcached_st *ptr, time_t expiration);
180
+ LIBMEMCACHED_API
181
+ memcached_return memcached_verbosity(memcached_st *ptr, unsigned int verbosity);
182
+ LIBMEMCACHED_API
183
+ void memcached_quit(memcached_st *ptr);
184
+ LIBMEMCACHED_API
185
+ const char *memcached_strerror(memcached_st *ptr, memcached_return rc);
186
+ LIBMEMCACHED_API
187
+ memcached_return memcached_behavior_set(memcached_st *ptr, memcached_behavior flag, uint64_t data);
188
+ LIBMEMCACHED_API
189
+ uint64_t memcached_behavior_get(memcached_st *ptr, memcached_behavior flag);
190
+
191
+ /* The two public hash bits */
192
+ LIBMEMCACHED_API
193
+ uint32_t memcached_generate_hash_value(const char *key, size_t key_length, memcached_hash hash_algorithm);
194
+ LIBMEMCACHED_API
195
+ uint32_t memcached_generate_hash(memcached_st *ptr, const char *key, size_t key_length);
196
+
197
+ LIBMEMCACHED_API
198
+ memcached_return memcached_flush_buffers(memcached_st *mem);
199
+
200
+ /* Server Public functions */
201
+
202
+ LIBMEMCACHED_API
203
+ memcached_return memcached_server_add_udp(memcached_st *ptr,
204
+ const char *hostname,
205
+ unsigned int port);
206
+ LIBMEMCACHED_API
207
+ memcached_return memcached_server_add_unix_socket(memcached_st *ptr,
208
+ const char *filename);
209
+ LIBMEMCACHED_API
210
+ memcached_return memcached_server_add(memcached_st *ptr, const char *hostname,
211
+ unsigned int port);
212
+
213
+ LIBMEMCACHED_API
214
+ memcached_return memcached_server_add_udp_with_weight(memcached_st *ptr,
215
+ const char *hostname,
216
+ unsigned int port,
217
+ uint32_t weight);
218
+ LIBMEMCACHED_API
219
+ memcached_return memcached_server_add_unix_socket_with_weight(memcached_st *ptr,
220
+ const char *filename,
221
+ uint32_t weight);
222
+ LIBMEMCACHED_API
223
+ memcached_return memcached_server_add_with_weight(memcached_st *ptr, const char *hostname,
224
+ unsigned int port,
225
+ uint32_t weight);
226
+ LIBMEMCACHED_API
227
+ void memcached_server_list_free(memcached_server_st *ptr);
228
+ LIBMEMCACHED_API
229
+ memcached_return memcached_server_push(memcached_st *ptr, memcached_server_st *list);
230
+
231
+ LIBMEMCACHED_API
232
+ memcached_server_st *memcached_server_list_append(memcached_server_st *ptr,
233
+ const char *hostname,
234
+ unsigned int port,
235
+ memcached_return *error);
236
+ LIBMEMCACHED_API
237
+ memcached_server_st *memcached_server_list_append_with_weight(memcached_server_st *ptr,
238
+ const char *hostname,
239
+ unsigned int port,
240
+ uint32_t weight,
241
+ memcached_return *error);
242
+ LIBMEMCACHED_API
243
+ unsigned int memcached_server_list_count(memcached_server_st *ptr);
244
+ LIBMEMCACHED_API
245
+ memcached_server_st *memcached_servers_parse(const char *server_strings);
246
+
247
+ LIBMEMCACHED_API
248
+ char *memcached_stat_get_value(memcached_st *ptr, memcached_stat_st *memc_stat,
249
+ const char *key, memcached_return *error);
250
+ LIBMEMCACHED_API
251
+ char ** memcached_stat_get_keys(memcached_st *ptr, memcached_stat_st *memc_stat,
252
+ memcached_return *error);
253
+
254
+ LIBMEMCACHED_API
255
+ memcached_return memcached_delete_by_key(memcached_st *ptr,
256
+ const char *master_key, size_t master_key_length,
257
+ const char *key, size_t key_length,
258
+ time_t expiration);
259
+
260
+ LIBMEMCACHED_API
261
+ memcached_return memcached_fetch_execute(memcached_st *ptr,
262
+ memcached_execute_function *callback,
263
+ void *context,
264
+ unsigned int number_of_callbacks);
265
+
266
+ LIBMEMCACHED_API
267
+ memcached_return memcached_callback_set(memcached_st *ptr,
268
+ memcached_callback flag,
269
+ void *data);
270
+ LIBMEMCACHED_API
271
+ void *memcached_callback_get(memcached_st *ptr,
272
+ memcached_callback flag,
273
+ memcached_return *error);
274
+
275
+ LIBMEMCACHED_API
276
+ memcached_return memcached_dump(memcached_st *ptr, memcached_dump_func *function, void *context, uint32_t number_of_callbacks);
277
+
278
+
279
+ LIBMEMCACHED_API
280
+ memcached_return memcached_set_memory_allocators(memcached_st *ptr,
281
+ memcached_malloc_function mem_malloc,
282
+ memcached_free_function mem_free,
283
+ memcached_realloc_function mem_realloc,
284
+ memcached_calloc_function mem_calloc);
285
+
286
+ LIBMEMCACHED_API
287
+ void memcached_get_memory_allocators(memcached_st *ptr,
288
+ memcached_malloc_function *mem_malloc,
289
+ memcached_free_function *mem_free,
290
+ memcached_realloc_function *mem_realloc,
291
+ memcached_calloc_function *mem_calloc);
292
+
293
+ LIBMEMCACHED_API
294
+ void *memcached_get_user_data(memcached_st *ptr);
295
+ LIBMEMCACHED_API
296
+ void *memcached_set_user_data(memcached_st *ptr, void *data);
297
+
298
+ LIBMEMCACHED_API
299
+ memcached_return run_distribution(memcached_st *ptr);
300
+ #ifdef __cplusplus
301
+ }
302
+ #endif
303
+
304
+
305
+ #endif /* LIBMEMCACHED_MEMCACHED_H */