couchbase-memcached 1.2.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (539) hide show
  1. data.tar.gz.sig +2 -0
  2. data/BENCHMARKS +134 -0
  3. data/CHANGELOG +127 -0
  4. data/LICENSE +184 -0
  5. data/Manifest +535 -0
  6. data/README +118 -0
  7. data/Rakefile +83 -0
  8. data/TODO +4 -0
  9. data/couchbase-memcached.gemspec +33 -0
  10. data/ext/extconf-make.rb +25 -0
  11. data/ext/extconf.rb +91 -0
  12. data/ext/libmemcached-0.50/AUTHORS +11 -0
  13. data/ext/libmemcached-0.50/COPYING +33 -0
  14. data/ext/libmemcached-0.50/ChangeLog +392 -0
  15. data/ext/libmemcached-0.50/Makefile.am +114 -0
  16. data/ext/libmemcached-0.50/Makefile.in +4232 -0
  17. data/ext/libmemcached-0.50/NEWS +1 -0
  18. data/ext/libmemcached-0.50/README +43 -0
  19. data/ext/libmemcached-0.50/README.FIRST +31 -0
  20. data/ext/libmemcached-0.50/README.win32 +25 -0
  21. data/ext/libmemcached-0.50/THANKS +14 -0
  22. data/ext/libmemcached-0.50/TODO +11 -0
  23. data/ext/libmemcached-0.50/aclocal.m4 +1077 -0
  24. data/ext/libmemcached-0.50/clients/client_options.h +45 -0
  25. data/ext/libmemcached-0.50/clients/execute.cc +131 -0
  26. data/ext/libmemcached-0.50/clients/execute.h +30 -0
  27. data/ext/libmemcached-0.50/clients/generator.cc +96 -0
  28. data/ext/libmemcached-0.50/clients/generator.h +36 -0
  29. data/ext/libmemcached-0.50/clients/include.am +116 -0
  30. data/ext/libmemcached-0.50/clients/memaslap.c +908 -0
  31. data/ext/libmemcached-0.50/clients/memcapable.cc +2094 -0
  32. data/ext/libmemcached-0.50/clients/memcat.cc +242 -0
  33. data/ext/libmemcached-0.50/clients/memcp.cc +317 -0
  34. data/ext/libmemcached-0.50/clients/memdump.cc +183 -0
  35. data/ext/libmemcached-0.50/clients/memerror.cc +102 -0
  36. data/ext/libmemcached-0.50/clients/memflush.cc +154 -0
  37. data/ext/libmemcached-0.50/clients/memparse.cc +68 -0
  38. data/ext/libmemcached-0.50/clients/memrm.cc +177 -0
  39. data/ext/libmemcached-0.50/clients/memslap.cc +495 -0
  40. data/ext/libmemcached-0.50/clients/memstat.cc +349 -0
  41. data/ext/libmemcached-0.50/clients/ms_atomic.h +69 -0
  42. data/ext/libmemcached-0.50/clients/ms_conn.c +3413 -0
  43. data/ext/libmemcached-0.50/clients/ms_conn.h +241 -0
  44. data/ext/libmemcached-0.50/clients/ms_memslap.h +132 -0
  45. data/ext/libmemcached-0.50/clients/ms_setting.c +1068 -0
  46. data/ext/libmemcached-0.50/clients/ms_setting.h +181 -0
  47. data/ext/libmemcached-0.50/clients/ms_sigsegv.c +126 -0
  48. data/ext/libmemcached-0.50/clients/ms_sigsegv.h +34 -0
  49. data/ext/libmemcached-0.50/clients/ms_stats.c +307 -0
  50. data/ext/libmemcached-0.50/clients/ms_stats.h +69 -0
  51. data/ext/libmemcached-0.50/clients/ms_task.c +1114 -0
  52. data/ext/libmemcached-0.50/clients/ms_task.h +94 -0
  53. data/ext/libmemcached-0.50/clients/ms_thread.c +351 -0
  54. data/ext/libmemcached-0.50/clients/ms_thread.h +78 -0
  55. data/ext/libmemcached-0.50/clients/utilities.cc +231 -0
  56. data/ext/libmemcached-0.50/clients/utilities.h +64 -0
  57. data/ext/libmemcached-0.50/config.h.in +647 -0
  58. data/ext/libmemcached-0.50/config/autorun.sh +126 -0
  59. data/ext/libmemcached-0.50/config/compile +143 -0
  60. data/ext/libmemcached-0.50/config/config.guess +1517 -0
  61. data/ext/libmemcached-0.50/config/config.rpath +666 -0
  62. data/ext/libmemcached-0.50/config/config.sub +1760 -0
  63. data/ext/libmemcached-0.50/config/depcomp +630 -0
  64. data/ext/libmemcached-0.50/config/install-sh +520 -0
  65. data/ext/libmemcached-0.50/config/ltmain.sh +9642 -0
  66. data/ext/libmemcached-0.50/config/missing +376 -0
  67. data/ext/libmemcached-0.50/config/pandora-plugin +752 -0
  68. data/ext/libmemcached-0.50/config/uncrustify.cfg +1112 -0
  69. data/ext/libmemcached-0.50/configure +27103 -0
  70. data/ext/libmemcached-0.50/configure.ac +186 -0
  71. data/ext/libmemcached-0.50/docs/conf.py.in +354 -0
  72. data/ext/libmemcached-0.50/docs/include.am +240 -0
  73. data/ext/libmemcached-0.50/docs/man/hashkit_clone.3 +88 -0
  74. data/ext/libmemcached-0.50/docs/man/hashkit_crc32.3 +105 -0
  75. data/ext/libmemcached-0.50/docs/man/hashkit_create.3 +88 -0
  76. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_32.3 +105 -0
  77. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_64.3 +105 -0
  78. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_32.3 +105 -0
  79. data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_64.3 +105 -0
  80. data/ext/libmemcached-0.50/docs/man/hashkit_free.3 +88 -0
  81. data/ext/libmemcached-0.50/docs/man/hashkit_functions.3 +105 -0
  82. data/ext/libmemcached-0.50/docs/man/hashkit_hsieh.3 +105 -0
  83. data/ext/libmemcached-0.50/docs/man/hashkit_is_allocated.3 +88 -0
  84. data/ext/libmemcached-0.50/docs/man/hashkit_jenkins.3 +105 -0
  85. data/ext/libmemcached-0.50/docs/man/hashkit_md5.3 +105 -0
  86. data/ext/libmemcached-0.50/docs/man/hashkit_murmur.3 +105 -0
  87. data/ext/libmemcached-0.50/docs/man/hashkit_value.3 +66 -0
  88. data/ext/libmemcached-0.50/docs/man/libhashkit.3 +57 -0
  89. data/ext/libmemcached-0.50/docs/man/libmemcached.3 +208 -0
  90. data/ext/libmemcached-0.50/docs/man/libmemcached_check_configuration.3 +293 -0
  91. data/ext/libmemcached-0.50/docs/man/libmemcached_configuration.3 +293 -0
  92. data/ext/libmemcached-0.50/docs/man/libmemcached_examples.3 +144 -0
  93. data/ext/libmemcached-0.50/docs/man/libmemcachedutil.3 +68 -0
  94. data/ext/libmemcached-0.50/docs/man/memaslap.1 +1222 -0
  95. data/ext/libmemcached-0.50/docs/man/memcached.3 +293 -0
  96. data/ext/libmemcached-0.50/docs/man/memcached_add.3 +132 -0
  97. data/ext/libmemcached-0.50/docs/man/memcached_add_by_key.3 +132 -0
  98. data/ext/libmemcached-0.50/docs/man/memcached_analyze.3 +77 -0
  99. data/ext/libmemcached-0.50/docs/man/memcached_append.3 +111 -0
  100. data/ext/libmemcached-0.50/docs/man/memcached_append_by_key.3 +111 -0
  101. data/ext/libmemcached-0.50/docs/man/memcached_behavior_get.3 +333 -0
  102. data/ext/libmemcached-0.50/docs/man/memcached_behavior_set.3 +333 -0
  103. data/ext/libmemcached-0.50/docs/man/memcached_callback_get.3 +159 -0
  104. data/ext/libmemcached-0.50/docs/man/memcached_callback_set.3 +159 -0
  105. data/ext/libmemcached-0.50/docs/man/memcached_cas.3 +91 -0
  106. data/ext/libmemcached-0.50/docs/man/memcached_cas_by_key.3 +91 -0
  107. data/ext/libmemcached-0.50/docs/man/memcached_clone.3 +99 -0
  108. data/ext/libmemcached-0.50/docs/man/memcached_create.3 +99 -0
  109. data/ext/libmemcached-0.50/docs/man/memcached_decrement.3 +124 -0
  110. data/ext/libmemcached-0.50/docs/man/memcached_decrement_with_initial.3 +124 -0
  111. data/ext/libmemcached-0.50/docs/man/memcached_delete.3 +83 -0
  112. data/ext/libmemcached-0.50/docs/man/memcached_delete_by_key.3 +83 -0
  113. data/ext/libmemcached-0.50/docs/man/memcached_destroy_sasl_auth_data.3 +95 -0
  114. data/ext/libmemcached-0.50/docs/man/memcached_dump.3 +77 -0
  115. data/ext/libmemcached-0.50/docs/man/memcached_fetch.3 +174 -0
  116. data/ext/libmemcached-0.50/docs/man/memcached_fetch_execute.3 +174 -0
  117. data/ext/libmemcached-0.50/docs/man/memcached_fetch_result.3 +174 -0
  118. data/ext/libmemcached-0.50/docs/man/memcached_flush_buffers.3 +72 -0
  119. data/ext/libmemcached-0.50/docs/man/memcached_free.3 +99 -0
  120. data/ext/libmemcached-0.50/docs/man/memcached_generate_hash.3 +85 -0
  121. data/ext/libmemcached-0.50/docs/man/memcached_generate_hash_value.3 +85 -0
  122. data/ext/libmemcached-0.50/docs/man/memcached_get.3 +174 -0
  123. data/ext/libmemcached-0.50/docs/man/memcached_get_by_key.3 +174 -0
  124. data/ext/libmemcached-0.50/docs/man/memcached_get_memory_allocators.3 +111 -0
  125. data/ext/libmemcached-0.50/docs/man/memcached_get_sasl_callbacks.3 +95 -0
  126. data/ext/libmemcached-0.50/docs/man/memcached_get_user_data.3 +79 -0
  127. data/ext/libmemcached-0.50/docs/man/memcached_increment.3 +124 -0
  128. data/ext/libmemcached-0.50/docs/man/memcached_increment_with_initial.3 +124 -0
  129. data/ext/libmemcached-0.50/docs/man/memcached_lib_version.3 +76 -0
  130. data/ext/libmemcached-0.50/docs/man/memcached_mget.3 +174 -0
  131. data/ext/libmemcached-0.50/docs/man/memcached_mget_by_key.3 +174 -0
  132. data/ext/libmemcached-0.50/docs/man/memcached_mget_execute.3 +174 -0
  133. data/ext/libmemcached-0.50/docs/man/memcached_mget_execute_by_key.3 +174 -0
  134. data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_get.3 +139 -0
  135. data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_set.3 +139 -0
  136. data/ext/libmemcached-0.50/docs/man/memcached_pool_create.3 +139 -0
  137. data/ext/libmemcached-0.50/docs/man/memcached_pool_destroy.3 +139 -0
  138. data/ext/libmemcached-0.50/docs/man/memcached_pool_pop.3 +139 -0
  139. data/ext/libmemcached-0.50/docs/man/memcached_pool_push.3 +139 -0
  140. data/ext/libmemcached-0.50/docs/man/memcached_pool_st.3 +139 -0
  141. data/ext/libmemcached-0.50/docs/man/memcached_prepend.3 +111 -0
  142. data/ext/libmemcached-0.50/docs/man/memcached_prepend_by_key.3 +111 -0
  143. data/ext/libmemcached-0.50/docs/man/memcached_quit.3 +74 -0
  144. data/ext/libmemcached-0.50/docs/man/memcached_replace.3 +132 -0
  145. data/ext/libmemcached-0.50/docs/man/memcached_replace_by_key.3 +132 -0
  146. data/ext/libmemcached-0.50/docs/man/memcached_sasl_set_auth_data.3 +95 -0
  147. data/ext/libmemcached-0.50/docs/man/memcached_server_add.3 +141 -0
  148. data/ext/libmemcached-0.50/docs/man/memcached_server_count.3 +141 -0
  149. data/ext/libmemcached-0.50/docs/man/memcached_server_cursor.3 +141 -0
  150. data/ext/libmemcached-0.50/docs/man/memcached_server_list.3 +141 -0
  151. data/ext/libmemcached-0.50/docs/man/memcached_server_list_append.3 +111 -0
  152. data/ext/libmemcached-0.50/docs/man/memcached_server_list_count.3 +111 -0
  153. data/ext/libmemcached-0.50/docs/man/memcached_server_list_free.3 +111 -0
  154. data/ext/libmemcached-0.50/docs/man/memcached_server_push.3 +141 -0
  155. data/ext/libmemcached-0.50/docs/man/memcached_servers_parse.3 +111 -0
  156. data/ext/libmemcached-0.50/docs/man/memcached_set.3 +132 -0
  157. data/ext/libmemcached-0.50/docs/man/memcached_set_by_key.3 +132 -0
  158. data/ext/libmemcached-0.50/docs/man/memcached_set_memory_allocators.3 +111 -0
  159. data/ext/libmemcached-0.50/docs/man/memcached_set_sasl_callbacks.3 +95 -0
  160. data/ext/libmemcached-0.50/docs/man/memcached_set_user_data.3 +79 -0
  161. data/ext/libmemcached-0.50/docs/man/memcached_stat.3 +116 -0
  162. data/ext/libmemcached-0.50/docs/man/memcached_stat_execute.3 +116 -0
  163. data/ext/libmemcached-0.50/docs/man/memcached_stat_get_keys.3 +116 -0
  164. data/ext/libmemcached-0.50/docs/man/memcached_stat_get_value.3 +116 -0
  165. data/ext/libmemcached-0.50/docs/man/memcached_stat_servername.3 +116 -0
  166. data/ext/libmemcached-0.50/docs/man/memcached_strerror.3 +69 -0
  167. data/ext/libmemcached-0.50/docs/man/memcached_verbosity.3 +66 -0
  168. data/ext/libmemcached-0.50/docs/man/memcached_version.3 +76 -0
  169. data/ext/libmemcached-0.50/docs/man/memcapable.1 +92 -0
  170. data/ext/libmemcached-0.50/docs/man/memcat.1 +71 -0
  171. data/ext/libmemcached-0.50/docs/man/memcp.1 +77 -0
  172. data/ext/libmemcached-0.50/docs/man/memdump.1 +66 -0
  173. data/ext/libmemcached-0.50/docs/man/memerror.1 +65 -0
  174. data/ext/libmemcached-0.50/docs/man/memflush.1 +73 -0
  175. data/ext/libmemcached-0.50/docs/man/memrm.1 +72 -0
  176. data/ext/libmemcached-0.50/docs/man/memslap.1 +59 -0
  177. data/ext/libmemcached-0.50/docs/man/memstat.1 +70 -0
  178. data/ext/libmemcached-0.50/example/include.am +24 -0
  179. data/ext/libmemcached-0.50/example/interface_v0.c +594 -0
  180. data/ext/libmemcached-0.50/example/interface_v1.c +411 -0
  181. data/ext/libmemcached-0.50/example/memcached_light.c +474 -0
  182. data/ext/libmemcached-0.50/example/memcached_light.h +7 -0
  183. data/ext/libmemcached-0.50/example/storage.c +172 -0
  184. data/ext/libmemcached-0.50/example/storage.h +27 -0
  185. data/ext/libmemcached-0.50/example/storage_innodb.c +535 -0
  186. data/ext/libmemcached-0.50/libhashkit/algorithm.cc +69 -0
  187. data/ext/libmemcached-0.50/libhashkit/algorithm.h +96 -0
  188. data/ext/libmemcached-0.50/libhashkit/behavior.cc +9 -0
  189. data/ext/libmemcached-0.50/libhashkit/behavior.h +26 -0
  190. data/ext/libmemcached-0.50/libhashkit/common.h +33 -0
  191. data/ext/libmemcached-0.50/libhashkit/configure.h.in +19 -0
  192. data/ext/libmemcached-0.50/libhashkit/crc32.cc +86 -0
  193. data/ext/libmemcached-0.50/libhashkit/digest.cc +62 -0
  194. data/ext/libmemcached-0.50/libhashkit/digest.h +30 -0
  195. data/ext/libmemcached-0.50/libhashkit/fnv.cc +75 -0
  196. data/ext/libmemcached-0.50/libhashkit/function.cc +156 -0
  197. data/ext/libmemcached-0.50/libhashkit/function.h +44 -0
  198. data/ext/libmemcached-0.50/libhashkit/hashkit.cc +100 -0
  199. data/ext/libmemcached-0.50/libhashkit/hashkit.h +95 -0
  200. data/ext/libmemcached-0.50/libhashkit/hashkit.hpp +97 -0
  201. data/ext/libmemcached-0.50/libhashkit/hsieh.cc +70 -0
  202. data/ext/libmemcached-0.50/libhashkit/include.am +69 -0
  203. data/ext/libmemcached-0.50/libhashkit/jenkins.cc +214 -0
  204. data/ext/libmemcached-0.50/libhashkit/ketama.cc +164 -0
  205. data/ext/libmemcached-0.50/libhashkit/md5.cc +367 -0
  206. data/ext/libmemcached-0.50/libhashkit/murmur.cc +77 -0
  207. data/ext/libmemcached-0.50/libhashkit/one_at_a_time.cc +34 -0
  208. data/ext/libmemcached-0.50/libhashkit/str_algorithm.cc +58 -0
  209. data/ext/libmemcached-0.50/libhashkit/str_algorithm.h +48 -0
  210. data/ext/libmemcached-0.50/libhashkit/strerror.cc +25 -0
  211. data/ext/libmemcached-0.50/libhashkit/strerror.h +23 -0
  212. data/ext/libmemcached-0.50/libhashkit/types.h +90 -0
  213. data/ext/libmemcached-0.50/libhashkit/visibility.h +48 -0
  214. data/ext/libmemcached-0.50/libmemcached/allocators.cc +119 -0
  215. data/ext/libmemcached-0.50/libmemcached/allocators.h +87 -0
  216. data/ext/libmemcached-0.50/libmemcached/analyze.cc +110 -0
  217. data/ext/libmemcached-0.50/libmemcached/analyze.h +66 -0
  218. data/ext/libmemcached-0.50/libmemcached/array.c +128 -0
  219. data/ext/libmemcached-0.50/libmemcached/array.h +75 -0
  220. data/ext/libmemcached-0.50/libmemcached/auto.cc +383 -0
  221. data/ext/libmemcached-0.50/libmemcached/auto.h +111 -0
  222. data/ext/libmemcached-0.50/libmemcached/basic_string.h +55 -0
  223. data/ext/libmemcached-0.50/libmemcached/behavior.cc +590 -0
  224. data/ext/libmemcached-0.50/libmemcached/behavior.h +86 -0
  225. data/ext/libmemcached-0.50/libmemcached/byteorder.cc +90 -0
  226. data/ext/libmemcached-0.50/libmemcached/byteorder.h +52 -0
  227. data/ext/libmemcached-0.50/libmemcached/callback.cc +160 -0
  228. data/ext/libmemcached-0.50/libmemcached/callback.h +61 -0
  229. data/ext/libmemcached-0.50/libmemcached/common.h +182 -0
  230. data/ext/libmemcached-0.50/libmemcached/configure.h.in +52 -0
  231. data/ext/libmemcached-0.50/libmemcached/connect.cc +626 -0
  232. data/ext/libmemcached-0.50/libmemcached/constants.h +167 -0
  233. data/ext/libmemcached-0.50/libmemcached/delete.cc +266 -0
  234. data/ext/libmemcached-0.50/libmemcached/delete.h +57 -0
  235. data/ext/libmemcached-0.50/libmemcached/do.cc +100 -0
  236. data/ext/libmemcached-0.50/libmemcached/do.hpp +49 -0
  237. data/ext/libmemcached-0.50/libmemcached/dump.cc +107 -0
  238. data/ext/libmemcached-0.50/libmemcached/dump.h +51 -0
  239. data/ext/libmemcached-0.50/libmemcached/error.cc +419 -0
  240. data/ext/libmemcached-0.50/libmemcached/error.h +61 -0
  241. data/ext/libmemcached-0.50/libmemcached/error.hpp +87 -0
  242. data/ext/libmemcached-0.50/libmemcached/exception.hpp +63 -0
  243. data/ext/libmemcached-0.50/libmemcached/fetch.cc +267 -0
  244. data/ext/libmemcached-0.50/libmemcached/fetch.h +53 -0
  245. data/ext/libmemcached-0.50/libmemcached/flush.cc +149 -0
  246. data/ext/libmemcached-0.50/libmemcached/flush.h +49 -0
  247. data/ext/libmemcached-0.50/libmemcached/flush_buffers.cc +66 -0
  248. data/ext/libmemcached-0.50/libmemcached/flush_buffers.h +49 -0
  249. data/ext/libmemcached-0.50/libmemcached/get.cc +842 -0
  250. data/ext/libmemcached-0.50/libmemcached/get.h +135 -0
  251. data/ext/libmemcached-0.50/libmemcached/hash.cc +178 -0
  252. data/ext/libmemcached-0.50/libmemcached/hash.h +68 -0
  253. data/ext/libmemcached-0.50/libmemcached/hosts.cc +516 -0
  254. data/ext/libmemcached-0.50/libmemcached/include.am +183 -0
  255. data/ext/libmemcached-0.50/libmemcached/initialize_query.cc +70 -0
  256. data/ext/libmemcached-0.50/libmemcached/initialize_query.h +51 -0
  257. data/ext/libmemcached-0.50/libmemcached/internal.h +46 -0
  258. data/ext/libmemcached-0.50/libmemcached/io.cc +920 -0
  259. data/ext/libmemcached-0.50/libmemcached/io.h +119 -0
  260. data/ext/libmemcached-0.50/libmemcached/is.h +48 -0
  261. data/ext/libmemcached-0.50/libmemcached/key.cc +23 -0
  262. data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.d +30 -0
  263. data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.h +118 -0
  264. data/ext/libmemcached-0.50/libmemcached/memcached.cc +437 -0
  265. data/ext/libmemcached-0.50/libmemcached/memcached.h +214 -0
  266. data/ext/libmemcached-0.50/libmemcached/memcached.hpp +799 -0
  267. data/ext/libmemcached-0.50/libmemcached/memcached/README.txt +7 -0
  268. data/ext/libmemcached-0.50/libmemcached/memcached/protocol_binary.h +726 -0
  269. data/ext/libmemcached-0.50/libmemcached/memcached/vbucket.h +26 -0
  270. data/ext/libmemcached-0.50/libmemcached/memcached_util.h +44 -0
  271. data/ext/libmemcached-0.50/libmemcached/memory.h +79 -0
  272. data/ext/libmemcached-0.50/libmemcached/options.cc +178 -0
  273. data/ext/libmemcached-0.50/libmemcached/options.h +49 -0
  274. data/ext/libmemcached-0.50/libmemcached/options.hpp +56 -0
  275. data/ext/libmemcached-0.50/libmemcached/options/context.h +151 -0
  276. data/ext/libmemcached-0.50/libmemcached/options/include.am +19 -0
  277. data/ext/libmemcached-0.50/libmemcached/options/parser.am +0 -0
  278. data/ext/libmemcached-0.50/libmemcached/options/parser.cc +2324 -0
  279. data/ext/libmemcached-0.50/libmemcached/options/parser.h +122 -0
  280. data/ext/libmemcached-0.50/libmemcached/options/scanner.cc +3203 -0
  281. data/ext/libmemcached-0.50/libmemcached/options/scanner.h +479 -0
  282. data/ext/libmemcached-0.50/libmemcached/options/server.h +60 -0
  283. data/ext/libmemcached-0.50/libmemcached/options/symbol.h +57 -0
  284. data/ext/libmemcached-0.50/libmemcached/parse.cc +110 -0
  285. data/ext/libmemcached-0.50/libmemcached/parse.h +23 -0
  286. data/ext/libmemcached-0.50/libmemcached/platform.h +56 -0
  287. data/ext/libmemcached-0.50/libmemcached/prefix_key.cc +65 -0
  288. data/ext/libmemcached-0.50/libmemcached/prefix_key.h +49 -0
  289. data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.c +963 -0
  290. data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.h +40 -0
  291. data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.c +1121 -0
  292. data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.h +47 -0
  293. data/ext/libmemcached-0.50/libmemcached/protocol/cache.c +149 -0
  294. data/ext/libmemcached-0.50/libmemcached/protocol/cache.h +116 -0
  295. data/ext/libmemcached-0.50/libmemcached/protocol/callback.h +418 -0
  296. data/ext/libmemcached-0.50/libmemcached/protocol/common.h +163 -0
  297. data/ext/libmemcached-0.50/libmemcached/protocol/include.am +26 -0
  298. data/ext/libmemcached-0.50/libmemcached/protocol/pedantic.c +202 -0
  299. data/ext/libmemcached-0.50/libmemcached/protocol/protocol_handler.c +365 -0
  300. data/ext/libmemcached-0.50/libmemcached/protocol_handler.h +215 -0
  301. data/ext/libmemcached-0.50/libmemcached/purge.cc +90 -0
  302. data/ext/libmemcached-0.50/libmemcached/quit.cc +139 -0
  303. data/ext/libmemcached-0.50/libmemcached/quit.h +55 -0
  304. data/ext/libmemcached-0.50/libmemcached/response.cc +619 -0
  305. data/ext/libmemcached-0.50/libmemcached/response.h +57 -0
  306. data/ext/libmemcached-0.50/libmemcached/result.cc +173 -0
  307. data/ext/libmemcached-0.50/libmemcached/result.h +100 -0
  308. data/ext/libmemcached-0.50/libmemcached/return.h +98 -0
  309. data/ext/libmemcached-0.50/libmemcached/sasl.c +408 -0
  310. data/ext/libmemcached-0.50/libmemcached/sasl.h +86 -0
  311. data/ext/libmemcached-0.50/libmemcached/server.cc +351 -0
  312. data/ext/libmemcached-0.50/libmemcached/server.h +169 -0
  313. data/ext/libmemcached-0.50/libmemcached/server_list.cc +88 -0
  314. data/ext/libmemcached-0.50/libmemcached/server_list.h +77 -0
  315. data/ext/libmemcached-0.50/libmemcached/stats.cc +623 -0
  316. data/ext/libmemcached-0.50/libmemcached/stats.h +96 -0
  317. data/ext/libmemcached-0.50/libmemcached/storage.cc +567 -0
  318. data/ext/libmemcached-0.50/libmemcached/storage.h +133 -0
  319. data/ext/libmemcached-0.50/libmemcached/strerror.cc +189 -0
  320. data/ext/libmemcached-0.50/libmemcached/strerror.h +50 -0
  321. data/ext/libmemcached-0.50/libmemcached/string.cc +253 -0
  322. data/ext/libmemcached-0.50/libmemcached/string.h +121 -0
  323. data/ext/libmemcached-0.50/libmemcached/touch.cc +106 -0
  324. data/ext/libmemcached-0.50/libmemcached/touch.h +59 -0
  325. data/ext/libmemcached-0.50/libmemcached/types.h +117 -0
  326. data/ext/libmemcached-0.50/libmemcached/util.h +40 -0
  327. data/ext/libmemcached-0.50/libmemcached/util/flush.cc +61 -0
  328. data/ext/libmemcached-0.50/libmemcached/util/flush.h +50 -0
  329. data/ext/libmemcached-0.50/libmemcached/util/include.am +34 -0
  330. data/ext/libmemcached-0.50/libmemcached/util/ping.cc +62 -0
  331. data/ext/libmemcached-0.50/libmemcached/util/ping.h +49 -0
  332. data/ext/libmemcached-0.50/libmemcached/util/pool.cc +392 -0
  333. data/ext/libmemcached-0.50/libmemcached/util/pool.h +78 -0
  334. data/ext/libmemcached-0.50/libmemcached/util/version.cc +87 -0
  335. data/ext/libmemcached-0.50/libmemcached/util/version.h +53 -0
  336. data/ext/libmemcached-0.50/libmemcached/verbosity.cc +97 -0
  337. data/ext/libmemcached-0.50/libmemcached/verbosity.h +50 -0
  338. data/ext/libmemcached-0.50/libmemcached/version.cc +214 -0
  339. data/ext/libmemcached-0.50/libmemcached/version.h +52 -0
  340. data/ext/libmemcached-0.50/libmemcached/virtual_bucket.c +118 -0
  341. data/ext/libmemcached-0.50/libmemcached/virtual_bucket.h +59 -0
  342. data/ext/libmemcached-0.50/libmemcached/visibility.h +51 -0
  343. data/ext/libmemcached-0.50/libmemcached/watchpoint.h +110 -0
  344. data/ext/libmemcached-0.50/libtest/callbacks.h +21 -0
  345. data/ext/libmemcached-0.50/libtest/collection.h +19 -0
  346. data/ext/libmemcached-0.50/libtest/common.h +50 -0
  347. data/ext/libmemcached-0.50/libtest/core.h +11 -0
  348. data/ext/libmemcached-0.50/libtest/error.h +18 -0
  349. data/ext/libmemcached-0.50/libtest/failed.h +52 -0
  350. data/ext/libmemcached-0.50/libtest/framework.cc +57 -0
  351. data/ext/libmemcached-0.50/libtest/framework.h +137 -0
  352. data/ext/libmemcached-0.50/libtest/get.h +22 -0
  353. data/ext/libmemcached-0.50/libtest/include.am +52 -0
  354. data/ext/libmemcached-0.50/libtest/runner.h +19 -0
  355. data/ext/libmemcached-0.50/libtest/server.c +355 -0
  356. data/ext/libmemcached-0.50/libtest/server.h +43 -0
  357. data/ext/libmemcached-0.50/libtest/stats.h +30 -0
  358. data/ext/libmemcached-0.50/libtest/strerror.h +14 -0
  359. data/ext/libmemcached-0.50/libtest/test.cc +319 -0
  360. data/ext/libmemcached-0.50/libtest/test.h +162 -0
  361. data/ext/libmemcached-0.50/libtest/test.hpp +46 -0
  362. data/ext/libmemcached-0.50/libtest/visibility.h +69 -0
  363. data/ext/libmemcached-0.50/m4/ac_cxx_header_stdcxx_98.m4 +83 -0
  364. data/ext/libmemcached-0.50/m4/acx_pthread.m4 +271 -0
  365. data/ext/libmemcached-0.50/m4/byteorder.m4 +19 -0
  366. data/ext/libmemcached-0.50/m4/deprecated.m4 +17 -0
  367. data/ext/libmemcached-0.50/m4/eagain.m4 +28 -0
  368. data/ext/libmemcached-0.50/m4/enable_utillib.m4 +16 -0
  369. data/ext/libmemcached-0.50/m4/gettext.m4 +379 -0
  370. data/ext/libmemcached-0.50/m4/hsieh.m4 +18 -0
  371. data/ext/libmemcached-0.50/m4/iconv.m4 +214 -0
  372. data/ext/libmemcached-0.50/m4/lib-ld.m4 +110 -0
  373. data/ext/libmemcached-0.50/m4/lib-link.m4 +767 -0
  374. data/ext/libmemcached-0.50/m4/lib-prefix.m4 +221 -0
  375. data/ext/libmemcached-0.50/m4/libtool.m4 +7851 -0
  376. data/ext/libmemcached-0.50/m4/ltoptions.m4 +369 -0
  377. data/ext/libmemcached-0.50/m4/ltsugar.m4 +123 -0
  378. data/ext/libmemcached-0.50/m4/ltversion.m4 +23 -0
  379. data/ext/libmemcached-0.50/m4/lt~obsolete.m4 +98 -0
  380. data/ext/libmemcached-0.50/m4/memaslap.m4 +9 -0
  381. data/ext/libmemcached-0.50/m4/memcached.m4 +31 -0
  382. data/ext/libmemcached-0.50/m4/murmur.m4 +18 -0
  383. data/ext/libmemcached-0.50/m4/pandora_64bit.m4 +60 -0
  384. data/ext/libmemcached-0.50/m4/pandora_bison.m4 +33 -0
  385. data/ext/libmemcached-0.50/m4/pandora_canonical.m4 +418 -0
  386. data/ext/libmemcached-0.50/m4/pandora_check_compiler_version.m4 +37 -0
  387. data/ext/libmemcached-0.50/m4/pandora_check_cxx_standard.m4 +23 -0
  388. data/ext/libmemcached-0.50/m4/pandora_cinttypes.m4 +39 -0
  389. data/ext/libmemcached-0.50/m4/pandora_clock_gettime.m4 +15 -0
  390. data/ext/libmemcached-0.50/m4/pandora_compile_stdcxx_0x.m4 +103 -0
  391. data/ext/libmemcached-0.50/m4/pandora_cstdint.m4 +38 -0
  392. data/ext/libmemcached-0.50/m4/pandora_cxx_demangle.m4 +27 -0
  393. data/ext/libmemcached-0.50/m4/pandora_enable_dtrace.m4 +60 -0
  394. data/ext/libmemcached-0.50/m4/pandora_ensure_gcc_version.m4 +62 -0
  395. data/ext/libmemcached-0.50/m4/pandora_extensions.m4 +16 -0
  396. data/ext/libmemcached-0.50/m4/pandora_fdatasync.m4 +25 -0
  397. data/ext/libmemcached-0.50/m4/pandora_flex.m4 +33 -0
  398. data/ext/libmemcached-0.50/m4/pandora_have_better_malloc.m4 +66 -0
  399. data/ext/libmemcached-0.50/m4/pandora_have_boost.m4 +93 -0
  400. data/ext/libmemcached-0.50/m4/pandora_have_gcc_atomics.m4 +37 -0
  401. data/ext/libmemcached-0.50/m4/pandora_have_innodb.m4 +41 -0
  402. data/ext/libmemcached-0.50/m4/pandora_have_libaio.m4 +56 -0
  403. data/ext/libmemcached-0.50/m4/pandora_have_libavahi.m4 +41 -0
  404. data/ext/libmemcached-0.50/m4/pandora_have_libbdb.m4 +40 -0
  405. data/ext/libmemcached-0.50/m4/pandora_have_libboost_date_time.m4 +46 -0
  406. data/ext/libmemcached-0.50/m4/pandora_have_libboost_filesystem.m4 +47 -0
  407. data/ext/libmemcached-0.50/m4/pandora_have_libboost_iostreams.m4 +49 -0
  408. data/ext/libmemcached-0.50/m4/pandora_have_libboost_options.m4 +47 -0
  409. data/ext/libmemcached-0.50/m4/pandora_have_libboost_regex.m4 +54 -0
  410. data/ext/libmemcached-0.50/m4/pandora_have_libboost_test.m4 +45 -0
  411. data/ext/libmemcached-0.50/m4/pandora_have_libboost_thread.m4 +54 -0
  412. data/ext/libmemcached-0.50/m4/pandora_have_libcassandra.m4 +44 -0
  413. data/ext/libmemcached-0.50/m4/pandora_have_libcurl.m4 +62 -0
  414. data/ext/libmemcached-0.50/m4/pandora_have_libdl.m4 +51 -0
  415. data/ext/libmemcached-0.50/m4/pandora_have_libdrizzle.m4 +61 -0
  416. data/ext/libmemcached-0.50/m4/pandora_have_libevent.m4 +66 -0
  417. data/ext/libmemcached-0.50/m4/pandora_have_libgearman.m4 +41 -0
  418. data/ext/libmemcached-0.50/m4/pandora_have_libgtest.m4 +47 -0
  419. data/ext/libmemcached-0.50/m4/pandora_have_libhaildb.m4 +43 -0
  420. data/ext/libmemcached-0.50/m4/pandora_have_libhashkit.m4 +42 -0
  421. data/ext/libmemcached-0.50/m4/pandora_have_libinnodb.m4 +64 -0
  422. data/ext/libmemcached-0.50/m4/pandora_have_libldap.m4 +73 -0
  423. data/ext/libmemcached-0.50/m4/pandora_have_libmemcached.m4 +106 -0
  424. data/ext/libmemcached-0.50/m4/pandora_have_libmysqlclient.m4 +146 -0
  425. data/ext/libmemcached-0.50/m4/pandora_have_libndbclient.m4 +80 -0
  426. data/ext/libmemcached-0.50/m4/pandora_have_libpcre.m4 +73 -0
  427. data/ext/libmemcached-0.50/m4/pandora_have_libpq.m4 +46 -0
  428. data/ext/libmemcached-0.50/m4/pandora_have_libpqxx.m4 +44 -0
  429. data/ext/libmemcached-0.50/m4/pandora_have_libsqlite3.m4 +42 -0
  430. data/ext/libmemcached-0.50/m4/pandora_have_libtokyocabinet.m4 +54 -0
  431. data/ext/libmemcached-0.50/m4/pandora_have_libuuid.m4 +55 -0
  432. data/ext/libmemcached-0.50/m4/pandora_have_libvbucket.m4 +40 -0
  433. data/ext/libmemcached-0.50/m4/pandora_have_libxml2.m4 +52 -0
  434. data/ext/libmemcached-0.50/m4/pandora_have_libz.m4 +51 -0
  435. data/ext/libmemcached-0.50/m4/pandora_have_protobuf.m4 +82 -0
  436. data/ext/libmemcached-0.50/m4/pandora_have_sasl.m4 +133 -0
  437. data/ext/libmemcached-0.50/m4/pandora_have_thrift.m4 +45 -0
  438. data/ext/libmemcached-0.50/m4/pandora_header_assert.m4 +23 -0
  439. data/ext/libmemcached-0.50/m4/pandora_header_stdcxx_98.m4 +83 -0
  440. data/ext/libmemcached-0.50/m4/pandora_intltool.m4 +225 -0
  441. data/ext/libmemcached-0.50/m4/pandora_libtool.m4 +25 -0
  442. data/ext/libmemcached-0.50/m4/pandora_optimize.m4 +75 -0
  443. data/ext/libmemcached-0.50/m4/pandora_platform.m4 +117 -0
  444. data/ext/libmemcached-0.50/m4/pandora_plugins.m4 +62 -0
  445. data/ext/libmemcached-0.50/m4/pandora_print_callstack.m4 +61 -0
  446. data/ext/libmemcached-0.50/m4/pandora_pthread.m4 +258 -0
  447. data/ext/libmemcached-0.50/m4/pandora_python3_devel.m4 +236 -0
  448. data/ext/libmemcached-0.50/m4/pandora_run_cpplint.m4 +8 -0
  449. data/ext/libmemcached-0.50/m4/pandora_sasl.m4 +133 -0
  450. data/ext/libmemcached-0.50/m4/pandora_shared_ptr.m4 +59 -0
  451. data/ext/libmemcached-0.50/m4/pandora_stack_direction.m4 +39 -0
  452. data/ext/libmemcached-0.50/m4/pandora_stl_hash.m4 +94 -0
  453. data/ext/libmemcached-0.50/m4/pandora_swig.m4 +39 -0
  454. data/ext/libmemcached-0.50/m4/pandora_use_pipe.m4 +36 -0
  455. data/ext/libmemcached-0.50/m4/pandora_vc_build.m4 +168 -0
  456. data/ext/libmemcached-0.50/m4/pandora_version.m4 +11 -0
  457. data/ext/libmemcached-0.50/m4/pandora_visibility.m4 +75 -0
  458. data/ext/libmemcached-0.50/m4/pandora_warnings.m4 +447 -0
  459. data/ext/libmemcached-0.50/m4/pandora_with_gettext.m4 +44 -0
  460. data/ext/libmemcached-0.50/m4/pandora_with_lua.m4 +55 -0
  461. data/ext/libmemcached-0.50/m4/pandora_with_memcached.m4 +41 -0
  462. data/ext/libmemcached-0.50/m4/pandora_with_perl.m4 +81 -0
  463. data/ext/libmemcached-0.50/m4/pandora_with_php.m4 +56 -0
  464. data/ext/libmemcached-0.50/m4/pandora_with_python.m4 +37 -0
  465. data/ext/libmemcached-0.50/m4/pandora_with_python3.m4 +44 -0
  466. data/ext/libmemcached-0.50/m4/pandora_with_r.m4 +33 -0
  467. data/ext/libmemcached-0.50/m4/pandora_with_ruby.m4 +79 -0
  468. data/ext/libmemcached-0.50/m4/pandora_with_valgrind.m4 +17 -0
  469. data/ext/libmemcached-0.50/m4/pkg.m4 +157 -0
  470. data/ext/libmemcached-0.50/m4/po.m4 +449 -0
  471. data/ext/libmemcached-0.50/m4/progtest.m4 +92 -0
  472. data/ext/libmemcached-0.50/m4/protocol_binary.m4 +36 -0
  473. data/ext/libmemcached-0.50/m4/setsockopt.m4 +73 -0
  474. data/ext/libmemcached-0.50/m4/socket_send_flags.m4 +66 -0
  475. data/ext/libmemcached-0.50/poll/include.am +8 -0
  476. data/ext/libmemcached-0.50/poll/poll.c +77 -0
  477. data/ext/libmemcached-0.50/poll/poll.h +45 -0
  478. data/ext/libmemcached-0.50/support/include.am +11 -0
  479. data/ext/libmemcached-0.50/support/libmemcached-fc.spec.in +105 -0
  480. data/ext/libmemcached-0.50/support/libmemcached.pc.in +10 -0
  481. data/ext/libmemcached-0.50/support/libmemcached.spec.in +281 -0
  482. data/ext/libmemcached-0.50/support/set_benchmark.sh +5 -0
  483. data/ext/libmemcached-0.50/tests/atomsmasher.cc +295 -0
  484. data/ext/libmemcached-0.50/tests/basic.cc +134 -0
  485. data/ext/libmemcached-0.50/tests/basic.h +66 -0
  486. data/ext/libmemcached-0.50/tests/cpp_example.cc +195 -0
  487. data/ext/libmemcached-0.50/tests/deprecated.cc +72 -0
  488. data/ext/libmemcached-0.50/tests/deprecated.h +49 -0
  489. data/ext/libmemcached-0.50/tests/error_conditions.cc +63 -0
  490. data/ext/libmemcached-0.50/tests/error_conditions.h +48 -0
  491. data/ext/libmemcached-0.50/tests/hash_plus.cc +225 -0
  492. data/ext/libmemcached-0.50/tests/hash_results.h +127 -0
  493. data/ext/libmemcached-0.50/tests/hashkit_functions.cc +619 -0
  494. data/ext/libmemcached-0.50/tests/include.am +342 -0
  495. data/ext/libmemcached-0.50/tests/ketama_test_cases.h +121 -0
  496. data/ext/libmemcached-0.50/tests/ketama_test_cases_spy.h +118 -0
  497. data/ext/libmemcached-0.50/tests/libmemcached_world.h +205 -0
  498. data/ext/libmemcached-0.50/tests/mem_functions.cc +6648 -0
  499. data/ext/libmemcached-0.50/tests/mem_udp.cc +510 -0
  500. data/ext/libmemcached-0.50/tests/output_plus.res +5 -0
  501. data/ext/libmemcached-0.50/tests/parser.cc +599 -0
  502. data/ext/libmemcached-0.50/tests/parser.h +109 -0
  503. data/ext/libmemcached-0.50/tests/plus.cpp +240 -0
  504. data/ext/libmemcached-0.50/tests/pool.cc +78 -0
  505. data/ext/libmemcached-0.50/tests/pool.h +49 -0
  506. data/ext/libmemcached-0.50/tests/print.cc +58 -0
  507. data/ext/libmemcached-0.50/tests/print.h +51 -0
  508. data/ext/libmemcached-0.50/tests/replication.cc +333 -0
  509. data/ext/libmemcached-0.50/tests/replication.h +64 -0
  510. data/ext/libmemcached-0.50/tests/start.cc +29 -0
  511. data/ext/libmemcached-0.50/tests/string.cc +174 -0
  512. data/ext/libmemcached-0.50/tests/string.h +67 -0
  513. data/ext/libmemcached-0.50/tests/virtual_buckets.cc +143 -0
  514. data/ext/libmemcached-0.50/tests/virtual_buckets.h +51 -0
  515. data/ext/libmemcached-0.50/win32/include.am +11 -0
  516. data/ext/libmemcached-0.50/win32/wrappers.h +55 -0
  517. data/ext/rlibmemcached.i +263 -0
  518. data/ext/rlibmemcached_wrap.c +16732 -0
  519. data/lib/memcached.rb +32 -0
  520. data/lib/memcached/auth.rb +16 -0
  521. data/lib/memcached/behaviors.rb +77 -0
  522. data/lib/memcached/exceptions.rb +84 -0
  523. data/lib/memcached/experimental.rb +48 -0
  524. data/lib/memcached/memcached.rb +660 -0
  525. data/lib/memcached/rails.rb +133 -0
  526. data/test/profile/benchmark.rb +245 -0
  527. data/test/profile/c_profiler.rb +14 -0
  528. data/test/profile/exercise.rb +185 -0
  529. data/test/profile/rb_profiler.rb +21 -0
  530. data/test/profile/valgrind.rb +10 -0
  531. data/test/setup.rb +30 -0
  532. data/test/teardown.rb +0 -0
  533. data/test/test_helper.rb +19 -0
  534. data/test/unit/binding_test.rb +8 -0
  535. data/test/unit/memcached_experimental_test.rb +274 -0
  536. data/test/unit/memcached_test.rb +1293 -0
  537. data/test/unit/rails_test.rb +122 -0
  538. metadata +650 -0
  539. metadata.gz.sig +0 -0
