couchbase 3.0.0.alpha.4-universal-darwin-19 → 3.0.0.alpha.5-universal-darwin-19

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 (749) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/bin/fetch-stats +19 -0
  4. data/bin/init-cluster +24 -24
  5. data/bin/jenkins/build-extension +35 -0
  6. data/bin/jenkins/install-dependencies +47 -0
  7. data/bin/jenkins/test-with-cbdyncluster +58 -0
  8. data/couchbase.gemspec +27 -1
  9. data/examples/subdocument.rb +2 -2
  10. data/ext/build_version.hxx.in +1 -1
  11. data/ext/couchbase/cluster.hxx +41 -40
  12. data/ext/couchbase/couchbase.cxx +174 -61
  13. data/ext/couchbase/io/dns_message.hxx +3 -6
  14. data/ext/couchbase/io/http_session.hxx +31 -26
  15. data/ext/couchbase/io/{session_manager.hxx → http_session_manager.hxx} +3 -3
  16. data/ext/couchbase/io/mcbp_message.hxx +19 -2
  17. data/ext/couchbase/io/mcbp_session.hxx +89 -47
  18. data/ext/couchbase/operations/command.hxx +18 -7
  19. data/ext/couchbase/operations/document_analytics.hxx +5 -6
  20. data/ext/couchbase/operations/document_decrement.hxx +2 -1
  21. data/ext/couchbase/operations/document_exists.hxx +2 -1
  22. data/ext/couchbase/operations/document_get.hxx +2 -1
  23. data/ext/couchbase/operations/document_get_and_lock.hxx +2 -1
  24. data/ext/couchbase/operations/document_get_and_touch.hxx +2 -1
  25. data/ext/couchbase/operations/document_get_projected.hxx +2 -1
  26. data/ext/couchbase/operations/document_increment.hxx +2 -1
  27. data/ext/couchbase/operations/document_insert.hxx +2 -1
  28. data/ext/couchbase/operations/document_lookup_in.hxx +21 -1
  29. data/ext/couchbase/operations/document_mutate_in.hxx +44 -2
  30. data/ext/couchbase/operations/document_query.hxx +6 -7
  31. data/ext/couchbase/operations/document_remove.hxx +2 -1
  32. data/ext/couchbase/operations/document_replace.hxx +2 -1
  33. data/ext/couchbase/operations/document_search.hxx +3 -2
  34. data/ext/couchbase/operations/document_touch.hxx +2 -1
  35. data/ext/couchbase/operations/document_unlock.hxx +2 -1
  36. data/ext/couchbase/operations/document_upsert.hxx +2 -1
  37. data/ext/couchbase/operations/document_view.hxx +2 -1
  38. data/ext/couchbase/operations/view_index_get_all.hxx +1 -1
  39. data/ext/couchbase/protocol/client_opcode.hxx +7 -3
  40. data/ext/couchbase/protocol/client_response.hxx +1 -1
  41. data/ext/couchbase/protocol/cmd_hello.hxx +10 -0
  42. data/ext/couchbase/protocol/cmd_lookup_in.hxx +1 -0
  43. data/ext/couchbase/protocol/cmd_mutate_in.hxx +53 -5
  44. data/ext/couchbase/version.hxx +1 -1
  45. data/ext/extconf.rb +1 -1
  46. data/lib/couchbase/bucket.rb +3 -0
  47. data/lib/couchbase/cluster.rb +5 -0
  48. data/lib/couchbase/collection.rb +18 -6
  49. data/lib/couchbase/collection_options.rb +50 -7
  50. data/lib/couchbase/errors.rb +2 -2
  51. data/lib/couchbase/subdoc.rb +80 -19
  52. data/lib/couchbase/version.rb +1 -1
  53. metadata +7 -705
  54. data/ext/third_party/asio/asio/src/examples/cpp03/Makefile.am +0 -251
  55. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/.gitignore +0 -10
  56. data/ext/third_party/asio/asio/src/examples/cpp03/allocation/server.cpp +0 -285
  57. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/.gitignore +0 -10
  58. data/ext/third_party/asio/asio/src/examples/cpp03/buffers/reference_counted.cpp +0 -131
  59. data/ext/third_party/asio/asio/src/examples/cpp03/chat/.gitignore +0 -11
  60. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_client.cpp +0 -177
  61. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_message.hpp +0 -93
  62. data/ext/third_party/asio/asio/src/examples/cpp03/chat/chat_server.cpp +0 -249
  63. data/ext/third_party/asio/asio/src/examples/cpp03/chat/posix_chat_client.cpp +0 -204
  64. data/ext/third_party/asio/asio/src/examples/cpp03/echo/.gitignore +0 -11
  65. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_tcp_echo_server.cpp +0 -137
  66. data/ext/third_party/asio/asio/src/examples/cpp03/echo/async_udp_echo_server.cpp +0 -92
  67. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_client.cpp +0 -59
  68. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_tcp_echo_server.cpp +0 -79
  69. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_client.cpp +0 -59
  70. data/ext/third_party/asio/asio/src/examples/cpp03/echo/blocking_udp_echo_server.cpp +0 -53
  71. data/ext/third_party/asio/asio/src/examples/cpp03/fork/.gitignore +0 -11
  72. data/ext/third_party/asio/asio/src/examples/cpp03/fork/daemon.cpp +0 -190
  73. data/ext/third_party/asio/asio/src/examples/cpp03/fork/process_per_connection.cpp +0 -161
  74. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/.gitignore +0 -10
  75. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/async_client.cpp +0 -204
  76. data/ext/third_party/asio/asio/src/examples/cpp03/http/client/sync_client.cpp +0 -106
  77. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_1K.html +0 -28
  78. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_2K.html +0 -49
  79. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_4K.html +0 -91
  80. data/ext/third_party/asio/asio/src/examples/cpp03/http/doc_root/data_8K.html +0 -175
  81. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/.gitignore +0 -11
  82. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.cpp +0 -99
  83. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection.hpp +0 -83
  84. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.cpp +0 -38
  85. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/connection_manager.hpp +0 -44
  86. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/header.hpp +0 -28
  87. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/main.cpp +0 -44
  88. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.cpp +0 -46
  89. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/mime_types.hpp +0 -27
  90. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.cpp +0 -256
  91. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/reply.hpp +0 -64
  92. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request.hpp +0 -34
  93. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.cpp +0 -122
  94. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_handler.hpp +0 -46
  95. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.cpp +0 -315
  96. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/request_parser.hpp +0 -95
  97. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.cpp +0 -94
  98. data/ext/third_party/asio/asio/src/examples/cpp03/http/server/server.hpp +0 -69
  99. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/.gitignore +0 -11
  100. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.cpp +0 -93
  101. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/connection.hpp +0 -75
  102. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/header.hpp +0 -28
  103. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.cpp +0 -69
  104. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/io_context_pool.hpp +0 -58
  105. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/main.cpp +0 -46
  106. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.cpp +0 -46
  107. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/mime_types.hpp +0 -27
  108. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.cpp +0 -256
  109. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/reply.hpp +0 -64
  110. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request.hpp +0 -34
  111. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.cpp +0 -122
  112. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_handler.hpp +0 -46
  113. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.cpp +0 -315
  114. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/request_parser.hpp +0 -95
  115. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.cpp +0 -77
  116. data/ext/third_party/asio/asio/src/examples/cpp03/http/server2/server.hpp +0 -68
  117. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/.gitignore +0 -11
  118. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.cpp +0 -94
  119. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/connection.hpp +0 -78
  120. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/header.hpp +0 -28
  121. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/main.cpp +0 -46
  122. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.cpp +0 -46
  123. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/mime_types.hpp +0 -27
  124. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.cpp +0 -256
  125. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/reply.hpp +0 -64
  126. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request.hpp +0 -34
  127. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.cpp +0 -122
  128. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_handler.hpp +0 -46
  129. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.cpp +0 -315
  130. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/request_parser.hpp +0 -95
  131. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.cpp +0 -89
  132. data/ext/third_party/asio/asio/src/examples/cpp03/http/server3/server.hpp +0 -70
  133. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/.gitignore +0 -11
  134. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.cpp +0 -122
  135. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/file_handler.hpp +0 -44
  136. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/header.hpp +0 -28
  137. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/main.cpp +0 -58
  138. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.cpp +0 -46
  139. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/mime_types.hpp +0 -27
  140. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.cpp +0 -256
  141. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/reply.hpp +0 -64
  142. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request.hpp +0 -46
  143. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.cpp +0 -226
  144. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/request_parser.hpp +0 -78
  145. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.cpp +0 -122
  146. data/ext/third_party/asio/asio/src/examples/cpp03/http/server4/server.hpp +0 -73
  147. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/.gitignore +0 -10
  148. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/icmp_header.hpp +0 -94
  149. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ipv4_header.hpp +0 -102
  150. data/ext/third_party/asio/asio/src/examples/cpp03/icmp/ping.cpp +0 -163
  151. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/.gitignore +0 -10
  152. data/ext/third_party/asio/asio/src/examples/cpp03/invocation/prioritised_handlers.cpp +0 -171
  153. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/.gitignore +0 -11
  154. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_client.cpp +0 -44
  155. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/daytime_server.cpp +0 -51
  156. data/ext/third_party/asio/asio/src/examples/cpp03/iostreams/http_client.cpp +0 -91
  157. data/ext/third_party/asio/asio/src/examples/cpp03/local/.gitignore +0 -13
  158. data/ext/third_party/asio/asio/src/examples/cpp03/local/connect_pair.cpp +0 -141
  159. data/ext/third_party/asio/asio/src/examples/cpp03/local/iostream_client.cpp +0 -62
  160. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_client.cpp +0 -61
  161. data/ext/third_party/asio/asio/src/examples/cpp03/local/stream_server.cpp +0 -141
  162. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/.gitignore +0 -11
  163. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/receiver.cpp +0 -93
  164. data/ext/third_party/asio/asio/src/examples/cpp03/multicast/sender.cpp +0 -98
  165. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/.gitignore +0 -10
  166. data/ext/third_party/asio/asio/src/examples/cpp03/nonblocking/third_party_lib.cpp +0 -240
  167. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/.gitignore +0 -11
  168. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/client.cpp +0 -192
  169. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/protocol.hpp +0 -156
  170. data/ext/third_party/asio/asio/src/examples/cpp03/porthopper/server.cpp +0 -187
  171. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/.gitignore +0 -11
  172. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/client.cpp +0 -125
  173. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/connection.hpp +0 -188
  174. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/server.cpp +0 -123
  175. data/ext/third_party/asio/asio/src/examples/cpp03/serialization/stock.hpp +0 -50
  176. data/ext/third_party/asio/asio/src/examples/cpp03/services/.gitignore +0 -11
  177. data/ext/third_party/asio/asio/src/examples/cpp03/services/basic_logger.hpp +0 -83
  178. data/ext/third_party/asio/asio/src/examples/cpp03/services/daytime_client.cpp +0 -97
  179. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger.hpp +0 -24
  180. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.cpp +0 -11
  181. data/ext/third_party/asio/asio/src/examples/cpp03/services/logger_service.hpp +0 -145
  182. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/.gitignore +0 -10
  183. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/socks4.hpp +0 -144
  184. data/ext/third_party/asio/asio/src/examples/cpp03/socks4/sync_client.cpp +0 -94
  185. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/.gitignore +0 -12
  186. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/echo_server.cpp +0 -122
  187. data/ext/third_party/asio/asio/src/examples/cpp03/spawn/parallel_grep.cpp +0 -89
  188. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/.gitignore +0 -11
  189. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/README +0 -8
  190. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/ca.pem +0 -49
  191. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/client.cpp +0 -157
  192. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/dh2048.pem +0 -8
  193. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.cpp +0 -170
  194. data/ext/third_party/asio/asio/src/examples/cpp03/ssl/server.pem +0 -71
  195. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/.gitignore +0 -11
  196. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/async_tcp_client.cpp +0 -311
  197. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_tcp_client.cpp +0 -191
  198. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_token_tcp_client.cpp +0 -200
  199. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/blocking_udp_client.cpp +0 -154
  200. data/ext/third_party/asio/asio/src/examples/cpp03/timeouts/server.cpp +0 -433
  201. data/ext/third_party/asio/asio/src/examples/cpp03/timers/.gitignore +0 -10
  202. data/ext/third_party/asio/asio/src/examples/cpp03/timers/time_t_timer.cpp +0 -106
  203. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/.gitignore +0 -10
  204. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime1/client.cpp +0 -57
  205. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/.gitignore +0 -10
  206. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime2/server.cpp +0 -50
  207. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/.gitignore +0 -10
  208. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime3/server.cpp +0 -119
  209. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/.gitignore +0 -10
  210. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime4/client.cpp +0 -52
  211. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/.gitignore +0 -10
  212. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime5/server.cpp +0 -53
  213. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/.gitignore +0 -10
  214. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime6/server.cpp +0 -89
  215. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/.gitignore +0 -10
  216. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime7/server.cpp +0 -160
  217. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/daytime_dox.txt +0 -500
  218. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/index_dox.txt +0 -48
  219. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/.gitignore +0 -10
  220. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer1/timer.cpp +0 -24
  221. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/.gitignore +0 -10
  222. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer2/timer.cpp +0 -29
  223. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/.gitignore +0 -10
  224. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer3/timer.cpp +0 -43
  225. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/.gitignore +0 -10
  226. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer4/timer.cpp +0 -54
  227. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/.gitignore +0 -10
  228. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer5/timer.cpp +0 -80
  229. data/ext/third_party/asio/asio/src/examples/cpp03/tutorial/timer_dox.txt +0 -378
  230. data/ext/third_party/asio/asio/src/examples/cpp03/windows/.gitignore +0 -10
  231. data/ext/third_party/asio/asio/src/examples/cpp03/windows/transmit_file.cpp +0 -177
  232. data/ext/third_party/asio/asio/src/examples/cpp11/Makefile.am +0 -161
  233. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/.gitignore +0 -10
  234. data/ext/third_party/asio/asio/src/examples/cpp11/allocation/server.cpp +0 -255
  235. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/.gitignore +0 -10
  236. data/ext/third_party/asio/asio/src/examples/cpp11/buffers/reference_counted.cpp +0 -122
  237. data/ext/third_party/asio/asio/src/examples/cpp11/chat/.gitignore +0 -11
  238. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_client.cpp +0 -167
  239. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_message.hpp +0 -91
  240. data/ext/third_party/asio/asio/src/examples/cpp11/chat/chat_server.cpp +0 -227
  241. data/ext/third_party/asio/asio/src/examples/cpp11/echo/.gitignore +0 -11
  242. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_tcp_echo_server.cpp +0 -114
  243. data/ext/third_party/asio/asio/src/examples/cpp11/echo/async_udp_echo_server.cpp +0 -82
  244. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_client.cpp +0 -55
  245. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_tcp_echo_server.cpp +0 -74
  246. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_client.cpp +0 -58
  247. data/ext/third_party/asio/asio/src/examples/cpp11/echo/blocking_udp_echo_server.cpp +0 -52
  248. data/ext/third_party/asio/asio/src/examples/cpp11/executors/.gitignore +0 -5
  249. data/ext/third_party/asio/asio/src/examples/cpp11/executors/actor.cpp +0 -286
  250. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_1.cpp +0 -54
  251. data/ext/third_party/asio/asio/src/examples/cpp11/executors/bank_account_2.cpp +0 -54
  252. data/ext/third_party/asio/asio/src/examples/cpp11/executors/fork_join.cpp +0 -328
  253. data/ext/third_party/asio/asio/src/examples/cpp11/executors/pipeline.cpp +0 -299
  254. data/ext/third_party/asio/asio/src/examples/cpp11/executors/priority_scheduler.cpp +0 -174
  255. data/ext/third_party/asio/asio/src/examples/cpp11/fork/.gitignore +0 -11
  256. data/ext/third_party/asio/asio/src/examples/cpp11/fork/daemon.cpp +0 -189
  257. data/ext/third_party/asio/asio/src/examples/cpp11/fork/process_per_connection.cpp +0 -162
  258. data/ext/third_party/asio/asio/src/examples/cpp11/futures/.gitignore +0 -11
  259. data/ext/third_party/asio/asio/src/examples/cpp11/futures/daytime_client.cpp +0 -94
  260. data/ext/third_party/asio/asio/src/examples/cpp11/handler_tracking/custom_tracking.hpp +0 -201
  261. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/.gitignore +0 -11
  262. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.cpp +0 -94
  263. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection.hpp +0 -79
  264. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.cpp +0 -40
  265. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/connection_manager.hpp +0 -48
  266. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/header.hpp +0 -28
  267. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/main.cpp +0 -43
  268. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.cpp +0 -45
  269. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/mime_types.hpp +0 -27
  270. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.cpp +0 -255
  271. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/reply.hpp +0 -64
  272. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request.hpp +0 -34
  273. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.cpp +0 -121
  274. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_handler.hpp +0 -47
  275. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.cpp +0 -315
  276. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/request_parser.hpp +0 -96
  277. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.cpp +0 -94
  278. data/ext/third_party/asio/asio/src/examples/cpp11/http/server/server.hpp +0 -64
  279. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/.gitignore +0 -10
  280. data/ext/third_party/asio/asio/src/examples/cpp11/invocation/prioritised_handlers.cpp +0 -202
  281. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/.gitignore +0 -11
  282. data/ext/third_party/asio/asio/src/examples/cpp11/iostreams/http_client.cpp +0 -91
  283. data/ext/third_party/asio/asio/src/examples/cpp11/local/.gitignore +0 -13
  284. data/ext/third_party/asio/asio/src/examples/cpp11/local/connect_pair.cpp +0 -129
  285. data/ext/third_party/asio/asio/src/examples/cpp11/local/iostream_client.cpp +0 -61
  286. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_client.cpp +0 -60
  287. data/ext/third_party/asio/asio/src/examples/cpp11/local/stream_server.cpp +0 -121
  288. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/.gitignore +0 -11
  289. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/receiver.cpp +0 -88
  290. data/ext/third_party/asio/asio/src/examples/cpp11/multicast/sender.cpp +0 -91
  291. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/.gitignore +0 -10
  292. data/ext/third_party/asio/asio/src/examples/cpp11/nonblocking/third_party_lib.cpp +0 -212
  293. data/ext/third_party/asio/asio/src/examples/cpp11/operations/.gitignore +0 -10
  294. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_1.cpp +0 -113
  295. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_2.cpp +0 -131
  296. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_3.cpp +0 -192
  297. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_4.cpp +0 -207
  298. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_5.cpp +0 -243
  299. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_6.cpp +0 -302
  300. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_7.cpp +0 -222
  301. data/ext/third_party/asio/asio/src/examples/cpp11/operations/composed_8.cpp +0 -217
  302. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/.gitignore +0 -10
  303. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/socks4.hpp +0 -143
  304. data/ext/third_party/asio/asio/src/examples/cpp11/socks4/sync_client.cpp +0 -93
  305. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/.gitignore +0 -12
  306. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/echo_server.cpp +0 -111
  307. data/ext/third_party/asio/asio/src/examples/cpp11/spawn/parallel_grep.cpp +0 -84
  308. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/.gitignore +0 -11
  309. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/README +0 -8
  310. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/ca.pem +0 -49
  311. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/client.cpp +0 -165
  312. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/dh2048.pem +0 -8
  313. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.cpp +0 -143
  314. data/ext/third_party/asio/asio/src/examples/cpp11/ssl/server.pem +0 -71
  315. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/.gitignore +0 -11
  316. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/async_tcp_client.cpp +0 -311
  317. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_tcp_client.cpp +0 -192
  318. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_token_tcp_client.cpp +0 -197
  319. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/blocking_udp_client.cpp +0 -155
  320. data/ext/third_party/asio/asio/src/examples/cpp11/timeouts/server.cpp +0 -433
  321. data/ext/third_party/asio/asio/src/examples/cpp11/timers/.gitignore +0 -10
  322. data/ext/third_party/asio/asio/src/examples/cpp11/timers/time_t_timer.cpp +0 -106
  323. data/ext/third_party/asio/asio/src/examples/cpp14/Makefile.am +0 -64
  324. data/ext/third_party/asio/asio/src/examples/cpp14/echo/.gitignore +0 -11
  325. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_tcp_echo_server.cpp +0 -117
  326. data/ext/third_party/asio/asio/src/examples/cpp14/echo/async_udp_echo_server.cpp +0 -83
  327. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_client.cpp +0 -55
  328. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_tcp_echo_server.cpp +0 -77
  329. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_client.cpp +0 -59
  330. data/ext/third_party/asio/asio/src/examples/cpp14/echo/blocking_udp_echo_server.cpp +0 -53
  331. data/ext/third_party/asio/asio/src/examples/cpp14/executors/.gitignore +0 -6
  332. data/ext/third_party/asio/asio/src/examples/cpp14/executors/actor.cpp +0 -281
  333. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_1.cpp +0 -47
  334. data/ext/third_party/asio/asio/src/examples/cpp14/executors/async_2.cpp +0 -68
  335. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_1.cpp +0 -54
  336. data/ext/third_party/asio/asio/src/examples/cpp14/executors/bank_account_2.cpp +0 -53
  337. data/ext/third_party/asio/asio/src/examples/cpp14/executors/fork_join.cpp +0 -327
  338. data/ext/third_party/asio/asio/src/examples/cpp14/executors/pipeline.cpp +0 -294
  339. data/ext/third_party/asio/asio/src/examples/cpp14/executors/priority_scheduler.cpp +0 -173
  340. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/.gitignore +0 -11
  341. data/ext/third_party/asio/asio/src/examples/cpp14/iostreams/http_client.cpp +0 -91
  342. data/ext/third_party/asio/asio/src/examples/cpp14/operations/.gitignore +0 -10
  343. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_1.cpp +0 -113
  344. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_2.cpp +0 -131
  345. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_3.cpp +0 -186
  346. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_4.cpp +0 -201
  347. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_5.cpp +0 -238
  348. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_6.cpp +0 -298
  349. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_7.cpp +0 -219
  350. data/ext/third_party/asio/asio/src/examples/cpp14/operations/composed_8.cpp +0 -212
  351. data/ext/third_party/asio/asio/src/examples/cpp17/Makefile.am +0 -8
  352. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/chat_server.cpp +0 -225
  353. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server.cpp +0 -76
  354. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp +0 -78
  355. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/range_based_for.cpp +0 -107
  356. data/ext/third_party/asio/asio/src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp +0 -85
  357. data/ext/third_party/asio/asio/src/tests/.gitignore +0 -11
  358. data/ext/third_party/asio/asio/src/tests/Makefile.am +0 -432
  359. data/ext/third_party/asio/asio/src/tests/latency/.gitignore +0 -11
  360. data/ext/third_party/asio/asio/src/tests/latency/allocator.hpp +0 -52
  361. data/ext/third_party/asio/asio/src/tests/latency/high_res_clock.hpp +0 -53
  362. data/ext/third_party/asio/asio/src/tests/latency/tcp_client.cpp +0 -124
  363. data/ext/third_party/asio/asio/src/tests/latency/tcp_server.cpp +0 -114
  364. data/ext/third_party/asio/asio/src/tests/latency/udp_client.cpp +0 -104
  365. data/ext/third_party/asio/asio/src/tests/latency/udp_server.cpp +0 -125
  366. data/ext/third_party/asio/asio/src/tests/performance/.gitignore +0 -11
  367. data/ext/third_party/asio/asio/src/tests/performance/client.cpp +0 -286
  368. data/ext/third_party/asio/asio/src/tests/performance/handler_allocator.hpp +0 -112
  369. data/ext/third_party/asio/asio/src/tests/performance/server.cpp +0 -233
  370. data/ext/third_party/asio/asio/src/tests/unit/.gitignore +0 -75
  371. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_ops.hpp +0 -415
  372. data/ext/third_party/asio/asio/src/tests/unit/archetypes/async_result.hpp +0 -94
  373. data/ext/third_party/asio/asio/src/tests/unit/archetypes/gettable_socket_option.hpp +0 -54
  374. data/ext/third_party/asio/asio/src/tests/unit/archetypes/io_control_command.hpp +0 -32
  375. data/ext/third_party/asio/asio/src/tests/unit/archetypes/settable_socket_option.hpp +0 -49
  376. data/ext/third_party/asio/asio/src/tests/unit/associated_allocator.cpp +0 -25
  377. data/ext/third_party/asio/asio/src/tests/unit/associated_executor.cpp +0 -25
  378. data/ext/third_party/asio/asio/src/tests/unit/async_result.cpp +0 -25
  379. data/ext/third_party/asio/asio/src/tests/unit/awaitable.cpp +0 -25
  380. data/ext/third_party/asio/asio/src/tests/unit/basic_datagram_socket.cpp +0 -25
  381. data/ext/third_party/asio/asio/src/tests/unit/basic_deadline_timer.cpp +0 -25
  382. data/ext/third_party/asio/asio/src/tests/unit/basic_raw_socket.cpp +0 -25
  383. data/ext/third_party/asio/asio/src/tests/unit/basic_seq_packet_socket.cpp +0 -25
  384. data/ext/third_party/asio/asio/src/tests/unit/basic_serial_port.cpp +0 -26
  385. data/ext/third_party/asio/asio/src/tests/unit/basic_signal_set.cpp +0 -25
  386. data/ext/third_party/asio/asio/src/tests/unit/basic_socket.cpp +0 -25
  387. data/ext/third_party/asio/asio/src/tests/unit/basic_socket_acceptor.cpp +0 -25
  388. data/ext/third_party/asio/asio/src/tests/unit/basic_stream_socket.cpp +0 -25
  389. data/ext/third_party/asio/asio/src/tests/unit/basic_streambuf.cpp +0 -25
  390. data/ext/third_party/asio/asio/src/tests/unit/basic_waitable_timer.cpp +0 -25
  391. data/ext/third_party/asio/asio/src/tests/unit/bind_executor.cpp +0 -25
  392. data/ext/third_party/asio/asio/src/tests/unit/buffer.cpp +0 -830
  393. data/ext/third_party/asio/asio/src/tests/unit/buffered_read_stream.cpp +0 -338
  394. data/ext/third_party/asio/asio/src/tests/unit/buffered_stream.cpp +0 -364
  395. data/ext/third_party/asio/asio/src/tests/unit/buffered_write_stream.cpp +0 -353
  396. data/ext/third_party/asio/asio/src/tests/unit/buffers_iterator.cpp +0 -292
  397. data/ext/third_party/asio/asio/src/tests/unit/co_spawn.cpp +0 -25
  398. data/ext/third_party/asio/asio/src/tests/unit/completion_condition.cpp +0 -25
  399. data/ext/third_party/asio/asio/src/tests/unit/compose.cpp +0 -185
  400. data/ext/third_party/asio/asio/src/tests/unit/connect.cpp +0 -1190
  401. data/ext/third_party/asio/asio/src/tests/unit/coroutine.cpp +0 -112
  402. data/ext/third_party/asio/asio/src/tests/unit/deadline_timer.cpp +0 -392
  403. data/ext/third_party/asio/asio/src/tests/unit/defer.cpp +0 -25
  404. data/ext/third_party/asio/asio/src/tests/unit/detached.cpp +0 -25
  405. data/ext/third_party/asio/asio/src/tests/unit/dispatch.cpp +0 -25
  406. data/ext/third_party/asio/asio/src/tests/unit/error.cpp +0 -89
  407. data/ext/third_party/asio/asio/src/tests/unit/execution_context.cpp +0 -25
  408. data/ext/third_party/asio/asio/src/tests/unit/executor.cpp +0 -25
  409. data/ext/third_party/asio/asio/src/tests/unit/executor_work_guard.cpp +0 -25
  410. data/ext/third_party/asio/asio/src/tests/unit/generic/.gitignore +0 -14
  411. data/ext/third_party/asio/asio/src/tests/unit/generic/basic_endpoint.cpp +0 -25
  412. data/ext/third_party/asio/asio/src/tests/unit/generic/datagram_protocol.cpp +0 -263
  413. data/ext/third_party/asio/asio/src/tests/unit/generic/raw_protocol.cpp +0 -263
  414. data/ext/third_party/asio/asio/src/tests/unit/generic/seq_packet_protocol.cpp +0 -205
  415. data/ext/third_party/asio/asio/src/tests/unit/generic/stream_protocol.cpp +0 -248
  416. data/ext/third_party/asio/asio/src/tests/unit/high_resolution_timer.cpp +0 -30
  417. data/ext/third_party/asio/asio/src/tests/unit/io_context.cpp +0 -362
  418. data/ext/third_party/asio/asio/src/tests/unit/io_context_strand.cpp +0 -325
  419. data/ext/third_party/asio/asio/src/tests/unit/ip/.gitignore +0 -27
  420. data/ext/third_party/asio/asio/src/tests/unit/ip/address.cpp +0 -144
  421. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_endpoint.cpp +0 -25
  422. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver.cpp +0 -25
  423. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_entry.cpp +0 -25
  424. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_iterator.cpp +0 -25
  425. data/ext/third_party/asio/asio/src/tests/unit/ip/basic_resolver_query.cpp +0 -25
  426. data/ext/third_party/asio/asio/src/tests/unit/ip/host_name.cpp +0 -55
  427. data/ext/third_party/asio/asio/src/tests/unit/ip/icmp.cpp +0 -577
  428. data/ext/third_party/asio/asio/src/tests/unit/ip/multicast.cpp +0 -363
  429. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v4.cpp +0 -314
  430. data/ext/third_party/asio/asio/src/tests/unit/ip/network_v6.cpp +0 -238
  431. data/ext/third_party/asio/asio/src/tests/unit/ip/resolver_query_base.cpp +0 -25
  432. data/ext/third_party/asio/asio/src/tests/unit/ip/tcp.cpp +0 -1346
  433. data/ext/third_party/asio/asio/src/tests/unit/ip/udp.cpp +0 -673
  434. data/ext/third_party/asio/asio/src/tests/unit/ip/unicast.cpp +0 -171
  435. data/ext/third_party/asio/asio/src/tests/unit/ip/v6_only.cpp +0 -135
  436. data/ext/third_party/asio/asio/src/tests/unit/is_read_buffered.cpp +0 -129
  437. data/ext/third_party/asio/asio/src/tests/unit/is_write_buffered.cpp +0 -129
  438. data/ext/third_party/asio/asio/src/tests/unit/local/.gitignore +0 -13
  439. data/ext/third_party/asio/asio/src/tests/unit/local/basic_endpoint.cpp +0 -25
  440. data/ext/third_party/asio/asio/src/tests/unit/local/connect_pair.cpp +0 -76
  441. data/ext/third_party/asio/asio/src/tests/unit/local/datagram_protocol.cpp +0 -242
  442. data/ext/third_party/asio/asio/src/tests/unit/local/stream_protocol.cpp +0 -219
  443. data/ext/third_party/asio/asio/src/tests/unit/packaged_task.cpp +0 -25
  444. data/ext/third_party/asio/asio/src/tests/unit/placeholders.cpp +0 -25
  445. data/ext/third_party/asio/asio/src/tests/unit/posix/.gitignore +0 -14
  446. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_descriptor.cpp +0 -25
  447. data/ext/third_party/asio/asio/src/tests/unit/posix/basic_stream_descriptor.cpp +0 -25
  448. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor.cpp +0 -25
  449. data/ext/third_party/asio/asio/src/tests/unit/posix/descriptor_base.cpp +0 -25
  450. data/ext/third_party/asio/asio/src/tests/unit/posix/stream_descriptor.cpp +0 -183
  451. data/ext/third_party/asio/asio/src/tests/unit/post.cpp +0 -25
  452. data/ext/third_party/asio/asio/src/tests/unit/read.cpp +0 -4997
  453. data/ext/third_party/asio/asio/src/tests/unit/read_at.cpp +0 -7502
  454. data/ext/third_party/asio/asio/src/tests/unit/read_until.cpp +0 -1658
  455. data/ext/third_party/asio/asio/src/tests/unit/redirect_error.cpp +0 -25
  456. data/ext/third_party/asio/asio/src/tests/unit/serial_port.cpp +0 -173
  457. data/ext/third_party/asio/asio/src/tests/unit/serial_port_base.cpp +0 -99
  458. data/ext/third_party/asio/asio/src/tests/unit/signal_set.cpp +0 -95
  459. data/ext/third_party/asio/asio/src/tests/unit/socket_base.cpp +0 -650
  460. data/ext/third_party/asio/asio/src/tests/unit/ssl/.gitignore +0 -15
  461. data/ext/third_party/asio/asio/src/tests/unit/ssl/context.cpp +0 -25
  462. data/ext/third_party/asio/asio/src/tests/unit/ssl/context_base.cpp +0 -25
  463. data/ext/third_party/asio/asio/src/tests/unit/ssl/error.cpp +0 -25
  464. data/ext/third_party/asio/asio/src/tests/unit/ssl/host_name_verification.cpp +0 -25
  465. data/ext/third_party/asio/asio/src/tests/unit/ssl/rfc2818_verification.cpp +0 -25
  466. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream.cpp +0 -191
  467. data/ext/third_party/asio/asio/src/tests/unit/ssl/stream_base.cpp +0 -25
  468. data/ext/third_party/asio/asio/src/tests/unit/steady_timer.cpp +0 -30
  469. data/ext/third_party/asio/asio/src/tests/unit/strand.cpp +0 -263
  470. data/ext/third_party/asio/asio/src/tests/unit/streambuf.cpp +0 -62
  471. data/ext/third_party/asio/asio/src/tests/unit/system_context.cpp +0 -30
  472. data/ext/third_party/asio/asio/src/tests/unit/system_executor.cpp +0 -30
  473. data/ext/third_party/asio/asio/src/tests/unit/system_timer.cpp +0 -399
  474. data/ext/third_party/asio/asio/src/tests/unit/this_coro.cpp +0 -25
  475. data/ext/third_party/asio/asio/src/tests/unit/thread.cpp +0 -25
  476. data/ext/third_party/asio/asio/src/tests/unit/time_traits.cpp +0 -25
  477. data/ext/third_party/asio/asio/src/tests/unit/ts/.gitignore +0 -17
  478. data/ext/third_party/asio/asio/src/tests/unit/ts/buffer.cpp +0 -30
  479. data/ext/third_party/asio/asio/src/tests/unit/ts/executor.cpp +0 -30
  480. data/ext/third_party/asio/asio/src/tests/unit/ts/internet.cpp +0 -30
  481. data/ext/third_party/asio/asio/src/tests/unit/ts/io_context.cpp +0 -30
  482. data/ext/third_party/asio/asio/src/tests/unit/ts/net.cpp +0 -30
  483. data/ext/third_party/asio/asio/src/tests/unit/ts/netfwd.cpp +0 -33
  484. data/ext/third_party/asio/asio/src/tests/unit/ts/socket.cpp +0 -30
  485. data/ext/third_party/asio/asio/src/tests/unit/ts/timer.cpp +0 -30
  486. data/ext/third_party/asio/asio/src/tests/unit/unit_test.hpp +0 -175
  487. data/ext/third_party/asio/asio/src/tests/unit/use_awaitable.cpp +0 -25
  488. data/ext/third_party/asio/asio/src/tests/unit/use_future.cpp +0 -670
  489. data/ext/third_party/asio/asio/src/tests/unit/uses_executor.cpp +0 -25
  490. data/ext/third_party/asio/asio/src/tests/unit/wait_traits.cpp +0 -25
  491. data/ext/third_party/asio/asio/src/tests/unit/windows/.gitignore +0 -18
  492. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_object_handle.cpp +0 -25
  493. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_overlapped_handle.cpp +0 -25
  494. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_random_access_handle.cpp +0 -25
  495. data/ext/third_party/asio/asio/src/tests/unit/windows/basic_stream_handle.cpp +0 -25
  496. data/ext/third_party/asio/asio/src/tests/unit/windows/object_handle.cpp +0 -130
  497. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_handle.cpp +0 -26
  498. data/ext/third_party/asio/asio/src/tests/unit/windows/overlapped_ptr.cpp +0 -107
  499. data/ext/third_party/asio/asio/src/tests/unit/windows/random_access_handle.cpp +0 -155
  500. data/ext/third_party/asio/asio/src/tests/unit/windows/stream_handle.cpp +0 -148
  501. data/ext/third_party/asio/asio/src/tests/unit/write.cpp +0 -4904
  502. data/ext/third_party/asio/asio/src/tests/unit/write_at.cpp +0 -7563
  503. data/ext/third_party/asio/asio/src/tools/handlerviz.pl +0 -299
  504. data/ext/third_party/gsl/tests/CMakeLists.txt +0 -267
  505. data/ext/third_party/gsl/tests/CMakeLists.txt.in +0 -14
  506. data/ext/third_party/gsl/tests/algorithm_tests.cpp +0 -227
  507. data/ext/third_party/gsl/tests/assertion_tests.cpp +0 -61
  508. data/ext/third_party/gsl/tests/at_tests.cpp +0 -135
  509. data/ext/third_party/gsl/tests/bounds_tests.cpp +0 -102
  510. data/ext/third_party/gsl/tests/byte_tests.cpp +0 -129
  511. data/ext/third_party/gsl/tests/multi_span_tests.cpp +0 -1866
  512. data/ext/third_party/gsl/tests/no_exception_ensure_tests.cpp +0 -48
  513. data/ext/third_party/gsl/tests/notnull_tests.cpp +0 -535
  514. data/ext/third_party/gsl/tests/owner_tests.cpp +0 -43
  515. data/ext/third_party/gsl/tests/span_compatibility_tests.cpp +0 -1021
  516. data/ext/third_party/gsl/tests/span_ext_tests.cpp +0 -360
  517. data/ext/third_party/gsl/tests/span_tests.cpp +0 -1244
  518. data/ext/third_party/gsl/tests/strict_notnull_tests.cpp +0 -190
  519. data/ext/third_party/gsl/tests/strided_span_tests.cpp +0 -790
  520. data/ext/third_party/gsl/tests/string_span_tests.cpp +0 -1217
  521. data/ext/third_party/gsl/tests/utils_tests.cpp +0 -129
  522. data/ext/third_party/http_parser/contrib/parsertrace.c +0 -157
  523. data/ext/third_party/http_parser/contrib/url_parser.c +0 -47
  524. data/ext/third_party/http_parser/fuzzers/fuzz_parser.c +0 -26
  525. data/ext/third_party/http_parser/fuzzers/fuzz_url.c +0 -14
  526. data/ext/third_party/json/contrib/nlohmann.cpp +0 -48
  527. data/ext/third_party/json/contrib/nlohmann/from_value.hpp +0 -62
  528. data/ext/third_party/json/contrib/nlohmann/json.hpp +0 -18928
  529. data/ext/third_party/json/contrib/nlohmann/to_value.hpp +0 -109
  530. data/ext/third_party/json/doc/Advanced-Use-Cases.md +0 -83
  531. data/ext/third_party/json/doc/Batteries-Included.md +0 -212
  532. data/ext/third_party/json/doc/Binding-Traits.md +0 -319
  533. data/ext/third_party/json/doc/Changelog.md +0 -31
  534. data/ext/third_party/json/doc/Common-Use-Cases.md +0 -148
  535. data/ext/third_party/json/doc/Design-Decisions.md +0 -36
  536. data/ext/third_party/json/doc/Events-Interface.md +0 -140
  537. data/ext/third_party/json/doc/Getting-Started.md +0 -19
  538. data/ext/third_party/json/doc/Instance-Sharing.md +0 -163
  539. data/ext/third_party/json/doc/Interoperability.md +0 -75
  540. data/ext/third_party/json/doc/Overview.md +0 -24
  541. data/ext/third_party/json/doc/Overview.png +0 -0
  542. data/ext/third_party/json/doc/Parser-Interface.md +0 -84
  543. data/ext/third_party/json/doc/README.md +0 -78
  544. data/ext/third_party/json/doc/Scratchpad.md +0 -25
  545. data/ext/third_party/json/doc/Type-Traits.md +0 -364
  546. data/ext/third_party/json/doc/Types.png +0 -0
  547. data/ext/third_party/json/doc/Value-Class.md +0 -525
  548. data/ext/third_party/json/src/example/json/CMakeLists.txt +0 -67
  549. data/ext/third_party/json/src/example/json/cbor_to_jaxn.cpp +0 -18
  550. data/ext/third_party/json/src/example/json/cbor_to_json.cpp +0 -18
  551. data/ext/third_party/json/src/example/json/cbor_to_msgpack.cpp +0 -18
  552. data/ext/third_party/json/src/example/json/cbor_to_pretty_jaxn.cpp +0 -18
  553. data/ext/third_party/json/src/example/json/cbor_to_pretty_json.cpp +0 -18
  554. data/ext/third_party/json/src/example/json/cbor_to_ubjson.cpp +0 -18
  555. data/ext/third_party/json/src/example/json/jaxn_to_cbor.cpp +0 -18
  556. data/ext/third_party/json/src/example/json/jaxn_to_cplusplus.cpp +0 -249
  557. data/ext/third_party/json/src/example/json/jaxn_to_jaxn.cpp +0 -18
  558. data/ext/third_party/json/src/example/json/jaxn_to_msgpack.cpp +0 -18
  559. data/ext/third_party/json/src/example/json/jaxn_to_pretty_jaxn.cpp +0 -18
  560. data/ext/third_party/json/src/example/json/jaxn_to_ubjson.cpp +0 -18
  561. data/ext/third_party/json/src/example/json/json_to_cbor.cpp +0 -18
  562. data/ext/third_party/json/src/example/json/json_to_json.cpp +0 -18
  563. data/ext/third_party/json/src/example/json/json_to_msgpack.cpp +0 -18
  564. data/ext/third_party/json/src/example/json/json_to_pretty_json.cpp +0 -18
  565. data/ext/third_party/json/src/example/json/json_to_ubjson.cpp +0 -18
  566. data/ext/third_party/json/src/example/json/msgpack_to_cbor.cpp +0 -18
  567. data/ext/third_party/json/src/example/json/msgpack_to_jaxn.cpp +0 -18
  568. data/ext/third_party/json/src/example/json/msgpack_to_json.cpp +0 -18
  569. data/ext/third_party/json/src/example/json/msgpack_to_pretty_jaxn.cpp +0 -18
  570. data/ext/third_party/json/src/example/json/msgpack_to_pretty_json.cpp +0 -18
  571. data/ext/third_party/json/src/example/json/msgpack_to_ubjson.cpp +0 -18
  572. data/ext/third_party/json/src/example/json/printf_doubles.cpp +0 -51
  573. data/ext/third_party/json/src/example/json/ubjson_to_cbor.cpp +0 -18
  574. data/ext/third_party/json/src/example/json/ubjson_to_jaxn.cpp +0 -18
  575. data/ext/third_party/json/src/example/json/ubjson_to_json.cpp +0 -18
  576. data/ext/third_party/json/src/example/json/ubjson_to_msgpack.cpp +0 -18
  577. data/ext/third_party/json/src/example/json/ubjson_to_pretty_jaxn.cpp +0 -18
  578. data/ext/third_party/json/src/example/json/ubjson_to_pretty_json.cpp +0 -18
  579. data/ext/third_party/json/src/example/json/validate_event_order.cpp +0 -27
  580. data/ext/third_party/json/src/example/json/validate_integer.cpp +0 -56
  581. data/ext/third_party/json/src/perf/json/bench_mark.hpp +0 -43
  582. data/ext/third_party/json/src/perf/json/benchmark.cpp +0 -34
  583. data/ext/third_party/json/src/perf/json/parse_file.cpp +0 -17
  584. data/ext/third_party/json/src/perf/json/pretty_print_file.cpp +0 -19
  585. data/ext/third_party/json/src/perf/json/print_double.cpp +0 -34
  586. data/ext/third_party/json/src/perf/json/print_file.cpp +0 -19
  587. data/ext/third_party/json/src/perf/json/sizes.cpp +0 -24
  588. data/ext/third_party/json/src/perf/json/syntax_only.cpp +0 -27
  589. data/ext/third_party/json/src/test/json/CMakeLists.txt +0 -97
  590. data/ext/third_party/json/src/test/json/big_list_of_naughty_strings.cpp +0 -43
  591. data/ext/third_party/json/src/test/json/binding_array.cpp +0 -549
  592. data/ext/third_party/json/src/test/json/binding_factory.cpp +0 -265
  593. data/ext/third_party/json/src/test/json/binding_object.cpp +0 -208
  594. data/ext/third_party/json/src/test/json/binding_versions.cpp +0 -95
  595. data/ext/third_party/json/src/test/json/cbor.cpp +0 -149
  596. data/ext/third_party/json/src/test/json/cbor_parts_parser.cpp +0 -36
  597. data/ext/third_party/json/src/test/json/contrib_diff.cpp +0 -43
  598. data/ext/third_party/json/src/test/json/contrib_get.cpp +0 -42
  599. data/ext/third_party/json/src/test/json/contrib_patch_add.cpp +0 -75
  600. data/ext/third_party/json/src/test/json/contrib_patch_copy.cpp +0 -113
  601. data/ext/third_party/json/src/test/json/contrib_patch_move.cpp +0 -97
  602. data/ext/third_party/json/src/test/json/contrib_patch_remove.cpp +0 -85
  603. data/ext/third_party/json/src/test/json/contrib_patch_replace.cpp +0 -79
  604. data/ext/third_party/json/src/test/json/contrib_patch_test.cpp +0 -69
  605. data/ext/third_party/json/src/test/json/contrib_position.cpp +0 -48
  606. data/ext/third_party/json/src/test/json/contrib_reference.cpp +0 -44
  607. data/ext/third_party/json/src/test/json/contrib_schema.cpp +0 -132
  608. data/ext/third_party/json/src/test/json/contrib_traits.cpp +0 -258
  609. data/ext/third_party/json/src/test/json/double.cpp +0 -182
  610. data/ext/third_party/json/src/test/json/enable_implicit_constructor.cpp +0 -54
  611. data/ext/third_party/json/src/test/json/escape.cpp +0 -42
  612. data/ext/third_party/json/src/test/json/events_binary_to.cpp +0 -56
  613. data/ext/third_party/json/src/test/json/events_compare.cpp +0 -433
  614. data/ext/third_party/json/src/test/json/events_debug.cpp +0 -24
  615. data/ext/third_party/json/src/test/json/events_hash.cpp +0 -65
  616. data/ext/third_party/json/src/test/json/events_to_stream.cpp +0 -28
  617. data/ext/third_party/json/src/test/json/events_to_string.cpp +0 -25
  618. data/ext/third_party/json/src/test/json/include_json.cpp +0 -14
  619. data/ext/third_party/json/src/test/json/integer.cpp +0 -118
  620. data/ext/third_party/json/src/test/json/jaxn_ostream.cpp +0 -76
  621. data/ext/third_party/json/src/test/json/jaxn_parse.cpp +0 -239
  622. data/ext/third_party/json/src/test/json/jaxn_parts_parser.cpp +0 -220
  623. data/ext/third_party/json/src/test/json/json_ostream.cpp +0 -102
  624. data/ext/third_party/json/src/test/json/json_parse.cpp +0 -153
  625. data/ext/third_party/json/src/test/json/json_parts_parser.cpp +0 -124
  626. data/ext/third_party/json/src/test/json/json_pointer.cpp +0 -176
  627. data/ext/third_party/json/src/test/json/key_camel_case_to_snake_case.cpp +0 -38
  628. data/ext/third_party/json/src/test/json/key_snake_case_to_camel_case.cpp +0 -33
  629. data/ext/third_party/json/src/test/json/literal.cpp +0 -18
  630. data/ext/third_party/json/src/test/json/main.hpp +0 -20
  631. data/ext/third_party/json/src/test/json/make_events.hpp +0 -362
  632. data/ext/third_party/json/src/test/json/msgpack.cpp +0 -136
  633. data/ext/third_party/json/src/test/json/object_construction.cpp +0 -167
  634. data/ext/third_party/json/src/test/json/opaque_pointer.cpp +0 -192
  635. data/ext/third_party/json/src/test/json/operators.cpp +0 -494
  636. data/ext/third_party/json/src/test/json/optional.cpp +0 -79
  637. data/ext/third_party/json/src/test/json/public_base.cpp +0 -142
  638. data/ext/third_party/json/src/test/json/self_contained.cpp +0 -106
  639. data/ext/third_party/json/src/test/json/sha256.cpp +0 -38
  640. data/ext/third_party/json/src/test/json/string_view.cpp +0 -70
  641. data/ext/third_party/json/src/test/json/temporary_parsing.cpp +0 -339
  642. data/ext/third_party/json/src/test/json/test.hpp +0 -74
  643. data/ext/third_party/json/src/test/json/test_events.hpp +0 -250
  644. data/ext/third_party/json/src/test/json/test_types.hpp +0 -557
  645. data/ext/third_party/json/src/test/json/test_unhex.hpp +0 -42
  646. data/ext/third_party/json/src/test/json/type.cpp +0 -35
  647. data/ext/third_party/json/src/test/json/ubjson.cpp +0 -119
  648. data/ext/third_party/json/src/test/json/uri_fragment.cpp +0 -52
  649. data/ext/third_party/json/src/test/json/validate_event_interfaces.cpp +0 -177
  650. data/ext/third_party/json/src/test/json/validate_utf8.cpp +0 -37
  651. data/ext/third_party/json/src/test/json/value_access.cpp +0 -144
  652. data/ext/third_party/json/src/test/json/value_basics.cpp +0 -241
  653. data/ext/third_party/json/src/test/json/value_create.cpp +0 -372
  654. data/ext/third_party/json/src/test/json/value_ptr.cpp +0 -33
  655. data/ext/third_party/json/src/test/json/value_subscript.cpp +0 -89
  656. data/ext/third_party/json/src/test/json/with_arguments.cpp +0 -98
  657. data/ext/third_party/json/tests/blns.json +0 -496
  658. data/ext/third_party/json/tests/canada.json +0 -9
  659. data/ext/third_party/json/tests/citm_catalog.json +0 -50469
  660. data/ext/third_party/json/tests/draft4/additionalItems.json +0 -82
  661. data/ext/third_party/json/tests/draft4/additionalProperties.json +0 -88
  662. data/ext/third_party/json/tests/draft4/allOf.json +0 -112
  663. data/ext/third_party/json/tests/draft4/anyOf.json +0 -68
  664. data/ext/third_party/json/tests/draft4/default.json +0 -49
  665. data/ext/third_party/json/tests/draft4/definitions.json +0 -32
  666. data/ext/third_party/json/tests/draft4/dependencies.json +0 -113
  667. data/ext/third_party/json/tests/draft4/enum.json +0 -72
  668. data/ext/third_party/json/tests/draft4/items.json +0 -46
  669. data/ext/third_party/json/tests/draft4/maxItems.json +0 -28
  670. data/ext/third_party/json/tests/draft4/maxLength.json +0 -33
  671. data/ext/third_party/json/tests/draft4/maxProperties.json +0 -28
  672. data/ext/third_party/json/tests/draft4/maximum.json +0 -42
  673. data/ext/third_party/json/tests/draft4/minItems.json +0 -28
  674. data/ext/third_party/json/tests/draft4/minLength.json +0 -33
  675. data/ext/third_party/json/tests/draft4/minProperties.json +0 -28
  676. data/ext/third_party/json/tests/draft4/minimum.json +0 -42
  677. data/ext/third_party/json/tests/draft4/multipleOf.json +0 -60
  678. data/ext/third_party/json/tests/draft4/not.json +0 -96
  679. data/ext/third_party/json/tests/draft4/oneOf.json +0 -68
  680. data/ext/third_party/json/tests/draft4/optional/bignum.json +0 -107
  681. data/ext/third_party/json/tests/draft4/optional/format.json +0 -148
  682. data/ext/third_party/json/tests/draft4/optional/zeroTerminatedFloats.json +0 -15
  683. data/ext/third_party/json/tests/draft4/pattern.json +0 -34
  684. data/ext/third_party/json/tests/draft4/patternProperties.json +0 -110
  685. data/ext/third_party/json/tests/draft4/properties.json +0 -92
  686. data/ext/third_party/json/tests/draft4/ref.json +0 -179
  687. data/ext/third_party/json/tests/draft4/refRemote.json +0 -74
  688. data/ext/third_party/json/tests/draft4/required.json +0 -44
  689. data/ext/third_party/json/tests/draft4/type.json +0 -345
  690. data/ext/third_party/json/tests/draft4/uniqueItems.json +0 -79
  691. data/ext/third_party/json/tests/taocpp/binary.jaxn +0 -4
  692. data/ext/third_party/json/tests/taocpp/dateTime.json +0 -108
  693. data/ext/third_party/json/tests/taocpp/make_events.cbor +0 -0
  694. data/ext/third_party/json/tests/taocpp/number.json +0 -682
  695. data/ext/third_party/json/tests/taocpp/position.json +0 -8
  696. data/ext/third_party/json/tests/taocpp/schema.json +0 -378
  697. data/ext/third_party/json/tests/twitter.json +0 -15482
  698. data/ext/third_party/snappy/testdata/alice29.txt +0 -3609
  699. data/ext/third_party/snappy/testdata/asyoulik.txt +0 -4122
  700. data/ext/third_party/snappy/testdata/baddata1.snappy +0 -0
  701. data/ext/third_party/snappy/testdata/baddata2.snappy +0 -0
  702. data/ext/third_party/snappy/testdata/baddata3.snappy +0 -0
  703. data/ext/third_party/snappy/testdata/fireworks.jpeg +0 -0
  704. data/ext/third_party/snappy/testdata/geo.protodata +0 -0
  705. data/ext/third_party/snappy/testdata/html +0 -1
  706. data/ext/third_party/snappy/testdata/html_x_4 +0 -1
  707. data/ext/third_party/snappy/testdata/kppkn.gtb +0 -0
  708. data/ext/third_party/snappy/testdata/lcet10.txt +0 -7519
  709. data/ext/third_party/snappy/testdata/paper-100k.pdf +2 -600
  710. data/ext/third_party/snappy/testdata/plrabn12.txt +0 -10699
  711. data/ext/third_party/snappy/testdata/urls.10K +0 -10000
  712. data/ext/third_party/spdlog/bench/CMakeLists.txt +0 -25
  713. data/ext/third_party/spdlog/bench/async_bench.cpp +0 -179
  714. data/ext/third_party/spdlog/bench/bench.cpp +0 -238
  715. data/ext/third_party/spdlog/bench/formatter-bench.cpp +0 -80
  716. data/ext/third_party/spdlog/bench/latency.cpp +0 -166
  717. data/ext/third_party/spdlog/bench/utils.h +0 -34
  718. data/ext/third_party/spdlog/example/CMakeLists.txt +0 -23
  719. data/ext/third_party/spdlog/example/example.cpp +0 -282
  720. data/ext/third_party/spdlog/logos/jetbrains-variant-4.svg +0 -43
  721. data/ext/third_party/spdlog/scripts/extract_version.py +0 -17
  722. data/ext/third_party/spdlog/scripts/format.sh +0 -16
  723. data/ext/third_party/spdlog/tests/CMakeLists.txt +0 -70
  724. data/ext/third_party/spdlog/tests/catch.hpp +0 -15372
  725. data/ext/third_party/spdlog/tests/catch.license +0 -23
  726. data/ext/third_party/spdlog/tests/includes.h +0 -26
  727. data/ext/third_party/spdlog/tests/main.cpp +0 -2
  728. data/ext/third_party/spdlog/tests/test_async.cpp +0 -188
  729. data/ext/third_party/spdlog/tests/test_backtrace.cpp +0 -65
  730. data/ext/third_party/spdlog/tests/test_cfg.cpp +0 -93
  731. data/ext/third_party/spdlog/tests/test_create_dir.cpp +0 -80
  732. data/ext/third_party/spdlog/tests/test_daily_logger.cpp +0 -149
  733. data/ext/third_party/spdlog/tests/test_dup_filter.cpp +0 -88
  734. data/ext/third_party/spdlog/tests/test_errors.cpp +0 -118
  735. data/ext/third_party/spdlog/tests/test_eventlog.cpp +0 -71
  736. data/ext/third_party/spdlog/tests/test_file_helper.cpp +0 -102
  737. data/ext/third_party/spdlog/tests/test_file_logging.cpp +0 -98
  738. data/ext/third_party/spdlog/tests/test_fmt_helper.cpp +0 -86
  739. data/ext/third_party/spdlog/tests/test_macros.cpp +0 -60
  740. data/ext/third_party/spdlog/tests/test_misc.cpp +0 -271
  741. data/ext/third_party/spdlog/tests/test_mpmc_q.cpp +0 -106
  742. data/ext/third_party/spdlog/tests/test_pattern_formatter.cpp +0 -443
  743. data/ext/third_party/spdlog/tests/test_registry.cpp +0 -116
  744. data/ext/third_party/spdlog/tests/test_sink.h +0 -79
  745. data/ext/third_party/spdlog/tests/test_stdout_api.cpp +0 -98
  746. data/ext/third_party/spdlog/tests/test_systemd.cpp +0 -15
  747. data/ext/third_party/spdlog/tests/test_time_point.cpp +0 -36
  748. data/ext/third_party/spdlog/tests/utils.cpp +0 -125
  749. data/ext/third_party/spdlog/tests/utils.h +0 -18
