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,11 +0,0 @@
1
- .deps
2
- .dirstamp
3
- *.o
4
- *.obj
5
- *.exe
6
- *_client
7
- server
8
- *.ilk
9
- *.manifest
10
- *.pdb
11
- *.tds
@@ -1,311 +0,0 @@
1
- //
2
- // async_tcp_client.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/buffer.hpp"
12
- #include "asio/io_context.hpp"
13
- #include "asio/ip/tcp.hpp"
14
- #include "asio/read_until.hpp"
15
- #include "asio/steady_timer.hpp"
16
- #include "asio/write.hpp"
17
- #include <functional>
18
- #include <iostream>
19
- #include <string>
20
-
21
- using asio::steady_timer;
22
- using asio::ip::tcp;
23
- using std::placeholders::_1;
24
- using std::placeholders::_2;
25
-
26
- //
27
- // This class manages socket timeouts by applying the concept of a deadline.
28
- // Some asynchronous operations are given deadlines by which they must complete.
29
- // Deadlines are enforced by an "actor" that persists for the lifetime of the
30
- // client object:
31
- //
32
- // +----------------+
33
- // | |
34
- // | check_deadline |<---+
35
- // | | |
36
- // +----------------+ | async_wait()
37
- // | |
38
- // +---------+
39
- //
40
- // If the deadline actor determines that the deadline has expired, the socket
41
- // is closed and any outstanding operations are consequently cancelled.
42
- //
43
- // Connection establishment involves trying each endpoint in turn until a
44
- // connection is successful, or the available endpoints are exhausted. If the
45
- // deadline actor closes the socket, the connect actor is woken up and moves to
46
- // the next endpoint.
47
- //
48
- // +---------------+
49
- // | |
50
- // | start_connect |<---+
51
- // | | |
52
- // +---------------+ |
53
- // | |
54
- // async_- | +----------------+
55
- // connect() | | |
56
- // +--->| handle_connect |
57
- // | |
58
- // +----------------+
59
- // :
60
- // Once a connection is :
61
- // made, the connect :
62
- // actor forks in two - :
63
- // :
64
- // an actor for reading : and an actor for
65
- // inbound messages: : sending heartbeats:
66
- // :
67
- // +------------+ : +-------------+
68
- // | |<- - - - -+- - - - ->| |
69
- // | start_read | | start_write |<---+
70
- // | |<---+ | | |
71
- // +------------+ | +-------------+ | async_wait()
72
- // | | | |
73
- // async_- | +-------------+ async_- | +--------------+
74
- // read_- | | | write() | | |
75
- // until() +--->| handle_read | +--->| handle_write |
76
- // | | | |
77
- // +-------------+ +--------------+
78
- //
79
- // The input actor reads messages from the socket, where messages are delimited
80
- // by the newline character. The deadline for a complete message is 30 seconds.
81
- //
82
- // The heartbeat actor sends a heartbeat (a message that consists of a single
83
- // newline character) every 10 seconds. In this example, no deadline is applied
84
- // to message sending.
85
- //
86
- class client
87
- {
88
- public:
89
- client(asio::io_context& io_context)
90
- : socket_(io_context),
91
- deadline_(io_context),
92
- heartbeat_timer_(io_context)
93
- {
94
- }
95
-
96
- // Called by the user of the client class to initiate the connection process.
97
- // The endpoints will have been obtained using a tcp::resolver.
98
- void start(tcp::resolver::results_type endpoints)
99
- {
100
- // Start the connect actor.
101
- endpoints_ = endpoints;
102
- start_connect(endpoints_.begin());
103
-
104
- // Start the deadline actor. You will note that we're not setting any
105
- // particular deadline here. Instead, the connect and input actors will
106
- // update the deadline prior to each asynchronous operation.
107
- deadline_.async_wait(std::bind(&client::check_deadline, this));
108
- }
109
-
110
- // This function terminates all the actors to shut down the connection. It
111
- // may be called by the user of the client class, or by the class itself in
112
- // response to graceful termination or an unrecoverable error.
113
- void stop()
114
- {
115
- stopped_ = true;
116
- std::error_code ignored_error;
117
- socket_.close(ignored_error);
118
- deadline_.cancel();
119
- heartbeat_timer_.cancel();
120
- }
121
-
122
- private:
123
- void start_connect(tcp::resolver::results_type::iterator endpoint_iter)
124
- {
125
- if (endpoint_iter != endpoints_.end())
126
- {
127
- std::cout << "Trying " << endpoint_iter->endpoint() << "...\n";
128
-
129
- // Set a deadline for the connect operation.
130
- deadline_.expires_after(std::chrono::seconds(60));
131
-
132
- // Start the asynchronous connect operation.
133
- socket_.async_connect(endpoint_iter->endpoint(),
134
- std::bind(&client::handle_connect,
135
- this, _1, endpoint_iter));
136
- }
137
- else
138
- {
139
- // There are no more endpoints to try. Shut down the client.
140
- stop();
141
- }
142
- }
143
-
144
- void handle_connect(const std::error_code& error,
145
- tcp::resolver::results_type::iterator endpoint_iter)
146
- {
147
- if (stopped_)
148
- return;
149
-
150
- // The async_connect() function automatically opens the socket at the start
151
- // of the asynchronous operation. If the socket is closed at this time then
152
- // the timeout handler must have run first.
153
- if (!socket_.is_open())
154
- {
155
- std::cout << "Connect timed out\n";
156
-
157
- // Try the next available endpoint.
158
- start_connect(++endpoint_iter);
159
- }
160
-
161
- // Check if the connect operation failed before the deadline expired.
162
- else if (error)
163
- {
164
- std::cout << "Connect error: " << error.message() << "\n";
165
-
166
- // We need to close the socket used in the previous connection attempt
167
- // before starting a new one.
168
- socket_.close();
169
-
170
- // Try the next available endpoint.
171
- start_connect(++endpoint_iter);
172
- }
173
-
174
- // Otherwise we have successfully established a connection.
175
- else
176
- {
177
- std::cout << "Connected to " << endpoint_iter->endpoint() << "\n";
178
-
179
- // Start the input actor.
180
- start_read();
181
-
182
- // Start the heartbeat actor.
183
- start_write();
184
- }
185
- }
186
-
187
- void start_read()
188
- {
189
- // Set a deadline for the read operation.
190
- deadline_.expires_after(std::chrono::seconds(30));
191
-
192
- // Start an asynchronous operation to read a newline-delimited message.
193
- asio::async_read_until(socket_,
194
- asio::dynamic_buffer(input_buffer_), '\n',
195
- std::bind(&client::handle_read, this, _1, _2));
196
- }
197
-
198
- void handle_read(const std::error_code& error, std::size_t n)
199
- {
200
- if (stopped_)
201
- return;
202
-
203
- if (!error)
204
- {
205
- // Extract the newline-delimited message from the buffer.
206
- std::string line(input_buffer_.substr(0, n - 1));
207
- input_buffer_.erase(0, n);
208
-
209
- // Empty messages are heartbeats and so ignored.
210
- if (!line.empty())
211
- {
212
- std::cout << "Received: " << line << "\n";
213
- }
214
-
215
- start_read();
216
- }
217
- else
218
- {
219
- std::cout << "Error on receive: " << error.message() << "\n";
220
-
221
- stop();
222
- }
223
- }
224
-
225
- void start_write()
226
- {
227
- if (stopped_)
228
- return;
229
-
230
- // Start an asynchronous operation to send a heartbeat message.
231
- asio::async_write(socket_, asio::buffer("\n", 1),
232
- std::bind(&client::handle_write, this, _1));
233
- }
234
-
235
- void handle_write(const std::error_code& error)
236
- {
237
- if (stopped_)
238
- return;
239
-
240
- if (!error)
241
- {
242
- // Wait 10 seconds before sending the next heartbeat.
243
- heartbeat_timer_.expires_after(std::chrono::seconds(10));
244
- heartbeat_timer_.async_wait(std::bind(&client::start_write, this));
245
- }
246
- else
247
- {
248
- std::cout << "Error on heartbeat: " << error.message() << "\n";
249
-
250
- stop();
251
- }
252
- }
253
-
254
- void check_deadline()
255
- {
256
- if (stopped_)
257
- return;
258
-
259
- // Check whether the deadline has passed. We compare the deadline against
260
- // the current time since a new asynchronous operation may have moved the
261
- // deadline before this actor had a chance to run.
262
- if (deadline_.expiry() <= steady_timer::clock_type::now())
263
- {
264
- // The deadline has passed. The socket is closed so that any outstanding
265
- // asynchronous operations are cancelled.
266
- socket_.close();
267
-
268
- // There is no longer an active deadline. The expiry is set to the
269
- // maximum time point so that the actor takes no action until a new
270
- // deadline is set.
271
- deadline_.expires_at(steady_timer::time_point::max());
272
- }
273
-
274
- // Put the actor back to sleep.
275
- deadline_.async_wait(std::bind(&client::check_deadline, this));
276
- }
277
-
278
- private:
279
- bool stopped_ = false;
280
- tcp::resolver::results_type endpoints_;
281
- tcp::socket socket_;
282
- std::string input_buffer_;
283
- steady_timer deadline_;
284
- steady_timer heartbeat_timer_;
285
- };
286
-
287
- int main(int argc, char* argv[])
288
- {
289
- try
290
- {
291
- if (argc != 3)
292
- {
293
- std::cerr << "Usage: client <host> <port>\n";
294
- return 1;
295
- }
296
-
297
- asio::io_context io_context;
298
- tcp::resolver r(io_context);
299
- client c(io_context);
300
-
301
- c.start(r.resolve(argv[1], argv[2]));
302
-
303
- io_context.run();
304
- }
305
- catch (std::exception& e)
306
- {
307
- std::cerr << "Exception: " << e.what() << "\n";
308
- }
309
-
310
- return 0;
311
- }
@@ -1,192 +0,0 @@
1
- //
2
- // blocking_tcp_client.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/buffer.hpp"
12
- #include "asio/connect.hpp"
13
- #include "asio/io_context.hpp"
14
- #include "asio/ip/tcp.hpp"
15
- #include "asio/read_until.hpp"
16
- #include "asio/system_error.hpp"
17
- #include "asio/write.hpp"
18
- #include <cstdlib>
19
- #include <iostream>
20
- #include <string>
21
-
22
- using asio::ip::tcp;
23
-
24
- //----------------------------------------------------------------------
25
-
26
- //
27
- // This class manages socket timeouts by running the io_context using the timed
28
- // io_context::run_for() member function. Each asynchronous operation is given
29
- // a timeout within which it must complete. The socket operations themselves
30
- // use lambdas as completion handlers. For a given socket operation, the client
31
- // object runs the io_context to block thread execution until the operation
32
- // completes or the timeout is reached. If the io_context::run_for() function
33
- // times out, the socket is closed and the outstanding asynchronous operation
34
- // is cancelled.
35
- //
36
- class client
37
- {
38
- public:
39
- void connect(const std::string& host, const std::string& service,
40
- std::chrono::steady_clock::duration timeout)
41
- {
42
- // Resolve the host name and service to a list of endpoints.
43
- auto endpoints = tcp::resolver(io_context_).resolve(host, service);
44
-
45
- // Start the asynchronous operation itself. The lambda that is used as a
46
- // callback will update the error variable when the operation completes.
47
- // The blocking_udp_client.cpp example shows how you can use std::bind
48
- // rather than a lambda.
49
- std::error_code error;
50
- asio::async_connect(socket_, endpoints,
51
- [&](const std::error_code& result_error,
52
- const tcp::endpoint& /*result_endpoint*/)
53
- {
54
- error = result_error;
55
- });
56
-
57
- // Run the operation until it completes, or until the timeout.
58
- run(timeout);
59
-
60
- // Determine whether a connection was successfully established.
61
- if (error)
62
- throw std::system_error(error);
63
- }
64
-
65
- std::string read_line(std::chrono::steady_clock::duration timeout)
66
- {
67
- // Start the asynchronous operation. The lambda that is used as a callback
68
- // will update the error and n variables when the operation completes. The
69
- // blocking_udp_client.cpp example shows how you can use std::bind rather
70
- // than a lambda.
71
- std::error_code error;
72
- std::size_t n = 0;
73
- asio::async_read_until(socket_,
74
- asio::dynamic_buffer(input_buffer_), '\n',
75
- [&](const std::error_code& result_error,
76
- std::size_t result_n)
77
- {
78
- error = result_error;
79
- n = result_n;
80
- });
81
-
82
- // Run the operation until it completes, or until the timeout.
83
- run(timeout);
84
-
85
- // Determine whether the read completed successfully.
86
- if (error)
87
- throw std::system_error(error);
88
-
89
- std::string line(input_buffer_.substr(0, n - 1));
90
- input_buffer_.erase(0, n);
91
- return line;
92
- }
93
-
94
- void write_line(const std::string& line,
95
- std::chrono::steady_clock::duration timeout)
96
- {
97
- std::string data = line + "\n";
98
-
99
- // Start the asynchronous operation itself. The lambda that is used as a
100
- // callback will update the error variable when the operation completes.
101
- // The blocking_udp_client.cpp example shows how you can use std::bind
102
- // rather than a lambda.
103
- std::error_code error;
104
- asio::async_write(socket_, asio::buffer(data),
105
- [&](const std::error_code& result_error,
106
- std::size_t /*result_n*/)
107
- {
108
- error = result_error;
109
- });
110
-
111
- // Run the operation until it completes, or until the timeout.
112
- run(timeout);
113
-
114
- // Determine whether the read completed successfully.
115
- if (error)
116
- throw std::system_error(error);
117
- }
118
-
119
- private:
120
- void run(std::chrono::steady_clock::duration timeout)
121
- {
122
- // Restart the io_context, as it may have been left in the "stopped" state
123
- // by a previous operation.
124
- io_context_.restart();
125
-
126
- // Block until the asynchronous operation has completed, or timed out. If
127
- // the pending asynchronous operation is a composed operation, the deadline
128
- // applies to the entire operation, rather than individual operations on
129
- // the socket.
130
- io_context_.run_for(timeout);
131
-
132
- // If the asynchronous operation completed successfully then the io_context
133
- // would have been stopped due to running out of work. If it was not
134
- // stopped, then the io_context::run_for call must have timed out.
135
- if (!io_context_.stopped())
136
- {
137
- // Close the socket to cancel the outstanding asynchronous operation.
138
- socket_.close();
139
-
140
- // Run the io_context again until the operation completes.
141
- io_context_.run();
142
- }
143
- }
144
-
145
- asio::io_context io_context_;
146
- tcp::socket socket_{io_context_};
147
- std::string input_buffer_;
148
- };
149
-
150
- //----------------------------------------------------------------------
151
-
152
- int main(int argc, char* argv[])
153
- {
154
- try
155
- {
156
- if (argc != 4)
157
- {
158
- std::cerr << "Usage: blocking_tcp_client <host> <port> <message>\n";
159
- return 1;
160
- }
161
-
162
- client c;
163
- c.connect(argv[1], argv[2], std::chrono::seconds(10));
164
-
165
- auto time_sent = std::chrono::steady_clock::now();
166
-
167
- c.write_line(argv[3], std::chrono::seconds(10));
168
-
169
- for (;;)
170
- {
171
- std::string line = c.read_line(std::chrono::seconds(10));
172
-
173
- // Keep going until we get back the line that was sent.
174
- if (line == argv[3])
175
- break;
176
- }
177
-
178
- auto time_received = std::chrono::steady_clock::now();
179
-
180
- std::cout << "Round trip time: ";
181
- std::cout << std::chrono::duration_cast<
182
- std::chrono::microseconds>(
183
- time_received - time_sent).count();
184
- std::cout << " microseconds\n";
185
- }
186
- catch (std::exception& e)
187
- {
188
- std::cerr << "Exception: " << e.what() << "\n";
189
- }
190
-
191
- return 0;
192
- }