@@ -0,0 +1,7 @@
1
+ For your convenience libmemcached contains a copy of protocol_binary.h so that
2
+ you may compile libmemcached without having a memcached server with support
3
+ for the binary protocol installed on your computer. Please do not modify this
4
+ fine, but replace it with a fresh copy from a new distribution if they are
5
+ out of sync.
6
+
7
+ Trond Norbye
@@ -0,0 +1,726 @@
1
+ /* -*- Mode: C; tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*- */
2
+ /*
3
+ * Copyright (c) <2008>, Sun Microsystems, Inc.
4
+ * All rights reserved.
5
+ *
6
+ * Redistribution and use in source and binary forms, with or without
7
+ * modification, are permitted provided that the following conditions are met:
8
+ * * Redistributions of source code must retain the above copyright
9
+ * notice, this list of conditions and the following disclaimer.
10
+ * * Redistributions in binary form must reproduce the above copyright
11
+ * notice, this list of conditions and the following disclaimer in the
12
+ * documentation and/or other materials provided with the distribution.
13
+ * * Neither the name of the nor the
14
+ * names of its contributors may be used to endorse or promote products
15
+ * derived from this software without specific prior written permission.
16
+ *
17
+ * THIS SOFTWARE IS PROVIDED BY SUN MICROSYSTEMS, INC. ``AS IS'' AND ANY
18
+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
+ * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY
21
+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22
+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23
+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24
+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
26
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
+ */
28
+ /*
29
+ * Summary: Constants used by to implement the binary protocol.
30
+ *
31
+ * Copy: See Copyright for the status of this software.
32
+ *
33
+ * Author: Trond Norbye <trond.norbye@sun.com>
34
+ */
35
+
36
+ #ifndef PROTOCOL_BINARY_H
37
+ #define PROTOCOL_BINARY_H
38
+
39
+ #include "vbucket.h"
40
+
41
+ /**
42
+ * \addtogroup Protocol
43
+ * @{
44
+ */
45
+
46
+ /**
47
+ * This file contains definitions of the constants and packet formats
48
+ * defined in the binary specification. Please note that you _MUST_ remember
49
+ * to convert each multibyte field to / from network byte order to / from
50
+ * host order.
51
+ */
52
+ #ifdef __cplusplus
53
+ extern "C"
54
+ {
55
+ #endif
56
+
57
+ /**
58
+ * Definition of the legal "magic" values used in a packet.
59
+ * See section 3.1 Magic byte
60
+ */
61
+ typedef enum {
62
+ PROTOCOL_BINARY_REQ = 0x80,
63
+ PROTOCOL_BINARY_RES = 0x81
64
+ } protocol_binary_magic;
65
+
66
+ /**
67
+ * Definition of the valid response status numbers.
68
+ * See section 3.2 Response Status
69
+ */
70
+ typedef enum {
71
+ PROTOCOL_BINARY_RESPONSE_SUCCESS = 0x00,
72
+ PROTOCOL_BINARY_RESPONSE_KEY_ENOENT = 0x01,
73
+ PROTOCOL_BINARY_RESPONSE_KEY_EEXISTS = 0x02,
74
+ PROTOCOL_BINARY_RESPONSE_E2BIG = 0x03,
75
+ PROTOCOL_BINARY_RESPONSE_EINVAL = 0x04,
76
+ PROTOCOL_BINARY_RESPONSE_NOT_STORED = 0x05,
77
+ PROTOCOL_BINARY_RESPONSE_DELTA_BADVAL = 0x06,
78
+ PROTOCOL_BINARY_RESPONSE_NOT_MY_VBUCKET = 0x07,
79
+ PROTOCOL_BINARY_RESPONSE_AUTH_ERROR = 0x20,
80
+ PROTOCOL_BINARY_RESPONSE_AUTH_CONTINUE = 0x21,
81
+ PROTOCOL_BINARY_RESPONSE_UNKNOWN_COMMAND = 0x81,
82
+ PROTOCOL_BINARY_RESPONSE_ENOMEM = 0x82,
83
+ PROTOCOL_BINARY_RESPONSE_NOT_SUPPORTED = 0x83,
84
+ PROTOCOL_BINARY_RESPONSE_EINTERNAL = 0x84,
85
+ PROTOCOL_BINARY_RESPONSE_EBUSY = 0x85,
86
+ PROTOCOL_BINARY_RESPONSE_ETMPFAIL = 0x86
87
+ } protocol_binary_response_status;
88
+
89
+ /**
90
+ * Defintion of the different command opcodes.
91
+ * See section 3.3 Command Opcodes
92
+ */
93
+ typedef enum {
94
+ PROTOCOL_BINARY_CMD_GET = 0x00,
95
+ PROTOCOL_BINARY_CMD_SET = 0x01,
96
+ PROTOCOL_BINARY_CMD_ADD = 0x02,
97
+ PROTOCOL_BINARY_CMD_REPLACE = 0x03,
98
+ PROTOCOL_BINARY_CMD_DELETE = 0x04,
99
+ PROTOCOL_BINARY_CMD_INCREMENT = 0x05,
100
+ PROTOCOL_BINARY_CMD_DECREMENT = 0x06,
101
+ PROTOCOL_BINARY_CMD_QUIT = 0x07,
102
+ PROTOCOL_BINARY_CMD_FLUSH = 0x08,
103
+ PROTOCOL_BINARY_CMD_GETQ = 0x09,
104
+ PROTOCOL_BINARY_CMD_NOOP = 0x0a,
105
+ PROTOCOL_BINARY_CMD_VERSION = 0x0b,
106
+ PROTOCOL_BINARY_CMD_GETK = 0x0c,
107
+ PROTOCOL_BINARY_CMD_GETKQ = 0x0d,
108
+ PROTOCOL_BINARY_CMD_APPEND = 0x0e,
109
+ PROTOCOL_BINARY_CMD_PREPEND = 0x0f,
110
+ PROTOCOL_BINARY_CMD_STAT = 0x10,
111
+ PROTOCOL_BINARY_CMD_SETQ = 0x11,
112
+ PROTOCOL_BINARY_CMD_ADDQ = 0x12,
113
+ PROTOCOL_BINARY_CMD_REPLACEQ = 0x13,
114
+ PROTOCOL_BINARY_CMD_DELETEQ = 0x14,
115
+ PROTOCOL_BINARY_CMD_INCREMENTQ = 0x15,
116
+ PROTOCOL_BINARY_CMD_DECREMENTQ = 0x16,
117
+ PROTOCOL_BINARY_CMD_QUITQ = 0x17,
118
+ PROTOCOL_BINARY_CMD_FLUSHQ = 0x18,
119
+ PROTOCOL_BINARY_CMD_APPENDQ = 0x19,
120
+ PROTOCOL_BINARY_CMD_PREPENDQ = 0x1a,
121
+ PROTOCOL_BINARY_CMD_VERBOSITY = 0x1b,
122
+ PROTOCOL_BINARY_CMD_TOUCH = 0x1c,
123
+ PROTOCOL_BINARY_CMD_GAT = 0x1d,
124
+ PROTOCOL_BINARY_CMD_GATQ = 0x1e,
125
+
126
+ PROTOCOL_BINARY_CMD_SASL_LIST_MECHS = 0x20,
127
+ PROTOCOL_BINARY_CMD_SASL_AUTH = 0x21,
128
+ PROTOCOL_BINARY_CMD_SASL_STEP = 0x22,
129
+
130
+ /* These commands are used for range operations and exist within
131
+ * this header for use in other projects. Range operations are
132
+ * not expected to be implemented in the memcached server itself.
133
+ */
134
+ PROTOCOL_BINARY_CMD_RGET = 0x30,
135
+ PROTOCOL_BINARY_CMD_RSET = 0x31,
136
+ PROTOCOL_BINARY_CMD_RSETQ = 0x32,
137
+ PROTOCOL_BINARY_CMD_RAPPEND = 0x33,
138
+ PROTOCOL_BINARY_CMD_RAPPENDQ = 0x34,
139
+ PROTOCOL_BINARY_CMD_RPREPEND = 0x35,
140
+ PROTOCOL_BINARY_CMD_RPREPENDQ = 0x36,
141
+ PROTOCOL_BINARY_CMD_RDELETE = 0x37,
142
+ PROTOCOL_BINARY_CMD_RDELETEQ = 0x38,
143
+ PROTOCOL_BINARY_CMD_RINCR = 0x39,
144
+ PROTOCOL_BINARY_CMD_RINCRQ = 0x3a,
145
+ PROTOCOL_BINARY_CMD_RDECR = 0x3b,
146
+ PROTOCOL_BINARY_CMD_RDECRQ = 0x3c,
147
+ /* End Range operations */
148
+
149
+ /* VBucket commands */
150
+ PROTOCOL_BINARY_CMD_SET_VBUCKET = 0x3d,
151
+ PROTOCOL_BINARY_CMD_GET_VBUCKET = 0x3e,
152
+ PROTOCOL_BINARY_CMD_DEL_VBUCKET = 0x3f,
153
+ /* End VBucket commands */
154
+
155
+ /* TAP commands */
156
+ PROTOCOL_BINARY_CMD_TAP_CONNECT = 0x40,
157
+ PROTOCOL_BINARY_CMD_TAP_MUTATION = 0x41,
158
+ PROTOCOL_BINARY_CMD_TAP_DELETE = 0x42,
159
+ PROTOCOL_BINARY_CMD_TAP_FLUSH = 0x43,
160
+ PROTOCOL_BINARY_CMD_TAP_OPAQUE = 0x44,
161
+ PROTOCOL_BINARY_CMD_TAP_VBUCKET_SET = 0x45,
162
+ PROTOCOL_BINARY_CMD_TAP_CHECKPOINT_START = 0x46,
163
+ PROTOCOL_BINARY_CMD_TAP_CHECKPOINT_END = 0x47,
164
+ /* End TAP */
165
+
166
+ PROTOCOL_BINARY_CMD_LAST_RESERVED = 0xef,
167
+
168
+ /* Scrub the data */
169
+ PROTOCOL_BINARY_CMD_SCRUB = 0xf0
170
+ } protocol_binary_command;
171
+
172
+ /**
173
+ * Definition of the data types in the packet
174
+ * See section 3.4 Data Types
175
+ */
176
+ typedef enum {
177
+ PROTOCOL_BINARY_RAW_BYTES = 0x00
178
+ } protocol_binary_datatypes;
179
+
180
+ /**
181
+ * Definition of the header structure for a request packet.
182
+ * See section 2
183
+ */
184
+ typedef union {
185
+ struct {
186
+ uint8_t magic;
187
+ uint8_t opcode;
188
+ uint16_t keylen;
189
+ uint8_t extlen;
190
+ uint8_t datatype;
191
+ uint16_t vbucket;
192
+ uint32_t bodylen;
193
+ uint32_t opaque;
194
+ uint64_t cas;
195
+ } request;
196
+ uint8_t bytes[24];
197
+ } protocol_binary_request_header;
198
+
199
+ /**
200
+ * Definition of the header structure for a response packet.
201
+ * See section 2
202
+ */
203
+ typedef union {
204
+ struct {
205
+ uint8_t magic;
206
+ uint8_t opcode;
207
+ uint16_t keylen;
208
+ uint8_t extlen;
209
+ uint8_t datatype;
210
+ uint16_t status;
211
+ uint32_t bodylen;
212
+ uint32_t opaque;
213
+ uint64_t cas;
214
+ } response;
215
+ uint8_t bytes[24];
216
+ } protocol_binary_response_header;
217
+
218
+ /**
219
+ * Definition of a request-packet containing no extras
220
+ */
221
+ union protocol_binary_request_no_extras {
222
+ struct {
223
+ protocol_binary_request_header header;
224
+ } message;
225
+ uint8_t bytes[sizeof(protocol_binary_request_header)];
226
+ };
227
+ typedef union protocol_binary_request_no_extras protocol_binary_request_no_extras;
228
+
229
+ /**
230
+ * Definition of a response-packet containing no extras
231
+ */
232
+ typedef union {
233
+ struct {
234
+ protocol_binary_response_header header;
235
+ } message;
236
+ uint8_t bytes[sizeof(protocol_binary_response_header)];
237
+ } protocol_binary_response_no_extras;
238
+
239
+ /**
240
+ * Definition of the packet used by the get, getq, getk and getkq command.
241
+ * See section 4
242
+ */
243
+ typedef protocol_binary_request_no_extras protocol_binary_request_get;
244
+ typedef protocol_binary_request_no_extras protocol_binary_request_getq;
245
+ typedef protocol_binary_request_no_extras protocol_binary_request_getk;
246
+ typedef protocol_binary_request_no_extras protocol_binary_request_getkq;
247
+
248
+ /**
249
+ * Definition of the packet returned from a successful get, getq, getk and
250
+ * getkq.
251
+ * See section 4
252
+ */
253
+ typedef union {
254
+ struct {
255
+ protocol_binary_response_header header;
256
+ struct {
257
+ uint32_t flags;
258
+ } body;
259
+ } message;
260
+ uint8_t bytes[sizeof(protocol_binary_response_header) + 4];
261
+ } protocol_binary_response_get;
262
+
263
+ typedef protocol_binary_response_get protocol_binary_response_getq;
264
+ typedef protocol_binary_response_get protocol_binary_response_getk;
265
+ typedef protocol_binary_response_get protocol_binary_response_getkq;
266
+
267
+ /**
268
+ * Definition of the packet used by the delete command
269
+ * See section 4
270
+ */
271
+ typedef protocol_binary_request_no_extras protocol_binary_request_delete;
272
+
273
+ /**
274
+ * Definition of the packet returned by the delete command
275
+ * See section 4
276
+ */
277
+ typedef protocol_binary_response_no_extras protocol_binary_response_delete;
278
+
279
+ /**
280
+ * Definition of the packet used by the flush command
281
+ * See section 4
282
+ * Please note that the expiration field is optional, so remember to see
283
+ * check the header.bodysize to see if it is present.
284
+ */
285
+ typedef union {
286
+ struct {
287
+ protocol_binary_request_header header;
288
+ struct {
289
+ uint32_t expiration;
290
+ } body;
291
+ } message;
292
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 4];
293
+ } protocol_binary_request_flush;
294
+
295
+ /**
296
+ * Definition of the packet returned by the flush command
297
+ * See section 4
298
+ */
299
+ typedef protocol_binary_response_no_extras protocol_binary_response_flush;
300
+
301
+ /**
302
+ * Definition of the packet used by set, add and replace
303
+ * See section 4
304
+ */
305
+ typedef union {
306
+ struct {
307
+ protocol_binary_request_header header;
308
+ struct {
309
+ uint32_t flags;
310
+ uint32_t expiration;
311
+ } body;
312
+ } message;
313
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 8];
314
+ } protocol_binary_request_set;
315
+ typedef protocol_binary_request_set protocol_binary_request_add;
316
+ typedef protocol_binary_request_set protocol_binary_request_replace;
317
+
318
+ /**
319
+ * Definition of the packet returned by set, add and replace
320
+ * See section 4
321
+ */
322
+ typedef protocol_binary_response_no_extras protocol_binary_response_set;
323
+ typedef protocol_binary_response_no_extras protocol_binary_response_add;
324
+ typedef protocol_binary_response_no_extras protocol_binary_response_replace;
325
+
326
+ /**
327
+ * Definition of the noop packet
328
+ * See section 4
329
+ */
330
+ typedef protocol_binary_request_no_extras protocol_binary_request_noop;
331
+
332
+ /**
333
+ * Definition of the packet returned by the noop command
334
+ * See section 4
335
+ */
336
+ typedef protocol_binary_response_no_extras protocol_binary_response_noop;
337
+
338
+ /**
339
+ * Definition of the structure used by the increment and decrement
340
+ * command.
341
+ * See section 4
342
+ */
343
+ typedef union {
344
+ struct {
345
+ protocol_binary_request_header header;
346
+ struct {
347
+ uint64_t delta;
348
+ uint64_t initial;
349
+ uint32_t expiration;
350
+ } body;
351
+ } message;
352
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 20];
353
+ } protocol_binary_request_incr;
354
+ typedef protocol_binary_request_incr protocol_binary_request_decr;
355
+
356
+ /**
357
+ * Definition of the response from an incr or decr command
358
+ * command.
359
+ * See section 4
360
+ */
361
+ typedef union {
362
+ struct {
363
+ protocol_binary_response_header header;
364
+ struct {
365
+ uint64_t value;
366
+ } body;
367
+ } message;
368
+ uint8_t bytes[sizeof(protocol_binary_response_header) + 8];
369
+ } protocol_binary_response_incr;
370
+ typedef protocol_binary_response_incr protocol_binary_response_decr;
371
+
372
+ /**
373
+ * Definition of the quit
374
+ * See section 4
375
+ */
376
+ typedef protocol_binary_request_no_extras protocol_binary_request_quit;
377
+
378
+ /**
379
+ * Definition of the packet returned by the quit command
380
+ * See section 4
381
+ */
382
+ typedef protocol_binary_response_no_extras protocol_binary_response_quit;
383
+
384
+ /**
385
+ * Definition of the packet used by append and prepend command
386
+ * See section 4
387
+ */
388
+ typedef protocol_binary_request_no_extras protocol_binary_request_append;
389
+ typedef protocol_binary_request_no_extras protocol_binary_request_prepend;
390
+
391
+ /**
392
+ * Definition of the packet returned from a successful append or prepend
393
+ * See section 4
394
+ */
395
+ typedef protocol_binary_response_no_extras protocol_binary_response_append;
396
+ typedef protocol_binary_response_no_extras protocol_binary_response_prepend;
397
+
398
+ /**
399
+ * Definition of the packet used by the version command
400
+ * See section 4
401
+ */
402
+ typedef protocol_binary_request_no_extras protocol_binary_request_version;
403
+
404
+ /**
405
+ * Definition of the packet returned from a successful version command
406
+ * See section 4
407
+ */
408
+ typedef protocol_binary_response_no_extras protocol_binary_response_version;
409
+
410
+
411
+ /**
412
+ * Definition of the packet used by the stats command.
413
+ * See section 4
414
+ */
415
+ typedef protocol_binary_request_no_extras protocol_binary_request_stats;
416
+
417
+ /**
418
+ * Definition of the packet returned from a successful stats command
419
+ * See section 4
420
+ */
421
+ typedef protocol_binary_response_no_extras protocol_binary_response_stats;
422
+
423
+ /**
424
+ * Definition of the packet used by the verbosity command
425
+ */
426
+ typedef union {
427
+ struct {
428
+ protocol_binary_request_header header;
429
+ struct {
430
+ uint32_t level;
431
+ } body;
432
+ } message;
433
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 4];
434
+ } protocol_binary_request_verbosity;
435
+
436
+ /**
437
+ * Definition of the packet returned from the verbosity command
438
+ */
439
+ typedef protocol_binary_response_no_extras protocol_binary_response_verbosity;
440
+
441
+ /**
442
+ * Definition of the packet used by the touch command.
443
+ */
444
+ typedef union {
445
+ struct {
446
+ protocol_binary_request_header header;
447
+ struct {
448
+ uint32_t expiration;
449
+ } body;
450
+ } message;
451
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 4];
452
+ } protocol_binary_request_touch;
453
+
454
+ /**
455
+ * Definition of the packet returned from the touch command
456
+ */
457
+ typedef protocol_binary_response_no_extras protocol_binary_response_touch;
458
+
459
+ /**
460
+ * Definition of the packet used by the GAT(Q) command.
461
+ */
462
+ typedef union {
463
+ struct {
464
+ protocol_binary_request_header header;
465
+ struct {
466
+ uint32_t expiration;
467
+ } body;
468
+ } message;
469
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 4];
470
+ } protocol_binary_request_gat;
471
+
472
+ typedef protocol_binary_request_gat protocol_binary_request_gatq;
473
+
474
+ /**
475
+ * Definition of the packet returned from the GAT(Q)
476
+ */
477
+ typedef protocol_binary_response_get protocol_binary_response_gat;
478
+ typedef protocol_binary_response_get protocol_binary_response_gatq;
479
+
480
+
481
+ /**
482
+ * Definition of a request for a range operation.
483
+ * See http://code.google.com/p/memcached/wiki/RangeOps
484
+ *
485
+ * These types are used for range operations and exist within
486
+ * this header for use in other projects. Range operations are
487
+ * not expected to be implemented in the memcached server itself.
488
+ */
489
+ typedef union {
490
+ struct {
491
+ protocol_binary_response_header header;
492
+ struct {
493
+ uint16_t size;
494
+ uint8_t reserved;
495
+ uint8_t flags;
496
+ uint32_t max_results;
497
+ } body;
498
+ } message;
499
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 4];
500
+ } protocol_binary_request_rangeop;
501
+
502
+ typedef protocol_binary_request_rangeop protocol_binary_request_rget;
503
+ typedef protocol_binary_request_rangeop protocol_binary_request_rset;
504
+ typedef protocol_binary_request_rangeop protocol_binary_request_rsetq;
505
+ typedef protocol_binary_request_rangeop protocol_binary_request_rappend;
506
+ typedef protocol_binary_request_rangeop protocol_binary_request_rappendq;
507
+ typedef protocol_binary_request_rangeop protocol_binary_request_rprepend;
508
+ typedef protocol_binary_request_rangeop protocol_binary_request_rprependq;
509
+ typedef protocol_binary_request_rangeop protocol_binary_request_rdelete;
510
+ typedef protocol_binary_request_rangeop protocol_binary_request_rdeleteq;
511
+ typedef protocol_binary_request_rangeop protocol_binary_request_rincr;
512
+ typedef protocol_binary_request_rangeop protocol_binary_request_rincrq;
513
+ typedef protocol_binary_request_rangeop protocol_binary_request_rdecr;
514
+ typedef protocol_binary_request_rangeop protocol_binary_request_rdecrq;
515
+
516
+
517
+ /**
518
+ * Definition of tap commands
519
+ * See To be written
520
+ *
521
+ */
522
+
523
+ typedef union {
524
+ struct {
525
+ protocol_binary_request_header header;
526
+ struct {
527
+ /**
528
+ * flags is a bitmask used to set properties for the
529
+ * the connection. Please In order to be forward compatible
530
+ * you should set all undefined bits to 0.
531
+ *
532
+ * If the bit require extra userdata, it will be stored
533
+ * in the user-data field of the body (passed to the engine
534
+ * as enginespeciffic). That means that when you parse the
535
+ * flags and the engine-specific data, you have to work your
536
+ * way from bit 0 and upwards to find the correct offset for
537
+ * the data.
538
+ *
539
+ */
540
+ uint32_t flags;
541
+
542
+ /**
543
+ * Backfill age
544
+ *
545
+ * By using this flag you can limit the amount of data being
546
+ * transmitted. If you don't specify a backfill age, the
547
+ * server will transmit everything it contains.
548
+ *
549
+ * The first 8 bytes in the engine specific data contains
550
+ * the oldest entry (from epoc) you're interested in.
551
+ * Specifying a time in the future (for the server you are
552
+ * connecting to), will cause it to start streaming current
553
+ * changes.
554
+ */
555
+ #define TAP_CONNECT_FLAG_BACKFILL 0x01
556
+ /**
557
+ * Dump will cause the server to send the data stored on the
558
+ * server, but disconnect when the keys stored in the server
559
+ * are transmitted.
560
+ */
561
+ #define TAP_CONNECT_FLAG_DUMP 0x02
562
+ /**
563
+ * The body contains a list of 16 bits words in network byte
564
+ * order specifying the vbucket ids to monitor. The first 16
565
+ * bit word contains the number of buckets. The number of 0
566
+ * means "all buckets"
567
+ */
568
+ #define TAP_CONNECT_FLAG_LIST_VBUCKETS 0x04
569
+ /**
570
+ * The responsibility of the vbuckets is to be transferred
571
+ * over to the caller when all items are transferred.
572
+ */
573
+ #define TAP_CONNECT_FLAG_TAKEOVER_VBUCKETS 0x08
574
+ /**
575
+ * The tap consumer supports ack'ing of tap messages
576
+ */
577
+ #define TAP_CONNECT_SUPPORT_ACK 0x10
578
+ /**
579
+ * The tap consumer would prefer to just get the keys
580
+ * back. If the engine supports this it will set
581
+ * the TAP_FLAG_NO_VALUE flag in each of the
582
+ * tap packets returned.
583
+ */
584
+ #define TAP_CONNECT_REQUEST_KEYS_ONLY 0x20
585
+ /**
586
+ * The body contains a list of (vbucket_id, last_checkpoint_id)
587
+ * pairs. This provides the checkpoint support in TAP streams.
588
+ * The last checkpoint id represents the last checkpoint that
589
+ * was successfully persisted.
590
+ */
591
+ #define TAP_CONNECT_CHECKPOINT 0x40
592
+ /**
593
+ * The tap consumer is a registered tap client, which means that
594
+ * the tap server will maintain its checkpoint cursor permanently.
595
+ */
596
+ #define TAP_CONNECT_REGISTERED_CLIENT 0x80
597
+ } body;
598
+ } message;
599
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 4];
600
+ } protocol_binary_request_tap_connect;
601
+
602
+ typedef union {
603
+ struct {
604
+ protocol_binary_request_header header;
605
+ struct {
606
+ struct {
607
+ uint16_t enginespecific_length;
608
+ /*
609
+ * The flag section support the following flags
610
+ */
611
+ /**
612
+ * Request that the consumer send a response packet
613
+ * for this packet. The opaque field must be preserved
614
+ * in the response.
615
+ */
616
+ #define TAP_FLAG_ACK 0x01
617
+ /**
618
+ * The value for the key is not included in the packet
619
+ */
620
+ #define TAP_FLAG_NO_VALUE 0x02
621
+ uint16_t flags;
622
+ uint8_t ttl;
623
+ uint8_t res1;
624
+ uint8_t res2;
625
+ uint8_t res3;
626
+ } tap;
627
+ struct {
628
+ uint32_t flags;
629
+ uint32_t expiration;
630
+ } item;
631
+ } body;
632
+ } message;
633
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 16];
634
+ } protocol_binary_request_tap_mutation;
635
+
636
+ typedef union {
637
+ struct {
638
+ protocol_binary_request_header header;
639
+ struct {
640
+ struct {
641
+ uint16_t enginespecific_length;
642
+ /**
643
+ * See the definition of the flags for
644
+ * protocol_binary_request_tap_mutation for a description
645
+ * of the available flags.
646
+ */
647
+ uint16_t flags;
648
+ uint8_t ttl;
649
+ uint8_t res1;
650
+ uint8_t res2;
651
+ uint8_t res3;
652
+ } tap;
653
+ } body;
654
+ } message;
655
+ uint8_t bytes[sizeof(protocol_binary_request_header) + 8];
656
+ } protocol_binary_request_tap_no_extras;
657
+
658
+ typedef protocol_binary_request_tap_no_extras protocol_binary_request_tap_delete;
659
+ typedef protocol_binary_request_tap_no_extras protocol_binary_request_tap_flush;
660
+ typedef protocol_binary_request_tap_no_extras protocol_binary_request_tap_opaque;
661
+ typedef protocol_binary_request_tap_no_extras protocol_binary_request_tap_vbucket_set;
662
+
663
+
664
+ /**
665
+ * Definition of the packet used by the scrub.
666
+ */
667
+ typedef protocol_binary_request_no_extras protocol_binary_request_scrub;
668
+
669
+ /**
670
+ * Definition of the packet returned from scrub.
671
+ */
672
+ typedef protocol_binary_response_no_extras protocol_binary_response_scrub;
673
+
674
+
675
+ /**
676
+ * Definition of the packet used by set vbucket
677
+ */
678
+ typedef union {
679
+ struct {
680
+ protocol_binary_request_header header;
681
+ struct {
682
+ vbucket_state_t state;
683
+ } body;
684
+ } message;
685
+ uint8_t bytes[sizeof(protocol_binary_request_header) + sizeof(vbucket_state_t)];
686
+ } protocol_binary_request_set_vbucket;
687
+ /**
688
+ * Definition of the packet returned from set vbucket
689
+ */
690
+ typedef protocol_binary_response_no_extras protocol_binary_response_set_vbucket;
691
+ /**
692
+ * Definition of the packet used by del vbucket
693
+ */
694
+ typedef protocol_binary_request_no_extras protocol_binary_request_del_vbucket;
695
+ /**
696
+ * Definition of the packet returned from del vbucket
697
+ */
698
+ typedef protocol_binary_response_no_extras protocol_binary_response_del_vbucket;
699
+
700
+ /**
701
+ * Definition of the packet used by get vbucket
702
+ */
703
+ typedef protocol_binary_request_no_extras protocol_binary_request_get_vbucket;
704
+
705
+ /**
706
+ * Definition of the packet returned from get vbucket
707
+ */
708
+ typedef union {
709
+ struct {
710
+ protocol_binary_response_header header;
711
+ struct {
712
+ vbucket_state_t state;
713
+ } body;
714
+ } message;
715
+ uint8_t bytes[sizeof(protocol_binary_response_header) + sizeof(vbucket_state_t)];
716
+ } protocol_binary_response_get_vbucket;
717
+
718
+
719
+ /**
720
+ * @}
721
+ */
722
+
723
+ #ifdef __cplusplus
724
+ }
725
+ #endif
726
+ #endif /* PROTOCOL_BINARY_H */