@@ -1,243 +0,0 @@
1
- //
2
- // composed_5.cpp
3
- // ~~~~~~~~~~~~~~
4
- //
5
- // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
- //
7
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
- //
10
-
11
- #include <asio/io_context.hpp>
12
- #include <asio/ip/tcp.hpp>
13
- #include <asio/use_future.hpp>
14
- #include <asio/write.hpp>
15
- #include <functional>
16
- #include <iostream>
17
- #include <memory>
18
- #include <sstream>
19
- #include <string>
20
- #include <type_traits>
21
- #include <utility>
22
-
23
- using asio::ip::tcp;
24
-
25
- // NOTE: This example requires the new asio::async_initiate function. For
26
- // an example that works with the Networking TS style of completion tokens,
27
- // please see an older version of asio.
28
-
29
- //------------------------------------------------------------------------------
30
-
31
- // This composed operation automatically serialises a message, using its I/O
32
- // streams insertion operator, before sending it on the socket. To do this, it
33
- // must allocate a buffer for the encoded message and ensure this buffer's
34
- // validity until the underlying async_write operation completes.
35
-
36
- // In addition to determining the mechanism by which an asynchronous operation
37
- // delivers its result, a completion token also determines the time when the
38
- // operation commences. For example, when the completion token is a simple
39
- // callback the operation commences before the initiating function returns.
40
- // However, if the completion token's delivery mechanism uses a future, we
41
- // might instead want to defer initiation of the operation until the returned
42
- // future object is waited upon.
43
- //
44
- // To enable this, when implementing an asynchronous operation we must package
45
- // the initiation step as a function object.
46
- struct async_write_message_initiation
47
- {
48
- // The initiation function object's call operator is passed the concrete
49
- // completion handler produced by the completion token. This completion
50
- // handler matches the asynchronous operation's completion handler signature,
51
- // which in this example is:
52
- //
53
- // void(std::error_code error)
54
- //
55
- // The initiation function object also receives any additional arguments
56
- // required to start the operation. (Note: We could have instead passed these
57
- // arguments as members in the initiaton function object. However, we should
58
- // prefer to propagate them as function call arguments as this allows the
59
- // completion token to optimise how they are passed. For example, a lazy
60
- // future which defers initiation would need to make a decay-copy of the
61
- // arguments, but when using a simple callback the arguments can be trivially
62
- // forwarded straight through.)
63
- template <typename CompletionHandler>
64
- void operator()(CompletionHandler&& completion_handler,
65
- tcp::socket& socket, std::unique_ptr<std::string> encoded_message) const
66
- {
67
- // In this example, the composed operation's intermediate completion
68
- // handler is implemented as a hand-crafted function object, rather than
69
- // using a lambda or std::bind.
70
- struct intermediate_completion_handler
71
- {
72
- // The intermediate completion handler holds a reference to the socket so
73
- // that it can obtain the I/O executor (see get_executor below).
74
- tcp::socket& socket_;
75
-
76
- // The allocated buffer for the encoded message. The std::unique_ptr
77
- // smart pointer is move-only, and as a consequence our intermediate
78
- // completion handler is also move-only.
79
- std::unique_ptr<std::string> encoded_message_;
80
-
81
- // The user-supplied completion handler.
82
- typename std::decay<CompletionHandler>::type handler_;
83
-
84
- // The function call operator matches the completion signature of the
85
- // async_write operation.
86
- void operator()(const std::error_code& error, std::size_t /*n*/)
87
- {
88
- // Deallocate the encoded message before calling the user-supplied
89
- // completion handler.
90
- encoded_message_.reset();
91
-
92
- // Call the user-supplied handler with the result of the operation.
93
- // The arguments must match the completion signature of our composed
94
- // operation.
95
- handler_(error);
96
- }
97
-
98
- // It is essential to the correctness of our composed operation that we
99
- // preserve the executor of the user-supplied completion handler. With a
100
- // hand-crafted function object we can do this by defining a nested type
101
- // executor_type and member function get_executor. These obtain the
102
- // completion handler's associated executor, and default to the I/O
103
- // executor - in this case the executor of the socket - if the completion
104
- // handler does not have its own.
105
- using executor_type = asio::associated_executor_t<
106
- typename std::decay<CompletionHandler>::type,
107
- tcp::socket::executor_type>;
108
-
109
- executor_type get_executor() const noexcept
110
- {
111
- return asio::get_associated_executor(
112
- handler_, socket_.get_executor());
113
- }
114
-
115
- // Although not necessary for correctness, we may also preserve the
116
- // allocator of the user-supplied completion handler. This is achieved by
117
- // defining a nested type allocator_type and member function
118
- // get_allocator. These obtain the completion handler's associated
119
- // allocator, and default to std::allocator<void> if the completion
120
- // handler does not have its own.
121
- using allocator_type = asio::associated_allocator_t<
122
- typename std::decay<CompletionHandler>::type,
123
- std::allocator<void>>;
124
-
125
- allocator_type get_allocator() const noexcept
126
- {
127
- return asio::get_associated_allocator(
128
- handler_, std::allocator<void>{});
129
- }
130
- };
131
-
132
- // Initiate the underlying async_write operation using our intermediate
133
- // completion handler.
134
- auto encoded_message_buffer = asio::buffer(*encoded_message);
135
- asio::async_write(socket, encoded_message_buffer,
136
- intermediate_completion_handler{socket, std::move(encoded_message),
137
- std::forward<CompletionHandler>(completion_handler)});
138
- }
139
- };
140
-
141
- template <typename T, typename CompletionToken>
142
- auto async_write_message(tcp::socket& socket,
143
- const T& message, CompletionToken&& token)
144
- // The return type of the initiating function is deduced from the combination
145
- // of CompletionToken type and the completion handler's signature. When the
146
- // completion token is a simple callback, the return type is always void.
147
- // In this example, when the completion token is asio::yield_context
148
- // (used for stackful coroutines) the return type would be also be void, as
149
- // there is no non-error argument to the completion handler. When the
150
- // completion token is asio::use_future it would be std::future<void>.
151
- -> typename asio::async_result<
152
- typename std::decay<CompletionToken>::type,
153
- void(std::error_code)>::return_type
154
- {
155
- // Encode the message and copy it into an allocated buffer. The buffer will
156
- // be maintained for the lifetime of the asynchronous operation.
157
- std::ostringstream os;
158
- os << message;
159
- std::unique_ptr<std::string> encoded_message(new std::string(os.str()));
160
-
161
- // The asio::async_initiate function takes:
162
- //
163
- // - our initiation function object,
164
- // - the completion token,
165
- // - the completion handler signature, and
166
- // - any additional arguments we need to initiate the operation.
167
- //
168
- // It then asks the completion token to create a completion handler (i.e. a
169
- // callback) with the specified signature, and invoke the initiation function
170
- // object with this completion handler as well as the additional arguments.
171
- // The return value of async_initiate is the result of our operation's
172
- // initiating function.
173
- //
174
- // Note that we wrap non-const reference arguments in std::reference_wrapper
175
- // to prevent incorrect decay-copies of these objects.
176
- return asio::async_initiate<
177
- CompletionToken, void(std::error_code)>(
178
- async_write_message_initiation(), token,
179
- std::ref(socket), std::move(encoded_message));
180
- }
181
-
182
- //------------------------------------------------------------------------------
183
-
184
- void test_callback()
185
- {
186
- asio::io_context io_context;
187
-
188
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
189
- tcp::socket socket = acceptor.accept();
190
-
191
- // Test our asynchronous operation using a lambda as a callback.
192
- async_write_message(socket, 123456,
193
- [](const std::error_code& error)
194
- {
195
- if (!error)
196
- {
197
- std::cout << "Message sent\n";
198
- }
199
- else
200
- {
201
- std::cout << "Error: " << error.message() << "\n";
202
- }
203
- });
204
-
205
- io_context.run();
206
- }
207
-
208
- //------------------------------------------------------------------------------
209
-
210
- void test_future()
211
- {
212
- asio::io_context io_context;
213
-
214
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
215
- tcp::socket socket = acceptor.accept();
216
-
217
- // Test our asynchronous operation using the use_future completion token.
218
- // This token causes the operation's initiating function to return a future,
219
- // which may be used to synchronously wait for the result of the operation.
220
- std::future<void> f = async_write_message(
221
- socket, 654.321, asio::use_future);
222
-
223
- io_context.run();
224
-
225
- try
226
- {
227
- // Get the result of the operation.
228
- f.get();
229
- std::cout << "Message sent\n";
230
- }
231
- catch (const std::exception& e)
232
- {
233
- std::cout << "Exception: " << e.what() << "\n";
234
- }
235
- }
236
-
237
- //------------------------------------------------------------------------------
238
-
239
- int main()
240
- {
241
- test_callback();
242
- test_future();
243
- }
@@ -1,302 +0,0 @@
1
- //
2
- // composed_6.cpp
3
- // ~~~~~~~~~~~~~~
4
- //
5
- // Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com)
6
- //
7
- // Distributed under the Boost Software License, Version 1.0. (See accompanying
8
- // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
9
- //
10
-
11
- #include <asio/executor_work_guard.hpp>
12
- #include <asio/io_context.hpp>
13
- #include <asio/ip/tcp.hpp>
14
- #include <asio/steady_timer.hpp>
15
- #include <asio/use_future.hpp>
16
- #include <asio/write.hpp>
17
- #include <functional>
18
- #include <iostream>
19
- #include <memory>
20
- #include <sstream>
21
- #include <string>
22
- #include <type_traits>
23
- #include <utility>
24
-
25
- using asio::ip::tcp;
26
-
27
- // NOTE: This example requires the new asio::async_initiate function. For
28
- // an example that works with the Networking TS style of completion tokens,
29
- // please see an older version of asio.
30
-
31
- //------------------------------------------------------------------------------
32
-
33
- // This composed operation shows composition of multiple underlying operations.
34
- // It automatically serialises a message, using its I/O streams insertion
35
- // operator, before sending it N times on the socket. To do this, it must
36
- // allocate a buffer for the encoded message and ensure this buffer's validity
37
- // until all underlying async_write operation complete. A one second delay is
38
- // inserted prior to each write operation, using a steady_timer.
39
-
40
- // In addition to determining the mechanism by which an asynchronous operation
41
- // delivers its result, a completion token also determines the time when the
42
- // operation commences. For example, when the completion token is a simple
43
- // callback the operation commences before the initiating function returns.
44
- // However, if the completion token's delivery mechanism uses a future, we
45
- // might instead want to defer initiation of the operation until the returned
46
- // future object is waited upon.
47
- //
48
- // To enable this, when implementing an asynchronous operation we must package
49
- // the initiation step as a function object.
50
- struct async_write_message_initiation
51
- {
52
- // The initiation function object's call operator is passed the concrete
53
- // completion handler produced by the completion token. This completion
54
- // handler matches the asynchronous operation's completion handler signature,
55
- // which in this example is:
56
- //
57
- // void(std::error_code error)
58
- //
59
- // The initiation function object also receives any additional arguments
60
- // required to start the operation. (Note: We could have instead passed these
61
- // arguments as members in the initiaton function object. However, we should
62
- // prefer to propagate them as function call arguments as this allows the
63
- // completion token to optimise how they are passed. For example, a lazy
64
- // future which defers initiation would need to make a decay-copy of the
65
- // arguments, but when using a simple callback the arguments can be trivially
66
- // forwarded straight through.)
67
- template <typename CompletionHandler>
68
- void operator()(CompletionHandler&& completion_handler, tcp::socket& socket,
69
- std::unique_ptr<std::string> encoded_message, std::size_t repeat_count,
70
- std::unique_ptr<asio::steady_timer> delay_timer) const
71
- {
72
- // In this example, the composed operation's intermediate completion
73
- // handler is implemented as a hand-crafted function object.
74
- struct intermediate_completion_handler
75
- {
76
- // The intermediate completion handler holds a reference to the socket as
77
- // it is used for multiple async_write operations, as well as for
78
- // obtaining the I/O executor (see get_executor below).
79
- tcp::socket& socket_;
80
-
81
- // The allocated buffer for the encoded message. The std::unique_ptr
82
- // smart pointer is move-only, and as a consequence our intermediate
83
- // completion handler is also move-only.
84
- std::unique_ptr<std::string> encoded_message_;
85
-
86
- // The repeat count remaining.
87
- std::size_t repeat_count_;
88
-
89
- // A steady timer used for introducing a delay.
90
- std::unique_ptr<asio::steady_timer> delay_timer_;
91
-
92
- // To manage the cycle between the multiple underlying asychronous
93
- // operations, our intermediate completion handler is implemented as a
94
- // state machine.
95
- enum { starting, waiting, writing } state_;
96
-
97
- // As our composed operation performs multiple underlying I/O operations,
98
- // we should maintain a work object against the I/O executor. This tells
99
- // the I/O executor that there is still more work to come in the future.
100
- asio::executor_work_guard<tcp::socket::executor_type> io_work_;
101
-
102
- // The user-supplied completion handler, called once only on completion
103
- // of the entire composed operation.
104
- typename std::decay<CompletionHandler>::type handler_;
105
-
106
- // By having a default value for the second argument, this function call
107
- // operator matches the completion signature of both the async_write and
108
- // steady_timer::async_wait operations.
109
- void operator()(const std::error_code& error, std::size_t = 0)
110
- {
111
- if (!error)
112
- {
113
- switch (state_)
114
- {
115
- case starting:
116
- case writing:
117
- if (repeat_count_ > 0)
118
- {
119
- --repeat_count_;
120
- state_ = waiting;
121
- delay_timer_->expires_after(std::chrono::seconds(1));
122
- delay_timer_->async_wait(std::move(*this));
123
- return; // Composed operation not yet complete.
124
- }
125
- break; // Composed operation complete, continue below.
126
- case waiting:
127
- state_ = writing;
128
- asio::async_write(socket_,
129
- asio::buffer(*encoded_message_), std::move(*this));
130
- return; // Composed operation not yet complete.
131
- }
132
- }
133
-
134
- // This point is reached only on completion of the entire composed
135
- // operation.
136
-
137
- // We no longer have any future work coming for the I/O executor.
138
- io_work_.reset();
139
-
140
- // Deallocate the encoded message before calling the user-supplied
141
- // completion handler.
142
- encoded_message_.reset();
143
-
144
- // Call the user-supplied handler with the result of the operation.
145
- handler_(error);
146
- }
147
-
148
- // It is essential to the correctness of our composed operation that we
149
- // preserve the executor of the user-supplied completion handler. With a
150
- // hand-crafted function object we can do this by defining a nested type
151
- // executor_type and member function get_executor. These obtain the
152
- // completion handler's associated executor, and default to the I/O
153
- // executor - in this case the executor of the socket - if the completion
154
- // handler does not have its own.
155
- using executor_type = asio::associated_executor_t<
156
- typename std::decay<CompletionHandler>::type,
157
- tcp::socket::executor_type>;
158
-
159
- executor_type get_executor() const noexcept
160
- {
161
- return asio::get_associated_executor(
162
- handler_, socket_.get_executor());
163
- }
164
-
165
- // Although not necessary for correctness, we may also preserve the
166
- // allocator of the user-supplied completion handler. This is achieved by
167
- // defining a nested type allocator_type and member function
168
- // get_allocator. These obtain the completion handler's associated
169
- // allocator, and default to std::allocator<void> if the completion
170
- // handler does not have its own.
171
- using allocator_type = asio::associated_allocator_t<
172
- typename std::decay<CompletionHandler>::type,
173
- std::allocator<void>>;
174
-
175
- allocator_type get_allocator() const noexcept
176
- {
177
- return asio::get_associated_allocator(
178
- handler_, std::allocator<void>{});
179
- }
180
- };
181
-
182
- // Initiate the underlying async_write operation using our intermediate
183
- // completion handler.
184
- auto encoded_message_buffer = asio::buffer(*encoded_message);
185
- asio::async_write(socket, encoded_message_buffer,
186
- intermediate_completion_handler{
187
- socket, std::move(encoded_message),
188
- repeat_count, std::move(delay_timer),
189
- intermediate_completion_handler::starting,
190
- asio::make_work_guard(socket.get_executor()),
191
- std::forward<CompletionHandler>(completion_handler)});
192
- }
193
- };
194
-
195
- template <typename T, typename CompletionToken>
196
- auto async_write_messages(tcp::socket& socket,
197
- const T& message, std::size_t repeat_count,
198
- CompletionToken&& token)
199
- // The return type of the initiating function is deduced from the combination
200
- // of CompletionToken type and the completion handler's signature. When the
201
- // completion token is a simple callback, the return type is always void.
202
- // In this example, when the completion token is asio::yield_context
203
- // (used for stackful coroutines) the return type would be also be void, as
204
- // there is no non-error argument to the completion handler. When the
205
- // completion token is asio::use_future it would be std::future<void>.
206
- -> typename asio::async_result<
207
- typename std::decay<CompletionToken>::type,
208
- void(std::error_code)>::return_type
209
- {
210
- // Encode the message and copy it into an allocated buffer. The buffer will
211
- // be maintained for the lifetime of the composed asynchronous operation.
212
- std::ostringstream os;
213
- os << message;
214
- std::unique_ptr<std::string> encoded_message(new std::string(os.str()));
215
-
216
- // Create a steady_timer to be used for the delay between messages.
217
- std::unique_ptr<asio::steady_timer> delay_timer(
218
- new asio::steady_timer(socket.get_executor()));
219
-
220
- // The asio::async_initiate function takes:
221
- //
222
- // - our initiation function object,
223
- // - the completion token,
224
- // - the completion handler signature, and
225
- // - any additional arguments we need to initiate the operation.
226
- //
227
- // It then asks the completion token to create a completion handler (i.e. a
228
- // callback) with the specified signature, and invoke the initiation function
229
- // object with this completion handler as well as the additional arguments.
230
- // The return value of async_initiate is the result of our operation's
231
- // initiating function.
232
- //
233
- // Note that we wrap non-const reference arguments in std::reference_wrapper
234
- // to prevent incorrect decay-copies of these objects.
235
- return asio::async_initiate<
236
- CompletionToken, void(std::error_code)>(
237
- async_write_message_initiation(), token, std::ref(socket),
238
- std::move(encoded_message), repeat_count, std::move(delay_timer));
239
- }
240
-
241
- //------------------------------------------------------------------------------
242
-
243
- void test_callback()
244
- {
245
- asio::io_context io_context;
246
-
247
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
248
- tcp::socket socket = acceptor.accept();
249
-
250
- // Test our asynchronous operation using a lambda as a callback.
251
- async_write_messages(socket, "Testing callback\r\n", 5,
252
- [](const std::error_code& error)
253
- {
254
- if (!error)
255
- {
256
- std::cout << "Messages sent\n";
257
- }
258
- else
259
- {
260
- std::cout << "Error: " << error.message() << "\n";
261
- }
262
- });
263
-
264
- io_context.run();
265
- }
266
-
267
- //------------------------------------------------------------------------------
268
-
269
- void test_future()
270
- {
271
- asio::io_context io_context;
272
-
273
- tcp::acceptor acceptor(io_context, {tcp::v4(), 55555});
274
- tcp::socket socket = acceptor.accept();
275
-
276
- // Test our asynchronous operation using the use_future completion token.
277
- // This token causes the operation's initiating function to return a future,
278
- // which may be used to synchronously wait for the result of the operation.
279
- std::future<void> f = async_write_messages(
280
- socket, "Testing future\r\n", 5, asio::use_future);
281
-
282
- io_context.run();
283
-
284
- try
285
- {
286
- // Get the result of the operation.
287
- f.get();
288
- std::cout << "Messages sent\n";
289
- }
290
- catch (const std::exception& e)
291
- {
292
- std::cout << "Error: " << e.what() << "\n";
293
- }
294
- }
295
-
296
- //------------------------------------------------------------------------------
297
-
298
- int main()
299
- {
300
- test_callback();
301
- test_future();
302
- }