couchbase-memcached 1.2.8

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 (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 */