passenger 6.0.26 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (915) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +38 -1
  3. data/CONTRIBUTING.md +2 -2
  4. data/CONTRIBUTORS +2 -0
  5. data/bin/passenger-install-apache2-module +6 -3
  6. data/bin/passenger-install-nginx-module +8 -3
  7. data/build/agent.rb +0 -2
  8. data/build/basics.rb +2 -0
  9. data/build/common_library.rb +0 -6
  10. data/build/misc.rb +0 -2
  11. data/build/schema_printer.rb +0 -2
  12. data/build/support/cxx_dependency_map.rb +60 -875
  13. data/dev/copy_boost_headers +3 -14
  14. data/dev/index_cxx_dependencies.rb +5 -1
  15. data/doc/AiInstructions.md +112 -0
  16. data/doc/CxxMockingStrategy.md +42 -0
  17. data/doc/CxxTestingGuide.md +110 -0
  18. data/doc/DesignAspects/LimitedGemDependencies.md +22 -14
  19. data/doc/TempFileHandling.md +15 -0
  20. data/package.json +1 -1
  21. data/passenger.gemspec +1 -1
  22. data/resources/templates/standalone/server.erb +1 -0
  23. data/src/agent/Core/ApiServer.h +0 -1
  24. data/src/agent/Core/ApplicationPool/AbstractSession.h +10 -1
  25. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +1 -1
  26. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +33 -18
  27. data/src/agent/Core/ApplicationPool/Group.h +0 -1
  28. data/src/agent/Core/ApplicationPool/Implementation.cpp +1 -4
  29. data/src/agent/Core/ApplicationPool/Session.h +14 -19
  30. data/src/agent/Core/ApplicationPool/Socket.h +15 -5
  31. data/src/agent/Core/ApplicationPool/TestSession.h +73 -15
  32. data/src/agent/Core/Config.h +2 -39
  33. data/src/agent/Core/ConfigChange.cpp +1 -41
  34. data/src/agent/Core/Controller/CheckoutSession.cpp +100 -14
  35. data/src/agent/Core/Controller/Client.h +0 -1
  36. data/src/agent/Core/Controller/Config.h +1 -1
  37. data/src/agent/Core/Controller/Hooks.cpp +13 -0
  38. data/src/agent/Core/Controller/InitRequest.cpp +2 -0
  39. data/src/agent/Core/Controller/InternalUtils.cpp +12 -0
  40. data/src/agent/Core/Controller/Request.h +3 -2
  41. data/src/agent/Core/Controller.h +12 -13
  42. data/src/agent/Core/CoreMain.cpp +2 -56
  43. data/src/agent/Core/OptionParser.h +1 -7
  44. data/src/agent/Core/SecurityUpdateChecker.h +10 -2
  45. data/src/agent/Core/SpawningKit/Exceptions.h +0 -1
  46. data/src/agent/Core/SpawningKit/Handshake/Perform.h +13 -2
  47. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +23 -5
  48. data/src/agent/Shared/Fundamentals/AbortHandler.h +10 -22
  49. data/src/agent/Shared/Fundamentals/Initialization.cpp +1 -0
  50. data/src/agent/Watchdog/Config.h +2 -21
  51. data/src/agent/Watchdog/WatchdogMain.cpp +0 -2
  52. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +5 -20
  53. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +5 -0
  54. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +14 -60
  55. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +3 -0
  56. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +3 -0
  57. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +11 -0
  58. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +7 -0
  59. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +17 -0
  60. data/src/apache2_module/Hooks.cpp +0 -10
  61. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +0 -44
  62. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +0 -52
  63. data/src/cxx_supportlib/Algorithms/Hasher.cpp +1 -1
  64. data/src/cxx_supportlib/Algorithms/Hasher.h +4 -7
  65. data/src/cxx_supportlib/Algorithms/MovingAverage.h +1 -160
  66. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +2 -12
  67. data/src/cxx_supportlib/ConfigKit/Store.h +1 -6
  68. data/src/cxx_supportlib/Constants.h +2 -1
  69. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +1 -7
  70. data/src/cxx_supportlib/DataStructures/StringMap.h +2 -3
  71. data/src/cxx_supportlib/Exceptions.cpp +178 -0
  72. data/src/cxx_supportlib/Exceptions.h +62 -177
  73. data/src/cxx_supportlib/FileTools/FileManip.h +2 -0
  74. data/src/cxx_supportlib/Hooks.h +0 -1
  75. data/src/cxx_supportlib/IOTools/IOUtils.cpp +266 -250
  76. data/src/cxx_supportlib/IOTools/IOUtils.h +87 -132
  77. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +2 -0
  78. data/src/cxx_supportlib/ServerKit/Config.h +1 -6
  79. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +1 -1
  80. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +8 -6
  81. data/src/cxx_supportlib/StaticString.h +1 -6
  82. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +2 -2
  83. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +0 -2
  84. data/src/cxx_supportlib/Utils/Curl.h +1 -6
  85. data/src/cxx_supportlib/Utils/FastStringStream.h +7 -7
  86. data/src/cxx_supportlib/Utils/IniFile.h +24 -25
  87. data/src/cxx_supportlib/Utils/ScopeGuard.h +0 -32
  88. data/src/cxx_supportlib/Utils.h +0 -30
  89. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +4 -0
  90. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +1 -0
  91. data/src/cxx_supportlib/oxt/implementation.cpp +41 -2
  92. data/src/cxx_supportlib/oxt/spin_lock.hpp +94 -23
  93. data/src/cxx_supportlib/oxt/system_calls.cpp +1 -0
  94. data/src/cxx_supportlib/oxt/system_calls.hpp +3 -4
  95. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +2 -2
  96. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +5 -0
  97. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +1 -0
  98. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +1 -2
  99. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +23 -13
  100. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +72 -49
  101. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  102. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +15 -11
  103. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +4 -0
  104. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +36 -9
  105. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +9 -2
  106. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +4 -0
  107. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +21 -17
  108. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +5 -0
  109. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +10 -6
  110. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +8 -3
  111. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +21 -3
  112. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +5 -15
  113. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +73 -14
  114. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +1 -2
  115. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +18 -29
  116. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +7 -7
  117. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +6 -10
  118. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +8 -0
  119. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +4 -0
  120. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +8 -0
  121. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +12 -4
  122. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +1 -1
  123. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +5 -4
  124. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +10 -0
  125. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +5 -0
  126. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +4 -0
  127. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +8 -0
  128. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +8 -0
  129. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +4 -0
  130. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +5 -0
  131. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +8 -0
  132. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +4 -0
  133. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +4 -0
  134. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +8 -0
  135. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +7 -7
  136. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +1 -1
  137. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +1 -1
  138. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +2 -0
  139. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +4 -4
  140. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +1 -20
  141. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +15 -0
  142. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +1 -1
  143. data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +2 -0
  144. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +7 -7
  145. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +3 -0
  146. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +4 -4
  147. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +1 -1
  148. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
  149. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +10 -4
  150. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +4 -49
  151. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +2 -3
  152. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +13 -4
  153. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +47 -46
  154. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +11 -11
  155. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +3 -3
  156. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +12 -252
  157. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +41 -0
  158. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +101 -592
  159. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +1 -5
  160. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +12 -24
  161. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +5 -5
  162. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +15 -15
  163. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +37 -44
  164. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +1 -23
  165. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -0
  166. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +52 -0
  167. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +14 -18
  168. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +7 -15
  169. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +39 -90
  170. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +0 -16
  171. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -0
  172. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +13 -14
  173. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +16 -17
  174. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +16 -55
  175. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +5 -14
  176. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_type_traits.hpp +55 -0
  177. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +1 -0
  178. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +5 -6
  179. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +7 -10
  180. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +32 -110
  181. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -18
  182. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +2 -6
  183. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +10 -9
  184. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +28 -565
  185. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +11 -17
  186. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +17 -21
  187. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +20 -22
  188. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +34 -68
  189. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +78 -356
  190. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +31 -89
  191. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +195 -12
  192. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +206 -17
  193. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +1202 -0
  194. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map_fwd.hpp +67 -0
  195. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +1065 -0
  196. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set_fwd.hpp +67 -0
  197. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +30 -8
  198. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +248 -47
  199. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +24 -0
  200. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +10 -2
  201. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +8 -2
  202. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +120 -5
  203. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_handle.hpp +56 -0
  204. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +15 -4
  205. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_handle.hpp +48 -0
  206. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +13 -4
  207. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +11 -10
  208. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/types_constructibility.hpp +172 -0
  209. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1 -0
  210. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +0 -17
  211. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +0 -17
  212. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +11 -0
  213. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +9 -0
  214. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +9 -0
  215. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +2 -2
  216. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +32 -44
  217. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +31 -35
  218. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_printers.hpp +414 -0
  219. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +2 -2
  220. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  221. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +8 -32
  222. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +6 -0
  223. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +12 -48
  224. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +5 -0
  225. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +21 -0
  226. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +13 -0
  227. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +3 -0
  228. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +4 -0
  229. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +0 -24
  230. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +0 -48
  231. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +0 -16
  232. data/src/nginx_module/ngx_http_passenger_module.c +0 -4
  233. data/src/ruby_native_extension/passenger_native_support.c +19 -3
  234. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +8 -24
  235. data/src/ruby_supportlib/phusion_passenger/common_library.rb +0 -3
  236. data/src/ruby_supportlib/phusion_passenger/constants.rb +1 -0
  237. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +6 -28
  238. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +15 -18
  239. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +4 -29
  240. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +0 -30
  241. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +2 -2
  242. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -20
  243. data/src/ruby_supportlib/phusion_passenger.rb +7 -7
  244. data/src/schema_printer/SchemaPrinterMain.cpp +0 -4
  245. metadata +20 -675
  246. data/dev/websocketpp.patch +0 -39
  247. data/src/agent/Core/AdminPanelConnector.h +0 -680
  248. data/src/cxx_supportlib/DataStructures/HashMap.h +0 -60
  249. data/src/cxx_supportlib/FileTools/LargeFiles.cpp +0 -41
  250. data/src/cxx_supportlib/FileTools/LargeFiles.h +0 -43
  251. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +0 -975
  252. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +0 -75
  253. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +0 -85
  254. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +0 -38
  255. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +0 -111
  256. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_executor.hpp +0 -338
  257. data/src/cxx_supportlib/vendor-modified/boost/asio/any_completion_handler.hpp +0 -824
  258. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +0 -353
  259. data/src/cxx_supportlib/vendor-modified/boost/asio/append.hpp +0 -67
  260. data/src/cxx_supportlib/vendor-modified/boost/asio/as_tuple.hpp +0 -154
  261. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +0 -216
  262. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +0 -223
  263. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +0 -237
  264. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_immediate_executor.hpp +0 -283
  265. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +0 -37
  266. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +0 -950
  267. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +0 -144
  268. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +0 -1364
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +0 -712
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_file.hpp +0 -826
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +0 -288
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_random_access_file.hpp +0 -691
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +0 -1358
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_readable_pipe.hpp +0 -628
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +0 -825
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +0 -989
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +0 -650
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +0 -1938
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +0 -2710
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +0 -333
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +0 -644
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_file.hpp +0 -746
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +0 -1165
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +0 -452
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +0 -38
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +0 -826
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_writable_pipe.hpp +0 -624
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_allocator.hpp +0 -598
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +0 -615
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +0 -666
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_immediate_executor.hpp +0 -618
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +0 -2755
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer_registration.hpp +0 -320
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +0 -275
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +0 -27
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +0 -294
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +0 -27
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +0 -267
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +0 -27
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +0 -523
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_after.hpp +0 -303
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/cancel_at.hpp +0 -296
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +0 -247
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +0 -237
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +0 -159
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/co_composed.hpp +0 -1323
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +0 -525
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +0 -269
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +0 -130
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/composed.hpp +0 -415
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +0 -1348
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/connect_pipe.hpp +0 -85
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/consign.hpp +0 -77
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +0 -330
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +0 -40
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/default_completion_token.hpp +0 -91
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +0 -220
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/deferred.hpp +0 -721
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +0 -107
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +0 -32
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +0 -32
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +0 -32
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +0 -61
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +0 -166
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +0 -71
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +0 -713
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +0 -109
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +0 -68
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +0 -839
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +0 -128
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +0 -127
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +0 -47
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +0 -192
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +0 -90
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_message.hpp +0 -129
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload.hpp +0 -222
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_payload_handler.hpp +0 -81
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/composed_work.hpp +0 -254
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +0 -94
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +0 -122
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +0 -151
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +0 -1413
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +0 -445
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +0 -29
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +0 -42
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +0 -34
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +0 -341
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +0 -38
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +0 -181
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +0 -190
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +0 -189
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +0 -249
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +0 -297
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +0 -48
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +0 -85
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/exception.hpp +0 -31
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +0 -154
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +0 -86
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +0 -41
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +0 -42
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +0 -35
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +0 -32
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +0 -52
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +0 -123
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +0 -45
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +0 -268
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +0 -555
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +0 -513
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +0 -333
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +0 -120
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +0 -996
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +0 -113
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +0 -471
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +0 -111
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +0 -828
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +0 -173
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +0 -400
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_descriptor_service.ipp +0 -207
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_file_service.ipp +0 -142
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.hpp +0 -114
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_service.ipp +0 -916
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/io_uring_socket_service_base.ipp +0 -251
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +0 -115
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +0 -610
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +0 -76
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +0 -131
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +0 -65
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +0 -48
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_serial_port_service.ipp +0 -170
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +0 -86
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +0 -48
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +0 -234
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +0 -314
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +0 -160
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +0 -677
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +0 -126
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +0 -402
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +0 -95
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +0 -199
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +0 -828
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +0 -4046
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +0 -187
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +0 -348
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +0 -160
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +0 -88
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +0 -204
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +0 -37
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +0 -51
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +0 -99
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +0 -103
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_defer.hpp +0 -209
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_dispatch.hpp +0 -195
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiate_post.hpp +0 -209
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/initiation_base.hpp +0 -64
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +0 -86
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +0 -179
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +0 -197
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_read_op.hpp +0 -192
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_service.hpp +0 -689
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +0 -191
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_descriptor_write_op.hpp +0 -187
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_file_service.hpp +0 -263
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_null_buffers_op.hpp +0 -116
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_operation.hpp +0 -86
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_service.hpp +0 -321
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_accept_op.hpp +0 -282
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_connect_op.hpp +0 -142
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recv_op.hpp +0 -207
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +0 -208
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +0 -194
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_send_op.hpp +0 -193
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_sendto_op.hpp +0 -196
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service.hpp +0 -631
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_socket_service_base.hpp +0 -665
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_uring_wait_op.hpp +0 -114
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +0 -298
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +0 -128
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +0 -72
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +0 -273
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +0 -21
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +0 -61
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -128
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +0 -48
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +0 -45
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +0 -45
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +0 -108
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +0 -49
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +0 -61
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +0 -62
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +0 -85
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +0 -71
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +0 -521
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +0 -62
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +0 -69
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +0 -70
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +0 -173
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +0 -164
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +0 -40
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +0 -91
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +0 -157
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +0 -177
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +0 -120
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +0 -82
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +0 -78
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_serial_port_service.hpp +0 -251
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +0 -87
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +0 -66
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +0 -111
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +0 -81
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +0 -228
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +0 -572
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +0 -133
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +0 -325
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +0 -164
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +0 -199
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +0 -205
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +0 -186
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -202
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +0 -196
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +0 -635
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +0 -757
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +0 -133
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +0 -56
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +0 -73
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +0 -214
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +0 -116
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +0 -35
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +0 -142
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +0 -47
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +0 -152
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +0 -149
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +0 -160
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +0 -243
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +0 -80
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_task.hpp +0 -51
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +0 -42
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +0 -103
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +0 -89
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +0 -48
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +0 -293
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +0 -165
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +0 -46
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +0 -92
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +0 -49
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +0 -55
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +0 -294
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +0 -100
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +0 -377
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +0 -318
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +0 -93
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +0 -429
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +0 -47
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +0 -52
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +0 -185
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +0 -59
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +0 -67
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +0 -70
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +0 -78
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +0 -68
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +0 -175
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +0 -146
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +0 -49
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +0 -60
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +0 -53
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +0 -101
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +0 -262
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +0 -64
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +0 -57
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timed_cancel_op.hpp +0 -363
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +0 -391
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +0 -70
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +0 -105
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +0 -68
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +0 -37
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +0 -44
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +0 -71
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +0 -180
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/utility.hpp +0 -85
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +0 -92
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +0 -51
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +0 -130
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +0 -145
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +0 -197
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +0 -199
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +0 -390
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +0 -280
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +0 -1935
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +0 -48
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +0 -1362
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +0 -1082
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +0 -193
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +0 -192
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +0 -118
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +0 -42
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +0 -45
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +0 -1004
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +0 -186
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +0 -755
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +0 -330
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +0 -753
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +0 -33
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +0 -390
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +0 -365
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +0 -364
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +0 -38
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +0 -134
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +0 -38
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +0 -538
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_channel.hpp +0 -516
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/basic_concurrent_channel.hpp +0 -516
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +0 -154
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel.hpp +0 -72
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_error.hpp +0 -88
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/channel_traits.hpp +0 -303
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_composed.hpp +0 -35
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/co_spawn.hpp +0 -189
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/concurrent_channel.hpp +0 -72
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +0 -295
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro_traits.hpp +0 -230
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +0 -38
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_operation.hpp +0 -363
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_receive_op.hpp +0 -128
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_functions.hpp +0 -202
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_send_op.hpp +0 -149
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/channel_service.hpp +0 -681
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_completion_handler.hpp +0 -171
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +0 -142
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/has_signature.hpp +0 -56
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/impl/channel_service.hpp +0 -625
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +0 -199
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +0 -183
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/channel_error.ipp +0 -63
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/coro.hpp +0 -1224
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +0 -790
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +0 -257
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_coro.hpp +0 -216
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/use_promise.hpp +0 -68
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +0 -457
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +0 -38
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +0 -226
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +0 -191
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_promise.hpp +0 -113
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/file_base.hpp +0 -168
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +0 -191
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +0 -125
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +0 -135
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +0 -112
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +0 -123
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +0 -124
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +0 -129
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +0 -56
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +0 -41
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/immediate.hpp +0 -144
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_completion_executor.ipp +0 -128
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/any_io_executor.ipp +0 -136
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/append.hpp +0 -171
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/as_tuple.hpp +0 -278
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +0 -1198
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +0 -406
  620. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +0 -386
  621. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_after.hpp +0 -270
  622. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancel_at.hpp +0 -270
  623. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/cancellation_signal.ipp +0 -98
  624. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +0 -459
  625. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +0 -705
  626. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.hpp +0 -75
  627. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect_pipe.ipp +0 -151
  628. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/consign.hpp +0 -146
  629. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/deferred.hpp +0 -149
  630. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +0 -79
  631. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +0 -130
  632. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +0 -79
  633. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +0 -84
  634. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +0 -319
  635. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +0 -45
  636. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +0 -435
  637. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +0 -178
  638. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +0 -47
  639. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/prepend.hpp +0 -172
  640. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +0 -904
  641. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +0 -564
  642. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +0 -2670
  643. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +0 -289
  644. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +0 -61
  645. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +0 -556
  646. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +0 -1402
  647. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +0 -93
  648. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +0 -36
  649. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +0 -94
  650. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +0 -181
  651. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +0 -279
  652. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +0 -144
  653. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +0 -303
  654. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -709
  655. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +0 -782
  656. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +0 -482
  657. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -1507
  658. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +0 -398
  659. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +0 -35
  660. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +0 -20
  661. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +0 -283
  662. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +0 -423
  663. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +0 -158
  664. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +0 -130
  665. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +0 -409
  666. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +0 -180
  667. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +0 -126
  668. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +0 -65
  669. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +0 -284
  670. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +0 -1114
  671. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +0 -115
  672. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +0 -190
  673. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +0 -262
  674. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +0 -309
  675. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +0 -143
  676. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +0 -197
  677. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +0 -568
  678. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +0 -44
  679. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +0 -117
  680. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +0 -69
  681. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +0 -237
  682. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +0 -69
  683. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +0 -208
  684. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +0 -69
  685. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +0 -344
  686. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +0 -45
  687. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +0 -56
  688. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +0 -56
  689. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +0 -220
  690. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +0 -55
  691. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +0 -189
  692. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +0 -193
  693. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +0 -259
  694. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +0 -233
  695. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +0 -131
  696. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +0 -45
  697. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +0 -157
  698. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +0 -113
  699. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +0 -72
  700. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +0 -71
  701. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +0 -63
  702. data/src/cxx_supportlib/vendor-modified/boost/asio/is_contiguous_iterator.hpp +0 -47
  703. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +0 -48
  704. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +0 -61
  705. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +0 -61
  706. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +0 -245
  707. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +0 -103
  708. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +0 -82
  709. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +0 -141
  710. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +0 -133
  711. data/src/cxx_supportlib/vendor-modified/boost/asio/local/seq_packet_protocol.hpp +0 -86
  712. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +0 -92
  713. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +0 -54
  714. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +0 -68
  715. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +0 -83
  716. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +0 -775
  717. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +0 -561
  718. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +0 -39
  719. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +0 -92
  720. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +0 -39
  721. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +0 -215
  722. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +0 -581
  723. data/src/cxx_supportlib/vendor-modified/boost/asio/prepend.hpp +0 -68
  724. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +0 -315
  725. data/src/cxx_supportlib/vendor-modified/boost/asio/random_access_file.hpp +0 -37
  726. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +0 -1549
  727. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +0 -830
  728. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +0 -3204
  729. data/src/cxx_supportlib/vendor-modified/boost/asio/readable_pipe.hpp +0 -37
  730. data/src/cxx_supportlib/vendor-modified/boost/asio/recycling_allocator.hpp +0 -140
  731. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +0 -106
  732. data/src/cxx_supportlib/vendor-modified/boost/asio/registered_buffer.hpp +0 -346
  733. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +0 -437
  734. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +0 -347
  735. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +0 -38
  736. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +0 -169
  737. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +0 -30
  738. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_base.hpp +0 -173
  739. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +0 -561
  740. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -873
  741. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +0 -764
  742. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +0 -211
  743. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +0 -121
  744. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +0 -171
  745. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +0 -69
  746. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +0 -379
  747. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +0 -171
  748. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +0 -378
  749. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +0 -103
  750. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +0 -34
  751. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +0 -68
  752. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +0 -74
  753. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +0 -71
  754. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +0 -219
  755. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +0 -64
  756. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +0 -78
  757. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +0 -129
  758. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +0 -92
  759. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +0 -69
  760. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +0 -1324
  761. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +0 -126
  762. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +0 -75
  763. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +0 -166
  764. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +0 -29
  765. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +0 -100
  766. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +0 -1044
  767. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +0 -54
  768. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +0 -69
  769. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +0 -65
  770. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +0 -28
  771. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +0 -33
  772. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +0 -39
  773. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +0 -559
  774. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_file.hpp +0 -37
  775. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +0 -35
  776. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +0 -92
  777. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -673
  778. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +0 -39
  779. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +0 -269
  780. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +0 -965
  781. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +0 -88
  782. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +0 -102
  783. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +0 -106
  784. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +0 -106
  785. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +0 -106
  786. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +0 -106
  787. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +0 -106
  788. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +0 -103
  789. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +0 -106
  790. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +0 -106
  791. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +0 -106
  792. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +0 -106
  793. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +0 -104
  794. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +0 -117
  795. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +0 -118
  796. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +0 -24
  797. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +0 -35
  798. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +0 -40
  799. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +0 -20
  800. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +0 -26
  801. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +0 -238
  802. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +0 -27
  803. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +0 -26
  804. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +0 -21
  805. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +0 -163
  806. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +0 -161
  807. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +0 -69
  808. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +0 -23
  809. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +0 -58
  810. data/src/cxx_supportlib/vendor-modified/boost/asio/writable_pipe.hpp +0 -37
  811. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +0 -1528
  812. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +0 -843
  813. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +0 -23
  814. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +0 -195
  815. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +0 -1059
  816. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +0 -64
  817. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/requires_cxx11.hpp +0 -23
  818. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +0 -52
  819. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
  820. data/src/cxx_supportlib/vendor-modified/websocketpp/COPYING +0 -145
  821. data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +0 -444
  822. data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +0 -49
  823. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/base64/base64.hpp +0 -178
  824. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/client.hpp +0 -33
  825. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +0 -353
  826. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +0 -141
  827. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio_ssl.hpp +0 -39
  828. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/chrono.hpp +0 -68
  829. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/connection_hdl.hpp +0 -52
  830. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/cpp11.hpp +0 -162
  831. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +0 -100
  832. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +0 -448
  833. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +0 -88
  834. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/network.hpp +0 -106
  835. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/platforms.hpp +0 -46
  836. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/random.hpp +0 -82
  837. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/regex.hpp +0 -59
  838. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/stdint.hpp +0 -73
  839. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/system_error.hpp +0 -84
  840. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +0 -88
  841. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/time.hpp +0 -56
  842. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/type_traits.hpp +0 -65
  843. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/basic.hpp +0 -46
  844. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/none.hpp +0 -80
  845. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio.hpp +0 -77
  846. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_client.hpp +0 -77
  847. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -73
  848. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -73
  849. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/boost_config.hpp +0 -72
  850. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +0 -297
  851. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core_client.hpp +0 -294
  852. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug.hpp +0 -286
  853. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio.hpp +0 -77
  854. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -73
  855. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_client.hpp +0 -72
  856. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_server.hpp +0 -312
  857. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +0 -1642
  858. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection_base.hpp +0 -38
  859. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +0 -700
  860. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint_base.hpp +0 -38
  861. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/error.hpp +0 -277
  862. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/extension.hpp +0 -102
  863. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -129
  864. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -817
  865. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -853
  866. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/constants.hpp +0 -308
  867. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +0 -200
  868. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/request.hpp +0 -191
  869. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/response.hpp +0 -266
  870. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +0 -629
  871. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/request.hpp +0 -124
  872. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/response.hpp +0 -188
  873. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2375
  874. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
  875. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -87
  876. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/basic.hpp +0 -199
  877. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/levels.hpp +0 -203
  878. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/stub.hpp +0 -119
  879. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/syslog.hpp +0 -146
  880. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -105
  881. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/message.hpp +0 -340
  882. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/pool.hpp +0 -229
  883. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +0 -299
  884. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi00.hpp +0 -462
  885. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi07.hpp +0 -78
  886. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi08.hpp +0 -83
  887. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +0 -1072
  888. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/processor.hpp +0 -407
  889. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/none.hpp +0 -60
  890. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/random_device.hpp +0 -80
  891. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
  892. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -195
  893. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/server.hpp +0 -33
  894. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
  895. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/base.hpp +0 -232
  896. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1197
  897. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1182
  898. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -159
  899. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -372
  900. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -474
  901. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/connection.hpp +0 -238
  902. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
  903. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/base.hpp +0 -104
  904. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
  905. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
  906. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/base.hpp +0 -133
  907. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
  908. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
  909. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/base.hpp +0 -95
  910. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
  911. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -140
  912. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +0 -356
  913. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utf8_validator.hpp +0 -154
  914. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +0 -180
  915. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +0 -61
@@ -1,1938 +0,0 @@
1
- //
2
- // basic_socket.hpp
3
- // ~~~~~~~~~~~~~~~~
4
- //
5
- // Copyright (c) 2003-2024 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
- #ifndef BOOST_ASIO_BASIC_SOCKET_HPP
12
- #define BOOST_ASIO_BASIC_SOCKET_HPP
13
-
14
- #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
- # pragma once
16
- #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
-
18
- #include <utility>
19
- #include <boost/asio/any_io_executor.hpp>
20
- #include <boost/asio/detail/config.hpp>
21
- #include <boost/asio/async_result.hpp>
22
- #include <boost/asio/detail/handler_type_requirements.hpp>
23
- #include <boost/asio/detail/io_object_impl.hpp>
24
- #include <boost/asio/detail/non_const_lvalue.hpp>
25
- #include <boost/asio/detail/throw_error.hpp>
26
- #include <boost/asio/detail/type_traits.hpp>
27
- #include <boost/asio/error.hpp>
28
- #include <boost/asio/execution_context.hpp>
29
- #include <boost/asio/post.hpp>
30
- #include <boost/asio/socket_base.hpp>
31
-
32
- #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
33
- # include <boost/asio/detail/null_socket_service.hpp>
34
- #elif defined(BOOST_ASIO_HAS_IOCP)
35
- # include <boost/asio/detail/win_iocp_socket_service.hpp>
36
- #elif defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
37
- # include <boost/asio/detail/io_uring_socket_service.hpp>
38
- #else
39
- # include <boost/asio/detail/reactive_socket_service.hpp>
40
- #endif
41
-
42
- #include <boost/asio/detail/push_options.hpp>
43
-
44
- namespace boost {
45
- namespace asio {
46
-
47
- #if !defined(BOOST_ASIO_BASIC_SOCKET_FWD_DECL)
48
- #define BOOST_ASIO_BASIC_SOCKET_FWD_DECL
49
-
50
- // Forward declaration with defaulted arguments.
51
- template <typename Protocol, typename Executor = any_io_executor>
52
- class basic_socket;
53
-
54
- #endif // !defined(BOOST_ASIO_BASIC_SOCKET_FWD_DECL)
55
-
56
- /// Provides socket functionality.
57
- /**
58
- * The basic_socket class template provides functionality that is common to both
59
- * stream-oriented and datagram-oriented sockets.
60
- *
61
- * @par Thread Safety
62
- * @e Distinct @e objects: Safe.@n
63
- * @e Shared @e objects: Unsafe.
64
- */
65
- template <typename Protocol, typename Executor>
66
- class basic_socket
67
- : public socket_base
68
- {
69
- private:
70
- class initiate_async_connect;
71
- class initiate_async_wait;
72
-
73
- public:
74
- /// The type of the executor associated with the object.
75
- typedef Executor executor_type;
76
-
77
- /// Rebinds the socket type to another executor.
78
- template <typename Executor1>
79
- struct rebind_executor
80
- {
81
- /// The socket type when rebound to the specified executor.
82
- typedef basic_socket<Protocol, Executor1> other;
83
- };
84
-
85
- /// The native representation of a socket.
86
- #if defined(GENERATING_DOCUMENTATION)
87
- typedef implementation_defined native_handle_type;
88
- #elif defined(BOOST_ASIO_WINDOWS_RUNTIME)
89
- typedef typename detail::null_socket_service<
90
- Protocol>::native_handle_type native_handle_type;
91
- #elif defined(BOOST_ASIO_HAS_IOCP)
92
- typedef typename detail::win_iocp_socket_service<
93
- Protocol>::native_handle_type native_handle_type;
94
- #elif defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
95
- typedef typename detail::io_uring_socket_service<
96
- Protocol>::native_handle_type native_handle_type;
97
- #else
98
- typedef typename detail::reactive_socket_service<
99
- Protocol>::native_handle_type native_handle_type;
100
- #endif
101
-
102
- /// The protocol type.
103
- typedef Protocol protocol_type;
104
-
105
- /// The endpoint type.
106
- typedef typename Protocol::endpoint endpoint_type;
107
-
108
- #if !defined(BOOST_ASIO_NO_EXTENSIONS)
109
- /// A basic_socket is always the lowest layer.
110
- typedef basic_socket<Protocol, Executor> lowest_layer_type;
111
- #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
112
-
113
- /// Construct a basic_socket without opening it.
114
- /**
115
- * This constructor creates a socket without opening it.
116
- *
117
- * @param ex The I/O executor that the socket will use, by default, to
118
- * dispatch handlers for any asynchronous operations performed on the socket.
119
- */
120
- explicit basic_socket(const executor_type& ex)
121
- : impl_(0, ex)
122
- {
123
- }
124
-
125
- /// Construct a basic_socket without opening it.
126
- /**
127
- * This constructor creates a socket without opening it.
128
- *
129
- * @param context An execution context which provides the I/O executor that
130
- * the socket will use, by default, to dispatch handlers for any asynchronous
131
- * operations performed on the socket.
132
- */
133
- template <typename ExecutionContext>
134
- explicit basic_socket(ExecutionContext& context,
135
- constraint_t<
136
- is_convertible<ExecutionContext&, execution_context&>::value
137
- > = 0)
138
- : impl_(0, 0, context)
139
- {
140
- }
141
-
142
- /// Construct and open a basic_socket.
143
- /**
144
- * This constructor creates and opens a socket.
145
- *
146
- * @param ex The I/O executor that the socket will use, by default, to
147
- * dispatch handlers for any asynchronous operations performed on the socket.
148
- *
149
- * @param protocol An object specifying protocol parameters to be used.
150
- *
151
- * @throws boost::system::system_error Thrown on failure.
152
- */
153
- basic_socket(const executor_type& ex, const protocol_type& protocol)
154
- : impl_(0, ex)
155
- {
156
- boost::system::error_code ec;
157
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
158
- boost::asio::detail::throw_error(ec, "open");
159
- }
160
-
161
- /// Construct and open a basic_socket.
162
- /**
163
- * This constructor creates and opens a socket.
164
- *
165
- * @param context An execution context which provides the I/O executor that
166
- * the socket will use, by default, to dispatch handlers for any asynchronous
167
- * operations performed on the socket.
168
- *
169
- * @param protocol An object specifying protocol parameters to be used.
170
- *
171
- * @throws boost::system::system_error Thrown on failure.
172
- */
173
- template <typename ExecutionContext>
174
- basic_socket(ExecutionContext& context, const protocol_type& protocol,
175
- constraint_t<
176
- is_convertible<ExecutionContext&, execution_context&>::value,
177
- defaulted_constraint
178
- > = defaulted_constraint())
179
- : impl_(0, 0, context)
180
- {
181
- boost::system::error_code ec;
182
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
183
- boost::asio::detail::throw_error(ec, "open");
184
- }
185
-
186
- /// Construct a basic_socket, opening it and binding it to the given local
187
- /// endpoint.
188
- /**
189
- * This constructor creates a socket and automatically opens it bound to the
190
- * specified endpoint on the local machine. The protocol used is the protocol
191
- * associated with the given endpoint.
192
- *
193
- * @param ex The I/O executor that the socket will use, by default, to
194
- * dispatch handlers for any asynchronous operations performed on the socket.
195
- *
196
- * @param endpoint An endpoint on the local machine to which the socket will
197
- * be bound.
198
- *
199
- * @throws boost::system::system_error Thrown on failure.
200
- */
201
- basic_socket(const executor_type& ex, const endpoint_type& endpoint)
202
- : impl_(0, ex)
203
- {
204
- boost::system::error_code ec;
205
- const protocol_type protocol = endpoint.protocol();
206
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
207
- boost::asio::detail::throw_error(ec, "open");
208
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
209
- boost::asio::detail::throw_error(ec, "bind");
210
- }
211
-
212
- /// Construct a basic_socket, opening it and binding it to the given local
213
- /// endpoint.
214
- /**
215
- * This constructor creates a socket and automatically opens it bound to the
216
- * specified endpoint on the local machine. The protocol used is the protocol
217
- * associated with the given endpoint.
218
- *
219
- * @param context An execution context which provides the I/O executor that
220
- * the socket will use, by default, to dispatch handlers for any asynchronous
221
- * operations performed on the socket.
222
- *
223
- * @param endpoint An endpoint on the local machine to which the socket will
224
- * be bound.
225
- *
226
- * @throws boost::system::system_error Thrown on failure.
227
- */
228
- template <typename ExecutionContext>
229
- basic_socket(ExecutionContext& context, const endpoint_type& endpoint,
230
- constraint_t<
231
- is_convertible<ExecutionContext&, execution_context&>::value
232
- > = 0)
233
- : impl_(0, 0, context)
234
- {
235
- boost::system::error_code ec;
236
- const protocol_type protocol = endpoint.protocol();
237
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
238
- boost::asio::detail::throw_error(ec, "open");
239
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
240
- boost::asio::detail::throw_error(ec, "bind");
241
- }
242
-
243
- /// Construct a basic_socket on an existing native socket.
244
- /**
245
- * This constructor creates a socket object to hold an existing native socket.
246
- *
247
- * @param ex The I/O executor that the socket will use, by default, to
248
- * dispatch handlers for any asynchronous operations performed on the socket.
249
- *
250
- * @param protocol An object specifying protocol parameters to be used.
251
- *
252
- * @param native_socket A native socket.
253
- *
254
- * @throws boost::system::system_error Thrown on failure.
255
- */
256
- basic_socket(const executor_type& ex, const protocol_type& protocol,
257
- const native_handle_type& native_socket)
258
- : impl_(0, ex)
259
- {
260
- boost::system::error_code ec;
261
- impl_.get_service().assign(impl_.get_implementation(),
262
- protocol, native_socket, ec);
263
- boost::asio::detail::throw_error(ec, "assign");
264
- }
265
-
266
- /// Construct a basic_socket on an existing native socket.
267
- /**
268
- * This constructor creates a socket object to hold an existing native socket.
269
- *
270
- * @param context An execution context which provides the I/O executor that
271
- * the socket will use, by default, to dispatch handlers for any asynchronous
272
- * operations performed on the socket.
273
- *
274
- * @param protocol An object specifying protocol parameters to be used.
275
- *
276
- * @param native_socket A native socket.
277
- *
278
- * @throws boost::system::system_error Thrown on failure.
279
- */
280
- template <typename ExecutionContext>
281
- basic_socket(ExecutionContext& context, const protocol_type& protocol,
282
- const native_handle_type& native_socket,
283
- constraint_t<
284
- is_convertible<ExecutionContext&, execution_context&>::value
285
- > = 0)
286
- : impl_(0, 0, context)
287
- {
288
- boost::system::error_code ec;
289
- impl_.get_service().assign(impl_.get_implementation(),
290
- protocol, native_socket, ec);
291
- boost::asio::detail::throw_error(ec, "assign");
292
- }
293
-
294
- /// Move-construct a basic_socket from another.
295
- /**
296
- * This constructor moves a socket from one object to another.
297
- *
298
- * @param other The other basic_socket object from which the move will
299
- * occur.
300
- *
301
- * @note Following the move, the moved-from object is in the same state as if
302
- * constructed using the @c basic_socket(const executor_type&) constructor.
303
- */
304
- basic_socket(basic_socket&& other) noexcept
305
- : impl_(std::move(other.impl_))
306
- {
307
- }
308
-
309
- /// Move-assign a basic_socket from another.
310
- /**
311
- * This assignment operator moves a socket from one object to another.
312
- *
313
- * @param other The other basic_socket object from which the move will
314
- * occur.
315
- *
316
- * @note Following the move, the moved-from object is in the same state as if
317
- * constructed using the @c basic_socket(const executor_type&) constructor.
318
- */
319
- basic_socket& operator=(basic_socket&& other)
320
- {
321
- impl_ = std::move(other.impl_);
322
- return *this;
323
- }
324
-
325
- // All sockets have access to each other's implementations.
326
- template <typename Protocol1, typename Executor1>
327
- friend class basic_socket;
328
-
329
- /// Move-construct a basic_socket from a socket of another protocol type.
330
- /**
331
- * This constructor moves a socket from one object to another.
332
- *
333
- * @param other The other basic_socket object from which the move will
334
- * occur.
335
- *
336
- * @note Following the move, the moved-from object is in the same state as if
337
- * constructed using the @c basic_socket(const executor_type&) constructor.
338
- */
339
- template <typename Protocol1, typename Executor1>
340
- basic_socket(basic_socket<Protocol1, Executor1>&& other,
341
- constraint_t<
342
- is_convertible<Protocol1, Protocol>::value
343
- && is_convertible<Executor1, Executor>::value
344
- > = 0)
345
- : impl_(std::move(other.impl_))
346
- {
347
- }
348
-
349
- /// Move-assign a basic_socket from a socket of another protocol type.
350
- /**
351
- * This assignment operator moves a socket from one object to another.
352
- *
353
- * @param other The other basic_socket object from which the move will
354
- * occur.
355
- *
356
- * @note Following the move, the moved-from object is in the same state as if
357
- * constructed using the @c basic_socket(const executor_type&) constructor.
358
- */
359
- template <typename Protocol1, typename Executor1>
360
- constraint_t<
361
- is_convertible<Protocol1, Protocol>::value
362
- && is_convertible<Executor1, Executor>::value,
363
- basic_socket&
364
- > operator=(basic_socket<Protocol1, Executor1>&& other)
365
- {
366
- basic_socket tmp(std::move(other));
367
- impl_ = std::move(tmp.impl_);
368
- return *this;
369
- }
370
-
371
- /// Get the executor associated with the object.
372
- const executor_type& get_executor() noexcept
373
- {
374
- return impl_.get_executor();
375
- }
376
-
377
- #if !defined(BOOST_ASIO_NO_EXTENSIONS)
378
- /// Get a reference to the lowest layer.
379
- /**
380
- * This function returns a reference to the lowest layer in a stack of
381
- * layers. Since a basic_socket cannot contain any further layers, it simply
382
- * returns a reference to itself.
383
- *
384
- * @return A reference to the lowest layer in the stack of layers. Ownership
385
- * is not transferred to the caller.
386
- */
387
- lowest_layer_type& lowest_layer()
388
- {
389
- return *this;
390
- }
391
-
392
- /// Get a const reference to the lowest layer.
393
- /**
394
- * This function returns a const reference to the lowest layer in a stack of
395
- * layers. Since a basic_socket cannot contain any further layers, it simply
396
- * returns a reference to itself.
397
- *
398
- * @return A const reference to the lowest layer in the stack of layers.
399
- * Ownership is not transferred to the caller.
400
- */
401
- const lowest_layer_type& lowest_layer() const
402
- {
403
- return *this;
404
- }
405
- #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
406
-
407
- /// Open the socket using the specified protocol.
408
- /**
409
- * This function opens the socket so that it will use the specified protocol.
410
- *
411
- * @param protocol An object specifying protocol parameters to be used.
412
- *
413
- * @throws boost::system::system_error Thrown on failure.
414
- *
415
- * @par Example
416
- * @code
417
- * boost::asio::ip::tcp::socket socket(my_context);
418
- * socket.open(boost::asio::ip::tcp::v4());
419
- * @endcode
420
- */
421
- void open(const protocol_type& protocol = protocol_type())
422
- {
423
- boost::system::error_code ec;
424
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
425
- boost::asio::detail::throw_error(ec, "open");
426
- }
427
-
428
- /// Open the socket using the specified protocol.
429
- /**
430
- * This function opens the socket so that it will use the specified protocol.
431
- *
432
- * @param protocol An object specifying which protocol is to be used.
433
- *
434
- * @param ec Set to indicate what error occurred, if any.
435
- *
436
- * @par Example
437
- * @code
438
- * boost::asio::ip::tcp::socket socket(my_context);
439
- * boost::system::error_code ec;
440
- * socket.open(boost::asio::ip::tcp::v4(), ec);
441
- * if (ec)
442
- * {
443
- * // An error occurred.
444
- * }
445
- * @endcode
446
- */
447
- BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
448
- boost::system::error_code& ec)
449
- {
450
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
451
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
452
- }
453
-
454
- /// Assign an existing native socket to the socket.
455
- /*
456
- * This function opens the socket to hold an existing native socket.
457
- *
458
- * @param protocol An object specifying which protocol is to be used.
459
- *
460
- * @param native_socket A native socket.
461
- *
462
- * @throws boost::system::system_error Thrown on failure.
463
- */
464
- void assign(const protocol_type& protocol,
465
- const native_handle_type& native_socket)
466
- {
467
- boost::system::error_code ec;
468
- impl_.get_service().assign(impl_.get_implementation(),
469
- protocol, native_socket, ec);
470
- boost::asio::detail::throw_error(ec, "assign");
471
- }
472
-
473
- /// Assign an existing native socket to the socket.
474
- /*
475
- * This function opens the socket to hold an existing native socket.
476
- *
477
- * @param protocol An object specifying which protocol is to be used.
478
- *
479
- * @param native_socket A native socket.
480
- *
481
- * @param ec Set to indicate what error occurred, if any.
482
- */
483
- BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
484
- const native_handle_type& native_socket, boost::system::error_code& ec)
485
- {
486
- impl_.get_service().assign(impl_.get_implementation(),
487
- protocol, native_socket, ec);
488
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
489
- }
490
-
491
- /// Determine whether the socket is open.
492
- bool is_open() const
493
- {
494
- return impl_.get_service().is_open(impl_.get_implementation());
495
- }
496
-
497
- /// Close the socket.
498
- /**
499
- * This function is used to close the socket. Any asynchronous send, receive
500
- * or connect operations will be cancelled immediately, and will complete
501
- * with the boost::asio::error::operation_aborted error.
502
- *
503
- * @throws boost::system::system_error Thrown on failure. Note that, even if
504
- * the function indicates an error, the underlying descriptor is closed.
505
- *
506
- * @note For portable behaviour with respect to graceful closure of a
507
- * connected socket, call shutdown() before closing the socket.
508
- */
509
- void close()
510
- {
511
- boost::system::error_code ec;
512
- impl_.get_service().close(impl_.get_implementation(), ec);
513
- boost::asio::detail::throw_error(ec, "close");
514
- }
515
-
516
- /// Close the socket.
517
- /**
518
- * This function is used to close the socket. Any asynchronous send, receive
519
- * or connect operations will be cancelled immediately, and will complete
520
- * with the boost::asio::error::operation_aborted error.
521
- *
522
- * @param ec Set to indicate what error occurred, if any. Note that, even if
523
- * the function indicates an error, the underlying descriptor is closed.
524
- *
525
- * @par Example
526
- * @code
527
- * boost::asio::ip::tcp::socket socket(my_context);
528
- * ...
529
- * boost::system::error_code ec;
530
- * socket.close(ec);
531
- * if (ec)
532
- * {
533
- * // An error occurred.
534
- * }
535
- * @endcode
536
- *
537
- * @note For portable behaviour with respect to graceful closure of a
538
- * connected socket, call shutdown() before closing the socket.
539
- */
540
- BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)
541
- {
542
- impl_.get_service().close(impl_.get_implementation(), ec);
543
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
544
- }
545
-
546
- /// Release ownership of the underlying native socket.
547
- /**
548
- * This function causes all outstanding asynchronous connect, send and receive
549
- * operations to finish immediately, and the handlers for cancelled operations
550
- * will be passed the boost::asio::error::operation_aborted error. Ownership
551
- * of the native socket is then transferred to the caller.
552
- *
553
- * @throws boost::system::system_error Thrown on failure.
554
- *
555
- * @note This function is unsupported on Windows versions prior to Windows
556
- * 8.1, and will fail with boost::asio::error::operation_not_supported on
557
- * these platforms.
558
- */
559
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
560
- && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
561
- __declspec(deprecated("This function always fails with "
562
- "operation_not_supported when used on Windows versions "
563
- "prior to Windows 8.1."))
564
- #endif
565
- native_handle_type release()
566
- {
567
- boost::system::error_code ec;
568
- native_handle_type s = impl_.get_service().release(
569
- impl_.get_implementation(), ec);
570
- boost::asio::detail::throw_error(ec, "release");
571
- return s;
572
- }
573
-
574
- /// Release ownership of the underlying native socket.
575
- /**
576
- * This function causes all outstanding asynchronous connect, send and receive
577
- * operations to finish immediately, and the handlers for cancelled operations
578
- * will be passed the boost::asio::error::operation_aborted error. Ownership
579
- * of the native socket is then transferred to the caller.
580
- *
581
- * @param ec Set to indicate what error occurred, if any.
582
- *
583
- * @note This function is unsupported on Windows versions prior to Windows
584
- * 8.1, and will fail with boost::asio::error::operation_not_supported on
585
- * these platforms.
586
- */
587
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
588
- && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
589
- __declspec(deprecated("This function always fails with "
590
- "operation_not_supported when used on Windows versions "
591
- "prior to Windows 8.1."))
592
- #endif
593
- native_handle_type release(boost::system::error_code& ec)
594
- {
595
- return impl_.get_service().release(impl_.get_implementation(), ec);
596
- }
597
-
598
- /// Get the native socket representation.
599
- /**
600
- * This function may be used to obtain the underlying representation of the
601
- * socket. This is intended to allow access to native socket functionality
602
- * that is not otherwise provided.
603
- */
604
- native_handle_type native_handle()
605
- {
606
- return impl_.get_service().native_handle(impl_.get_implementation());
607
- }
608
-
609
- /// Cancel all asynchronous operations associated with the socket.
610
- /**
611
- * This function causes all outstanding asynchronous connect, send and receive
612
- * operations to finish immediately, and the handlers for cancelled operations
613
- * will be passed the boost::asio::error::operation_aborted error.
614
- *
615
- * @throws boost::system::system_error Thrown on failure.
616
- *
617
- * @note Calls to cancel() will always fail with
618
- * boost::asio::error::operation_not_supported when run on Windows XP, Windows
619
- * Server 2003, and earlier versions of Windows, unless
620
- * BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has
621
- * two issues that should be considered before enabling its use:
622
- *
623
- * @li It will only cancel asynchronous operations that were initiated in the
624
- * current thread.
625
- *
626
- * @li It can appear to complete without error, but the request to cancel the
627
- * unfinished operations may be silently ignored by the operating system.
628
- * Whether it works or not seems to depend on the drivers that are installed.
629
- *
630
- * For portable cancellation, consider using one of the following
631
- * alternatives:
632
- *
633
- * @li Disable asio's I/O completion port backend by defining
634
- * BOOST_ASIO_DISABLE_IOCP.
635
- *
636
- * @li Use the close() function to simultaneously cancel the outstanding
637
- * operations and close the socket.
638
- *
639
- * When running on Windows Vista, Windows Server 2008, and later, the
640
- * CancelIoEx function is always used. This function does not have the
641
- * problems described above.
642
- */
643
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
644
- && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \
645
- && !defined(BOOST_ASIO_ENABLE_CANCELIO)
646
- __declspec(deprecated("By default, this function always fails with "
647
- "operation_not_supported when used on Windows XP, Windows Server 2003, "
648
- "or earlier. Consult documentation for details."))
649
- #endif
650
- void cancel()
651
- {
652
- boost::system::error_code ec;
653
- impl_.get_service().cancel(impl_.get_implementation(), ec);
654
- boost::asio::detail::throw_error(ec, "cancel");
655
- }
656
-
657
- /// Cancel all asynchronous operations associated with the socket.
658
- /**
659
- * This function causes all outstanding asynchronous connect, send and receive
660
- * operations to finish immediately, and the handlers for cancelled operations
661
- * will be passed the boost::asio::error::operation_aborted error.
662
- *
663
- * @param ec Set to indicate what error occurred, if any.
664
- *
665
- * @note Calls to cancel() will always fail with
666
- * boost::asio::error::operation_not_supported when run on Windows XP, Windows
667
- * Server 2003, and earlier versions of Windows, unless
668
- * BOOST_ASIO_ENABLE_CANCELIO is defined. However, the CancelIo function has
669
- * two issues that should be considered before enabling its use:
670
- *
671
- * @li It will only cancel asynchronous operations that were initiated in the
672
- * current thread.
673
- *
674
- * @li It can appear to complete without error, but the request to cancel the
675
- * unfinished operations may be silently ignored by the operating system.
676
- * Whether it works or not seems to depend on the drivers that are installed.
677
- *
678
- * For portable cancellation, consider using one of the following
679
- * alternatives:
680
- *
681
- * @li Disable asio's I/O completion port backend by defining
682
- * BOOST_ASIO_DISABLE_IOCP.
683
- *
684
- * @li Use the close() function to simultaneously cancel the outstanding
685
- * operations and close the socket.
686
- *
687
- * When running on Windows Vista, Windows Server 2008, and later, the
688
- * CancelIoEx function is always used. This function does not have the
689
- * problems described above.
690
- */
691
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
692
- && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600) \
693
- && !defined(BOOST_ASIO_ENABLE_CANCELIO)
694
- __declspec(deprecated("By default, this function always fails with "
695
- "operation_not_supported when used on Windows XP, Windows Server 2003, "
696
- "or earlier. Consult documentation for details."))
697
- #endif
698
- BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)
699
- {
700
- impl_.get_service().cancel(impl_.get_implementation(), ec);
701
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
702
- }
703
-
704
- /// Determine whether the socket is at the out-of-band data mark.
705
- /**
706
- * This function is used to check whether the socket input is currently
707
- * positioned at the out-of-band data mark.
708
- *
709
- * @return A bool indicating whether the socket is at the out-of-band data
710
- * mark.
711
- *
712
- * @throws boost::system::system_error Thrown on failure.
713
- */
714
- bool at_mark() const
715
- {
716
- boost::system::error_code ec;
717
- bool b = impl_.get_service().at_mark(impl_.get_implementation(), ec);
718
- boost::asio::detail::throw_error(ec, "at_mark");
719
- return b;
720
- }
721
-
722
- /// Determine whether the socket is at the out-of-band data mark.
723
- /**
724
- * This function is used to check whether the socket input is currently
725
- * positioned at the out-of-band data mark.
726
- *
727
- * @param ec Set to indicate what error occurred, if any.
728
- *
729
- * @return A bool indicating whether the socket is at the out-of-band data
730
- * mark.
731
- */
732
- bool at_mark(boost::system::error_code& ec) const
733
- {
734
- return impl_.get_service().at_mark(impl_.get_implementation(), ec);
735
- }
736
-
737
- /// Determine the number of bytes available for reading.
738
- /**
739
- * This function is used to determine the number of bytes that may be read
740
- * without blocking.
741
- *
742
- * @return The number of bytes that may be read without blocking, or 0 if an
743
- * error occurs.
744
- *
745
- * @throws boost::system::system_error Thrown on failure.
746
- */
747
- std::size_t available() const
748
- {
749
- boost::system::error_code ec;
750
- std::size_t s = impl_.get_service().available(
751
- impl_.get_implementation(), ec);
752
- boost::asio::detail::throw_error(ec, "available");
753
- return s;
754
- }
755
-
756
- /// Determine the number of bytes available for reading.
757
- /**
758
- * This function is used to determine the number of bytes that may be read
759
- * without blocking.
760
- *
761
- * @param ec Set to indicate what error occurred, if any.
762
- *
763
- * @return The number of bytes that may be read without blocking, or 0 if an
764
- * error occurs.
765
- */
766
- std::size_t available(boost::system::error_code& ec) const
767
- {
768
- return impl_.get_service().available(impl_.get_implementation(), ec);
769
- }
770
-
771
- /// Bind the socket to the given local endpoint.
772
- /**
773
- * This function binds the socket to the specified endpoint on the local
774
- * machine.
775
- *
776
- * @param endpoint An endpoint on the local machine to which the socket will
777
- * be bound.
778
- *
779
- * @throws boost::system::system_error Thrown on failure.
780
- *
781
- * @par Example
782
- * @code
783
- * boost::asio::ip::tcp::socket socket(my_context);
784
- * socket.open(boost::asio::ip::tcp::v4());
785
- * socket.bind(boost::asio::ip::tcp::endpoint(
786
- * boost::asio::ip::tcp::v4(), 12345));
787
- * @endcode
788
- */
789
- void bind(const endpoint_type& endpoint)
790
- {
791
- boost::system::error_code ec;
792
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
793
- boost::asio::detail::throw_error(ec, "bind");
794
- }
795
-
796
- /// Bind the socket to the given local endpoint.
797
- /**
798
- * This function binds the socket to the specified endpoint on the local
799
- * machine.
800
- *
801
- * @param endpoint An endpoint on the local machine to which the socket will
802
- * be bound.
803
- *
804
- * @param ec Set to indicate what error occurred, if any.
805
- *
806
- * @par Example
807
- * @code
808
- * boost::asio::ip::tcp::socket socket(my_context);
809
- * socket.open(boost::asio::ip::tcp::v4());
810
- * boost::system::error_code ec;
811
- * socket.bind(boost::asio::ip::tcp::endpoint(
812
- * boost::asio::ip::tcp::v4(), 12345), ec);
813
- * if (ec)
814
- * {
815
- * // An error occurred.
816
- * }
817
- * @endcode
818
- */
819
- BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
820
- boost::system::error_code& ec)
821
- {
822
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
823
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
824
- }
825
-
826
- /// Connect the socket to the specified endpoint.
827
- /**
828
- * This function is used to connect a socket to the specified remote endpoint.
829
- * The function call will block until the connection is successfully made or
830
- * an error occurs.
831
- *
832
- * The socket is automatically opened if it is not already open. If the
833
- * connect fails, and the socket was automatically opened, the socket is
834
- * not returned to the closed state.
835
- *
836
- * @param peer_endpoint The remote endpoint to which the socket will be
837
- * connected.
838
- *
839
- * @throws boost::system::system_error Thrown on failure.
840
- *
841
- * @par Example
842
- * @code
843
- * boost::asio::ip::tcp::socket socket(my_context);
844
- * boost::asio::ip::tcp::endpoint endpoint(
845
- * boost::asio::ip::address::from_string("1.2.3.4"), 12345);
846
- * socket.connect(endpoint);
847
- * @endcode
848
- */
849
- void connect(const endpoint_type& peer_endpoint)
850
- {
851
- boost::system::error_code ec;
852
- if (!is_open())
853
- {
854
- impl_.get_service().open(impl_.get_implementation(),
855
- peer_endpoint.protocol(), ec);
856
- boost::asio::detail::throw_error(ec, "connect");
857
- }
858
- impl_.get_service().connect(impl_.get_implementation(), peer_endpoint, ec);
859
- boost::asio::detail::throw_error(ec, "connect");
860
- }
861
-
862
- /// Connect the socket to the specified endpoint.
863
- /**
864
- * This function is used to connect a socket to the specified remote endpoint.
865
- * The function call will block until the connection is successfully made or
866
- * an error occurs.
867
- *
868
- * The socket is automatically opened if it is not already open. If the
869
- * connect fails, and the socket was automatically opened, the socket is
870
- * not returned to the closed state.
871
- *
872
- * @param peer_endpoint The remote endpoint to which the socket will be
873
- * connected.
874
- *
875
- * @param ec Set to indicate what error occurred, if any.
876
- *
877
- * @par Example
878
- * @code
879
- * boost::asio::ip::tcp::socket socket(my_context);
880
- * boost::asio::ip::tcp::endpoint endpoint(
881
- * boost::asio::ip::address::from_string("1.2.3.4"), 12345);
882
- * boost::system::error_code ec;
883
- * socket.connect(endpoint, ec);
884
- * if (ec)
885
- * {
886
- * // An error occurred.
887
- * }
888
- * @endcode
889
- */
890
- BOOST_ASIO_SYNC_OP_VOID connect(const endpoint_type& peer_endpoint,
891
- boost::system::error_code& ec)
892
- {
893
- if (!is_open())
894
- {
895
- impl_.get_service().open(impl_.get_implementation(),
896
- peer_endpoint.protocol(), ec);
897
- if (ec)
898
- {
899
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
900
- }
901
- }
902
-
903
- impl_.get_service().connect(impl_.get_implementation(), peer_endpoint, ec);
904
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
905
- }
906
-
907
- /// Start an asynchronous connect.
908
- /**
909
- * This function is used to asynchronously connect a socket to the specified
910
- * remote endpoint. It is an initiating function for an @ref
911
- * asynchronous_operation, and always returns immediately.
912
- *
913
- * The socket is automatically opened if it is not already open. If the
914
- * connect fails, and the socket was automatically opened, the socket is
915
- * not returned to the closed state.
916
- *
917
- * @param peer_endpoint The remote endpoint to which the socket will be
918
- * connected. Copies will be made of the endpoint object as required.
919
- *
920
- * @param token The @ref completion_token that will be used to produce a
921
- * completion handler, which will be called when the connect completes.
922
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
923
- * @ref yield_context, or a function object with the correct completion
924
- * signature. The function signature of the completion handler must be:
925
- * @code void handler(
926
- * const boost::system::error_code& error // Result of operation.
927
- * ); @endcode
928
- * Regardless of whether the asynchronous operation completes immediately or
929
- * not, the completion handler will not be invoked from within this function.
930
- * On immediate completion, invocation of the handler will be performed in a
931
- * manner equivalent to using boost::asio::async_immediate().
932
- *
933
- * @par Completion Signature
934
- * @code void(boost::system::error_code) @endcode
935
- *
936
- * @par Example
937
- * @code
938
- * void connect_handler(const boost::system::error_code& error)
939
- * {
940
- * if (!error)
941
- * {
942
- * // Connect succeeded.
943
- * }
944
- * }
945
- *
946
- * ...
947
- *
948
- * boost::asio::ip::tcp::socket socket(my_context);
949
- * boost::asio::ip::tcp::endpoint endpoint(
950
- * boost::asio::ip::address::from_string("1.2.3.4"), 12345);
951
- * socket.async_connect(endpoint, connect_handler);
952
- * @endcode
953
- *
954
- * @par Per-Operation Cancellation
955
- * On POSIX or Windows operating systems, this asynchronous operation supports
956
- * cancellation for the following boost::asio::cancellation_type values:
957
- *
958
- * @li @c cancellation_type::terminal
959
- *
960
- * @li @c cancellation_type::partial
961
- *
962
- * @li @c cancellation_type::total
963
- */
964
- template <
965
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
966
- ConnectToken = default_completion_token_t<executor_type>>
967
- auto async_connect(const endpoint_type& peer_endpoint,
968
- ConnectToken&& token = default_completion_token_t<executor_type>())
969
- -> decltype(
970
- async_initiate<ConnectToken, void (boost::system::error_code)>(
971
- declval<initiate_async_connect>(), token,
972
- peer_endpoint, declval<boost::system::error_code&>()))
973
- {
974
- boost::system::error_code open_ec;
975
- if (!is_open())
976
- {
977
- const protocol_type protocol = peer_endpoint.protocol();
978
- impl_.get_service().open(impl_.get_implementation(), protocol, open_ec);
979
- }
980
-
981
- return async_initiate<ConnectToken, void (boost::system::error_code)>(
982
- initiate_async_connect(this), token, peer_endpoint, open_ec);
983
- }
984
-
985
- /// Set an option on the socket.
986
- /**
987
- * This function is used to set an option on the socket.
988
- *
989
- * @param option The new option value to be set on the socket.
990
- *
991
- * @throws boost::system::system_error Thrown on failure.
992
- *
993
- * @sa SettableSocketOption @n
994
- * boost::asio::socket_base::broadcast @n
995
- * boost::asio::socket_base::do_not_route @n
996
- * boost::asio::socket_base::keep_alive @n
997
- * boost::asio::socket_base::linger @n
998
- * boost::asio::socket_base::receive_buffer_size @n
999
- * boost::asio::socket_base::receive_low_watermark @n
1000
- * boost::asio::socket_base::reuse_address @n
1001
- * boost::asio::socket_base::send_buffer_size @n
1002
- * boost::asio::socket_base::send_low_watermark @n
1003
- * boost::asio::ip::multicast::join_group @n
1004
- * boost::asio::ip::multicast::leave_group @n
1005
- * boost::asio::ip::multicast::enable_loopback @n
1006
- * boost::asio::ip::multicast::outbound_interface @n
1007
- * boost::asio::ip::multicast::hops @n
1008
- * boost::asio::ip::tcp::no_delay
1009
- *
1010
- * @par Example
1011
- * Setting the IPPROTO_TCP/TCP_NODELAY option:
1012
- * @code
1013
- * boost::asio::ip::tcp::socket socket(my_context);
1014
- * ...
1015
- * boost::asio::ip::tcp::no_delay option(true);
1016
- * socket.set_option(option);
1017
- * @endcode
1018
- */
1019
- template <typename SettableSocketOption>
1020
- void set_option(const SettableSocketOption& option)
1021
- {
1022
- boost::system::error_code ec;
1023
- impl_.get_service().set_option(impl_.get_implementation(), option, ec);
1024
- boost::asio::detail::throw_error(ec, "set_option");
1025
- }
1026
-
1027
- /// Set an option on the socket.
1028
- /**
1029
- * This function is used to set an option on the socket.
1030
- *
1031
- * @param option The new option value to be set on the socket.
1032
- *
1033
- * @param ec Set to indicate what error occurred, if any.
1034
- *
1035
- * @sa SettableSocketOption @n
1036
- * boost::asio::socket_base::broadcast @n
1037
- * boost::asio::socket_base::do_not_route @n
1038
- * boost::asio::socket_base::keep_alive @n
1039
- * boost::asio::socket_base::linger @n
1040
- * boost::asio::socket_base::receive_buffer_size @n
1041
- * boost::asio::socket_base::receive_low_watermark @n
1042
- * boost::asio::socket_base::reuse_address @n
1043
- * boost::asio::socket_base::send_buffer_size @n
1044
- * boost::asio::socket_base::send_low_watermark @n
1045
- * boost::asio::ip::multicast::join_group @n
1046
- * boost::asio::ip::multicast::leave_group @n
1047
- * boost::asio::ip::multicast::enable_loopback @n
1048
- * boost::asio::ip::multicast::outbound_interface @n
1049
- * boost::asio::ip::multicast::hops @n
1050
- * boost::asio::ip::tcp::no_delay
1051
- *
1052
- * @par Example
1053
- * Setting the IPPROTO_TCP/TCP_NODELAY option:
1054
- * @code
1055
- * boost::asio::ip::tcp::socket socket(my_context);
1056
- * ...
1057
- * boost::asio::ip::tcp::no_delay option(true);
1058
- * boost::system::error_code ec;
1059
- * socket.set_option(option, ec);
1060
- * if (ec)
1061
- * {
1062
- * // An error occurred.
1063
- * }
1064
- * @endcode
1065
- */
1066
- template <typename SettableSocketOption>
1067
- BOOST_ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option,
1068
- boost::system::error_code& ec)
1069
- {
1070
- impl_.get_service().set_option(impl_.get_implementation(), option, ec);
1071
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1072
- }
1073
-
1074
- /// Get an option from the socket.
1075
- /**
1076
- * This function is used to get the current value of an option on the socket.
1077
- *
1078
- * @param option The option value to be obtained from the socket.
1079
- *
1080
- * @throws boost::system::system_error Thrown on failure.
1081
- *
1082
- * @sa GettableSocketOption @n
1083
- * boost::asio::socket_base::broadcast @n
1084
- * boost::asio::socket_base::do_not_route @n
1085
- * boost::asio::socket_base::keep_alive @n
1086
- * boost::asio::socket_base::linger @n
1087
- * boost::asio::socket_base::receive_buffer_size @n
1088
- * boost::asio::socket_base::receive_low_watermark @n
1089
- * boost::asio::socket_base::reuse_address @n
1090
- * boost::asio::socket_base::send_buffer_size @n
1091
- * boost::asio::socket_base::send_low_watermark @n
1092
- * boost::asio::ip::multicast::join_group @n
1093
- * boost::asio::ip::multicast::leave_group @n
1094
- * boost::asio::ip::multicast::enable_loopback @n
1095
- * boost::asio::ip::multicast::outbound_interface @n
1096
- * boost::asio::ip::multicast::hops @n
1097
- * boost::asio::ip::tcp::no_delay
1098
- *
1099
- * @par Example
1100
- * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option:
1101
- * @code
1102
- * boost::asio::ip::tcp::socket socket(my_context);
1103
- * ...
1104
- * boost::asio::ip::tcp::socket::keep_alive option;
1105
- * socket.get_option(option);
1106
- * bool is_set = option.value();
1107
- * @endcode
1108
- */
1109
- template <typename GettableSocketOption>
1110
- void get_option(GettableSocketOption& option) const
1111
- {
1112
- boost::system::error_code ec;
1113
- impl_.get_service().get_option(impl_.get_implementation(), option, ec);
1114
- boost::asio::detail::throw_error(ec, "get_option");
1115
- }
1116
-
1117
- /// Get an option from the socket.
1118
- /**
1119
- * This function is used to get the current value of an option on the socket.
1120
- *
1121
- * @param option The option value to be obtained from the socket.
1122
- *
1123
- * @param ec Set to indicate what error occurred, if any.
1124
- *
1125
- * @sa GettableSocketOption @n
1126
- * boost::asio::socket_base::broadcast @n
1127
- * boost::asio::socket_base::do_not_route @n
1128
- * boost::asio::socket_base::keep_alive @n
1129
- * boost::asio::socket_base::linger @n
1130
- * boost::asio::socket_base::receive_buffer_size @n
1131
- * boost::asio::socket_base::receive_low_watermark @n
1132
- * boost::asio::socket_base::reuse_address @n
1133
- * boost::asio::socket_base::send_buffer_size @n
1134
- * boost::asio::socket_base::send_low_watermark @n
1135
- * boost::asio::ip::multicast::join_group @n
1136
- * boost::asio::ip::multicast::leave_group @n
1137
- * boost::asio::ip::multicast::enable_loopback @n
1138
- * boost::asio::ip::multicast::outbound_interface @n
1139
- * boost::asio::ip::multicast::hops @n
1140
- * boost::asio::ip::tcp::no_delay
1141
- *
1142
- * @par Example
1143
- * Getting the value of the SOL_SOCKET/SO_KEEPALIVE option:
1144
- * @code
1145
- * boost::asio::ip::tcp::socket socket(my_context);
1146
- * ...
1147
- * boost::asio::ip::tcp::socket::keep_alive option;
1148
- * boost::system::error_code ec;
1149
- * socket.get_option(option, ec);
1150
- * if (ec)
1151
- * {
1152
- * // An error occurred.
1153
- * }
1154
- * bool is_set = option.value();
1155
- * @endcode
1156
- */
1157
- template <typename GettableSocketOption>
1158
- BOOST_ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option,
1159
- boost::system::error_code& ec) const
1160
- {
1161
- impl_.get_service().get_option(impl_.get_implementation(), option, ec);
1162
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1163
- }
1164
-
1165
- /// Perform an IO control command on the socket.
1166
- /**
1167
- * This function is used to execute an IO control command on the socket.
1168
- *
1169
- * @param command The IO control command to be performed on the socket.
1170
- *
1171
- * @throws boost::system::system_error Thrown on failure.
1172
- *
1173
- * @sa IoControlCommand @n
1174
- * boost::asio::socket_base::bytes_readable @n
1175
- * boost::asio::socket_base::non_blocking_io
1176
- *
1177
- * @par Example
1178
- * Getting the number of bytes ready to read:
1179
- * @code
1180
- * boost::asio::ip::tcp::socket socket(my_context);
1181
- * ...
1182
- * boost::asio::ip::tcp::socket::bytes_readable command;
1183
- * socket.io_control(command);
1184
- * std::size_t bytes_readable = command.get();
1185
- * @endcode
1186
- */
1187
- template <typename IoControlCommand>
1188
- void io_control(IoControlCommand& command)
1189
- {
1190
- boost::system::error_code ec;
1191
- impl_.get_service().io_control(impl_.get_implementation(), command, ec);
1192
- boost::asio::detail::throw_error(ec, "io_control");
1193
- }
1194
-
1195
- /// Perform an IO control command on the socket.
1196
- /**
1197
- * This function is used to execute an IO control command on the socket.
1198
- *
1199
- * @param command The IO control command to be performed on the socket.
1200
- *
1201
- * @param ec Set to indicate what error occurred, if any.
1202
- *
1203
- * @sa IoControlCommand @n
1204
- * boost::asio::socket_base::bytes_readable @n
1205
- * boost::asio::socket_base::non_blocking_io
1206
- *
1207
- * @par Example
1208
- * Getting the number of bytes ready to read:
1209
- * @code
1210
- * boost::asio::ip::tcp::socket socket(my_context);
1211
- * ...
1212
- * boost::asio::ip::tcp::socket::bytes_readable command;
1213
- * boost::system::error_code ec;
1214
- * socket.io_control(command, ec);
1215
- * if (ec)
1216
- * {
1217
- * // An error occurred.
1218
- * }
1219
- * std::size_t bytes_readable = command.get();
1220
- * @endcode
1221
- */
1222
- template <typename IoControlCommand>
1223
- BOOST_ASIO_SYNC_OP_VOID io_control(IoControlCommand& command,
1224
- boost::system::error_code& ec)
1225
- {
1226
- impl_.get_service().io_control(impl_.get_implementation(), command, ec);
1227
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1228
- }
1229
-
1230
- /// Gets the non-blocking mode of the socket.
1231
- /**
1232
- * @returns @c true if the socket's synchronous operations will fail with
1233
- * boost::asio::error::would_block if they are unable to perform the requested
1234
- * operation immediately. If @c false, synchronous operations will block
1235
- * until complete.
1236
- *
1237
- * @note The non-blocking mode has no effect on the behaviour of asynchronous
1238
- * operations. Asynchronous operations will never fail with the error
1239
- * boost::asio::error::would_block.
1240
- */
1241
- bool non_blocking() const
1242
- {
1243
- return impl_.get_service().non_blocking(impl_.get_implementation());
1244
- }
1245
-
1246
- /// Sets the non-blocking mode of the socket.
1247
- /**
1248
- * @param mode If @c true, the socket's synchronous operations will fail with
1249
- * boost::asio::error::would_block if they are unable to perform the requested
1250
- * operation immediately. If @c false, synchronous operations will block
1251
- * until complete.
1252
- *
1253
- * @throws boost::system::system_error Thrown on failure.
1254
- *
1255
- * @note The non-blocking mode has no effect on the behaviour of asynchronous
1256
- * operations. Asynchronous operations will never fail with the error
1257
- * boost::asio::error::would_block.
1258
- */
1259
- void non_blocking(bool mode)
1260
- {
1261
- boost::system::error_code ec;
1262
- impl_.get_service().non_blocking(impl_.get_implementation(), mode, ec);
1263
- boost::asio::detail::throw_error(ec, "non_blocking");
1264
- }
1265
-
1266
- /// Sets the non-blocking mode of the socket.
1267
- /**
1268
- * @param mode If @c true, the socket's synchronous operations will fail with
1269
- * boost::asio::error::would_block if they are unable to perform the requested
1270
- * operation immediately. If @c false, synchronous operations will block
1271
- * until complete.
1272
- *
1273
- * @param ec Set to indicate what error occurred, if any.
1274
- *
1275
- * @note The non-blocking mode has no effect on the behaviour of asynchronous
1276
- * operations. Asynchronous operations will never fail with the error
1277
- * boost::asio::error::would_block.
1278
- */
1279
- BOOST_ASIO_SYNC_OP_VOID non_blocking(
1280
- bool mode, boost::system::error_code& ec)
1281
- {
1282
- impl_.get_service().non_blocking(impl_.get_implementation(), mode, ec);
1283
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1284
- }
1285
-
1286
- /// Gets the non-blocking mode of the native socket implementation.
1287
- /**
1288
- * This function is used to retrieve the non-blocking mode of the underlying
1289
- * native socket. This mode has no effect on the behaviour of the socket
1290
- * object's synchronous operations.
1291
- *
1292
- * @returns @c true if the underlying socket is in non-blocking mode and
1293
- * direct system calls may fail with boost::asio::error::would_block (or the
1294
- * equivalent system error).
1295
- *
1296
- * @note The current non-blocking mode is cached by the socket object.
1297
- * Consequently, the return value may be incorrect if the non-blocking mode
1298
- * was set directly on the native socket.
1299
- *
1300
- * @par Example
1301
- * This function is intended to allow the encapsulation of arbitrary
1302
- * non-blocking system calls as asynchronous operations, in a way that is
1303
- * transparent to the user of the socket object. The following example
1304
- * illustrates how Linux's @c sendfile system call might be encapsulated:
1305
- * @code template <typename Handler>
1306
- * struct sendfile_op
1307
- * {
1308
- * tcp::socket& sock_;
1309
- * int fd_;
1310
- * Handler handler_;
1311
- * off_t offset_;
1312
- * std::size_t total_bytes_transferred_;
1313
- *
1314
- * // Function call operator meeting WriteHandler requirements.
1315
- * // Used as the handler for the async_write_some operation.
1316
- * void operator()(boost::system::error_code ec, std::size_t)
1317
- * {
1318
- * // Put the underlying socket into non-blocking mode.
1319
- * if (!ec)
1320
- * if (!sock_.native_non_blocking())
1321
- * sock_.native_non_blocking(true, ec);
1322
- *
1323
- * if (!ec)
1324
- * {
1325
- * for (;;)
1326
- * {
1327
- * // Try the system call.
1328
- * errno = 0;
1329
- * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
1330
- * ec = boost::system::error_code(n < 0 ? errno : 0,
1331
- * boost::asio::error::get_system_category());
1332
- * total_bytes_transferred_ += ec ? 0 : n;
1333
- *
1334
- * // Retry operation immediately if interrupted by signal.
1335
- * if (ec == boost::asio::error::interrupted)
1336
- * continue;
1337
- *
1338
- * // Check if we need to run the operation again.
1339
- * if (ec == boost::asio::error::would_block
1340
- * || ec == boost::asio::error::try_again)
1341
- * {
1342
- * // We have to wait for the socket to become ready again.
1343
- * sock_.async_wait(tcp::socket::wait_write, *this);
1344
- * return;
1345
- * }
1346
- *
1347
- * if (ec || n == 0)
1348
- * {
1349
- * // An error occurred, or we have reached the end of the file.
1350
- * // Either way we must exit the loop so we can call the handler.
1351
- * break;
1352
- * }
1353
- *
1354
- * // Loop around to try calling sendfile again.
1355
- * }
1356
- * }
1357
- *
1358
- * // Pass result back to user's handler.
1359
- * handler_(ec, total_bytes_transferred_);
1360
- * }
1361
- * };
1362
- *
1363
- * template <typename Handler>
1364
- * void async_sendfile(tcp::socket& sock, int fd, Handler h)
1365
- * {
1366
- * sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
1367
- * sock.async_wait(tcp::socket::wait_write, op);
1368
- * } @endcode
1369
- */
1370
- bool native_non_blocking() const
1371
- {
1372
- return impl_.get_service().native_non_blocking(impl_.get_implementation());
1373
- }
1374
-
1375
- /// Sets the non-blocking mode of the native socket implementation.
1376
- /**
1377
- * This function is used to modify the non-blocking mode of the underlying
1378
- * native socket. It has no effect on the behaviour of the socket object's
1379
- * synchronous operations.
1380
- *
1381
- * @param mode If @c true, the underlying socket is put into non-blocking
1382
- * mode and direct system calls may fail with boost::asio::error::would_block
1383
- * (or the equivalent system error).
1384
- *
1385
- * @throws boost::system::system_error Thrown on failure. If the @c mode is
1386
- * @c false, but the current value of @c non_blocking() is @c true, this
1387
- * function fails with boost::asio::error::invalid_argument, as the
1388
- * combination does not make sense.
1389
- *
1390
- * @par Example
1391
- * This function is intended to allow the encapsulation of arbitrary
1392
- * non-blocking system calls as asynchronous operations, in a way that is
1393
- * transparent to the user of the socket object. The following example
1394
- * illustrates how Linux's @c sendfile system call might be encapsulated:
1395
- * @code template <typename Handler>
1396
- * struct sendfile_op
1397
- * {
1398
- * tcp::socket& sock_;
1399
- * int fd_;
1400
- * Handler handler_;
1401
- * off_t offset_;
1402
- * std::size_t total_bytes_transferred_;
1403
- *
1404
- * // Function call operator meeting WriteHandler requirements.
1405
- * // Used as the handler for the async_write_some operation.
1406
- * void operator()(boost::system::error_code ec, std::size_t)
1407
- * {
1408
- * // Put the underlying socket into non-blocking mode.
1409
- * if (!ec)
1410
- * if (!sock_.native_non_blocking())
1411
- * sock_.native_non_blocking(true, ec);
1412
- *
1413
- * if (!ec)
1414
- * {
1415
- * for (;;)
1416
- * {
1417
- * // Try the system call.
1418
- * errno = 0;
1419
- * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
1420
- * ec = boost::system::error_code(n < 0 ? errno : 0,
1421
- * boost::asio::error::get_system_category());
1422
- * total_bytes_transferred_ += ec ? 0 : n;
1423
- *
1424
- * // Retry operation immediately if interrupted by signal.
1425
- * if (ec == boost::asio::error::interrupted)
1426
- * continue;
1427
- *
1428
- * // Check if we need to run the operation again.
1429
- * if (ec == boost::asio::error::would_block
1430
- * || ec == boost::asio::error::try_again)
1431
- * {
1432
- * // We have to wait for the socket to become ready again.
1433
- * sock_.async_wait(tcp::socket::wait_write, *this);
1434
- * return;
1435
- * }
1436
- *
1437
- * if (ec || n == 0)
1438
- * {
1439
- * // An error occurred, or we have reached the end of the file.
1440
- * // Either way we must exit the loop so we can call the handler.
1441
- * break;
1442
- * }
1443
- *
1444
- * // Loop around to try calling sendfile again.
1445
- * }
1446
- * }
1447
- *
1448
- * // Pass result back to user's handler.
1449
- * handler_(ec, total_bytes_transferred_);
1450
- * }
1451
- * };
1452
- *
1453
- * template <typename Handler>
1454
- * void async_sendfile(tcp::socket& sock, int fd, Handler h)
1455
- * {
1456
- * sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
1457
- * sock.async_wait(tcp::socket::wait_write, op);
1458
- * } @endcode
1459
- */
1460
- void native_non_blocking(bool mode)
1461
- {
1462
- boost::system::error_code ec;
1463
- impl_.get_service().native_non_blocking(
1464
- impl_.get_implementation(), mode, ec);
1465
- boost::asio::detail::throw_error(ec, "native_non_blocking");
1466
- }
1467
-
1468
- /// Sets the non-blocking mode of the native socket implementation.
1469
- /**
1470
- * This function is used to modify the non-blocking mode of the underlying
1471
- * native socket. It has no effect on the behaviour of the socket object's
1472
- * synchronous operations.
1473
- *
1474
- * @param mode If @c true, the underlying socket is put into non-blocking
1475
- * mode and direct system calls may fail with boost::asio::error::would_block
1476
- * (or the equivalent system error).
1477
- *
1478
- * @param ec Set to indicate what error occurred, if any. If the @c mode is
1479
- * @c false, but the current value of @c non_blocking() is @c true, this
1480
- * function fails with boost::asio::error::invalid_argument, as the
1481
- * combination does not make sense.
1482
- *
1483
- * @par Example
1484
- * This function is intended to allow the encapsulation of arbitrary
1485
- * non-blocking system calls as asynchronous operations, in a way that is
1486
- * transparent to the user of the socket object. The following example
1487
- * illustrates how Linux's @c sendfile system call might be encapsulated:
1488
- * @code template <typename Handler>
1489
- * struct sendfile_op
1490
- * {
1491
- * tcp::socket& sock_;
1492
- * int fd_;
1493
- * Handler handler_;
1494
- * off_t offset_;
1495
- * std::size_t total_bytes_transferred_;
1496
- *
1497
- * // Function call operator meeting WriteHandler requirements.
1498
- * // Used as the handler for the async_write_some operation.
1499
- * void operator()(boost::system::error_code ec, std::size_t)
1500
- * {
1501
- * // Put the underlying socket into non-blocking mode.
1502
- * if (!ec)
1503
- * if (!sock_.native_non_blocking())
1504
- * sock_.native_non_blocking(true, ec);
1505
- *
1506
- * if (!ec)
1507
- * {
1508
- * for (;;)
1509
- * {
1510
- * // Try the system call.
1511
- * errno = 0;
1512
- * int n = ::sendfile(sock_.native_handle(), fd_, &offset_, 65536);
1513
- * ec = boost::system::error_code(n < 0 ? errno : 0,
1514
- * boost::asio::error::get_system_category());
1515
- * total_bytes_transferred_ += ec ? 0 : n;
1516
- *
1517
- * // Retry operation immediately if interrupted by signal.
1518
- * if (ec == boost::asio::error::interrupted)
1519
- * continue;
1520
- *
1521
- * // Check if we need to run the operation again.
1522
- * if (ec == boost::asio::error::would_block
1523
- * || ec == boost::asio::error::try_again)
1524
- * {
1525
- * // We have to wait for the socket to become ready again.
1526
- * sock_.async_wait(tcp::socket::wait_write, *this);
1527
- * return;
1528
- * }
1529
- *
1530
- * if (ec || n == 0)
1531
- * {
1532
- * // An error occurred, or we have reached the end of the file.
1533
- * // Either way we must exit the loop so we can call the handler.
1534
- * break;
1535
- * }
1536
- *
1537
- * // Loop around to try calling sendfile again.
1538
- * }
1539
- * }
1540
- *
1541
- * // Pass result back to user's handler.
1542
- * handler_(ec, total_bytes_transferred_);
1543
- * }
1544
- * };
1545
- *
1546
- * template <typename Handler>
1547
- * void async_sendfile(tcp::socket& sock, int fd, Handler h)
1548
- * {
1549
- * sendfile_op<Handler> op = { sock, fd, h, 0, 0 };
1550
- * sock.async_wait(tcp::socket::wait_write, op);
1551
- * } @endcode
1552
- */
1553
- BOOST_ASIO_SYNC_OP_VOID native_non_blocking(
1554
- bool mode, boost::system::error_code& ec)
1555
- {
1556
- impl_.get_service().native_non_blocking(
1557
- impl_.get_implementation(), mode, ec);
1558
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1559
- }
1560
-
1561
- /// Get the local endpoint of the socket.
1562
- /**
1563
- * This function is used to obtain the locally bound endpoint of the socket.
1564
- *
1565
- * @returns An object that represents the local endpoint of the socket.
1566
- *
1567
- * @throws boost::system::system_error Thrown on failure.
1568
- *
1569
- * @par Example
1570
- * @code
1571
- * boost::asio::ip::tcp::socket socket(my_context);
1572
- * ...
1573
- * boost::asio::ip::tcp::endpoint endpoint = socket.local_endpoint();
1574
- * @endcode
1575
- */
1576
- endpoint_type local_endpoint() const
1577
- {
1578
- boost::system::error_code ec;
1579
- endpoint_type ep = impl_.get_service().local_endpoint(
1580
- impl_.get_implementation(), ec);
1581
- boost::asio::detail::throw_error(ec, "local_endpoint");
1582
- return ep;
1583
- }
1584
-
1585
- /// Get the local endpoint of the socket.
1586
- /**
1587
- * This function is used to obtain the locally bound endpoint of the socket.
1588
- *
1589
- * @param ec Set to indicate what error occurred, if any.
1590
- *
1591
- * @returns An object that represents the local endpoint of the socket.
1592
- * Returns a default-constructed endpoint object if an error occurred.
1593
- *
1594
- * @par Example
1595
- * @code
1596
- * boost::asio::ip::tcp::socket socket(my_context);
1597
- * ...
1598
- * boost::system::error_code ec;
1599
- * boost::asio::ip::tcp::endpoint endpoint = socket.local_endpoint(ec);
1600
- * if (ec)
1601
- * {
1602
- * // An error occurred.
1603
- * }
1604
- * @endcode
1605
- */
1606
- endpoint_type local_endpoint(boost::system::error_code& ec) const
1607
- {
1608
- return impl_.get_service().local_endpoint(impl_.get_implementation(), ec);
1609
- }
1610
-
1611
- /// Get the remote endpoint of the socket.
1612
- /**
1613
- * This function is used to obtain the remote endpoint of the socket.
1614
- *
1615
- * @returns An object that represents the remote endpoint of the socket.
1616
- *
1617
- * @throws boost::system::system_error Thrown on failure.
1618
- *
1619
- * @par Example
1620
- * @code
1621
- * boost::asio::ip::tcp::socket socket(my_context);
1622
- * ...
1623
- * boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint();
1624
- * @endcode
1625
- */
1626
- endpoint_type remote_endpoint() const
1627
- {
1628
- boost::system::error_code ec;
1629
- endpoint_type ep = impl_.get_service().remote_endpoint(
1630
- impl_.get_implementation(), ec);
1631
- boost::asio::detail::throw_error(ec, "remote_endpoint");
1632
- return ep;
1633
- }
1634
-
1635
- /// Get the remote endpoint of the socket.
1636
- /**
1637
- * This function is used to obtain the remote endpoint of the socket.
1638
- *
1639
- * @param ec Set to indicate what error occurred, if any.
1640
- *
1641
- * @returns An object that represents the remote endpoint of the socket.
1642
- * Returns a default-constructed endpoint object if an error occurred.
1643
- *
1644
- * @par Example
1645
- * @code
1646
- * boost::asio::ip::tcp::socket socket(my_context);
1647
- * ...
1648
- * boost::system::error_code ec;
1649
- * boost::asio::ip::tcp::endpoint endpoint = socket.remote_endpoint(ec);
1650
- * if (ec)
1651
- * {
1652
- * // An error occurred.
1653
- * }
1654
- * @endcode
1655
- */
1656
- endpoint_type remote_endpoint(boost::system::error_code& ec) const
1657
- {
1658
- return impl_.get_service().remote_endpoint(impl_.get_implementation(), ec);
1659
- }
1660
-
1661
- /// Disable sends or receives on the socket.
1662
- /**
1663
- * This function is used to disable send operations, receive operations, or
1664
- * both.
1665
- *
1666
- * @param what Determines what types of operation will no longer be allowed.
1667
- *
1668
- * @throws boost::system::system_error Thrown on failure.
1669
- *
1670
- * @par Example
1671
- * Shutting down the send side of the socket:
1672
- * @code
1673
- * boost::asio::ip::tcp::socket socket(my_context);
1674
- * ...
1675
- * socket.shutdown(boost::asio::ip::tcp::socket::shutdown_send);
1676
- * @endcode
1677
- */
1678
- void shutdown(shutdown_type what)
1679
- {
1680
- boost::system::error_code ec;
1681
- impl_.get_service().shutdown(impl_.get_implementation(), what, ec);
1682
- boost::asio::detail::throw_error(ec, "shutdown");
1683
- }
1684
-
1685
- /// Disable sends or receives on the socket.
1686
- /**
1687
- * This function is used to disable send operations, receive operations, or
1688
- * both.
1689
- *
1690
- * @param what Determines what types of operation will no longer be allowed.
1691
- *
1692
- * @param ec Set to indicate what error occurred, if any.
1693
- *
1694
- * @par Example
1695
- * Shutting down the send side of the socket:
1696
- * @code
1697
- * boost::asio::ip::tcp::socket socket(my_context);
1698
- * ...
1699
- * boost::system::error_code ec;
1700
- * socket.shutdown(boost::asio::ip::tcp::socket::shutdown_send, ec);
1701
- * if (ec)
1702
- * {
1703
- * // An error occurred.
1704
- * }
1705
- * @endcode
1706
- */
1707
- BOOST_ASIO_SYNC_OP_VOID shutdown(shutdown_type what,
1708
- boost::system::error_code& ec)
1709
- {
1710
- impl_.get_service().shutdown(impl_.get_implementation(), what, ec);
1711
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1712
- }
1713
-
1714
- /// Wait for the socket to become ready to read, ready to write, or to have
1715
- /// pending error conditions.
1716
- /**
1717
- * This function is used to perform a blocking wait for a socket to enter
1718
- * a ready to read, write or error condition state.
1719
- *
1720
- * @param w Specifies the desired socket state.
1721
- *
1722
- * @par Example
1723
- * Waiting for a socket to become readable.
1724
- * @code
1725
- * boost::asio::ip::tcp::socket socket(my_context);
1726
- * ...
1727
- * socket.wait(boost::asio::ip::tcp::socket::wait_read);
1728
- * @endcode
1729
- */
1730
- void wait(wait_type w)
1731
- {
1732
- boost::system::error_code ec;
1733
- impl_.get_service().wait(impl_.get_implementation(), w, ec);
1734
- boost::asio::detail::throw_error(ec, "wait");
1735
- }
1736
-
1737
- /// Wait for the socket to become ready to read, ready to write, or to have
1738
- /// pending error conditions.
1739
- /**
1740
- * This function is used to perform a blocking wait for a socket to enter
1741
- * a ready to read, write or error condition state.
1742
- *
1743
- * @param w Specifies the desired socket state.
1744
- *
1745
- * @param ec Set to indicate what error occurred, if any.
1746
- *
1747
- * @par Example
1748
- * Waiting for a socket to become readable.
1749
- * @code
1750
- * boost::asio::ip::tcp::socket socket(my_context);
1751
- * ...
1752
- * boost::system::error_code ec;
1753
- * socket.wait(boost::asio::ip::tcp::socket::wait_read, ec);
1754
- * @endcode
1755
- */
1756
- BOOST_ASIO_SYNC_OP_VOID wait(wait_type w, boost::system::error_code& ec)
1757
- {
1758
- impl_.get_service().wait(impl_.get_implementation(), w, ec);
1759
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1760
- }
1761
-
1762
- /// Asynchronously wait for the socket to become ready to read, ready to
1763
- /// write, or to have pending error conditions.
1764
- /**
1765
- * This function is used to perform an asynchronous wait for a socket to enter
1766
- * a ready to read, write or error condition state. It is an initiating
1767
- * function for an @ref asynchronous_operation, and always returns
1768
- * immediately.
1769
- *
1770
- * @param w Specifies the desired socket state.
1771
- *
1772
- * @param token The @ref completion_token that will be used to produce a
1773
- * completion handler, which will be called when the wait completes. Potential
1774
- * completion tokens include @ref use_future, @ref use_awaitable, @ref
1775
- * yield_context, or a function object with the correct completion signature.
1776
- * The function signature of the completion handler must be:
1777
- * @code void handler(
1778
- * const boost::system::error_code& error // Result of operation.
1779
- * ); @endcode
1780
- * Regardless of whether the asynchronous operation completes immediately or
1781
- * not, the completion handler will not be invoked from within this function.
1782
- * On immediate completion, invocation of the handler will be performed in a
1783
- * manner equivalent to using boost::asio::async_immediate().
1784
- *
1785
- * @par Completion Signature
1786
- * @code void(boost::system::error_code) @endcode
1787
- *
1788
- * @par Example
1789
- * @code
1790
- * void wait_handler(const boost::system::error_code& error)
1791
- * {
1792
- * if (!error)
1793
- * {
1794
- * // Wait succeeded.
1795
- * }
1796
- * }
1797
- *
1798
- * ...
1799
- *
1800
- * boost::asio::ip::tcp::socket socket(my_context);
1801
- * ...
1802
- * socket.async_wait(boost::asio::ip::tcp::socket::wait_read, wait_handler);
1803
- * @endcode
1804
- *
1805
- * @par Per-Operation Cancellation
1806
- * On POSIX or Windows operating systems, this asynchronous operation supports
1807
- * cancellation for the following boost::asio::cancellation_type values:
1808
- *
1809
- * @li @c cancellation_type::terminal
1810
- *
1811
- * @li @c cancellation_type::partial
1812
- *
1813
- * @li @c cancellation_type::total
1814
- */
1815
- template <
1816
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1817
- WaitToken = default_completion_token_t<executor_type>>
1818
- auto async_wait(wait_type w,
1819
- WaitToken&& token = default_completion_token_t<executor_type>())
1820
- -> decltype(
1821
- async_initiate<WaitToken, void (boost::system::error_code)>(
1822
- declval<initiate_async_wait>(), token, w))
1823
- {
1824
- return async_initiate<WaitToken, void (boost::system::error_code)>(
1825
- initiate_async_wait(this), token, w);
1826
- }
1827
-
1828
- protected:
1829
- /// Protected destructor to prevent deletion through this type.
1830
- /**
1831
- * This function destroys the socket, cancelling any outstanding asynchronous
1832
- * operations associated with the socket as if by calling @c cancel.
1833
- */
1834
- ~basic_socket()
1835
- {
1836
- }
1837
-
1838
- #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
1839
- detail::io_object_impl<
1840
- detail::null_socket_service<Protocol>, Executor> impl_;
1841
- #elif defined(BOOST_ASIO_HAS_IOCP)
1842
- detail::io_object_impl<
1843
- detail::win_iocp_socket_service<Protocol>, Executor> impl_;
1844
- #elif defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
1845
- detail::io_object_impl<
1846
- detail::io_uring_socket_service<Protocol>, Executor> impl_;
1847
- #else
1848
- detail::io_object_impl<
1849
- detail::reactive_socket_service<Protocol>, Executor> impl_;
1850
- #endif
1851
-
1852
- private:
1853
- // Disallow copying and assignment.
1854
- basic_socket(const basic_socket&) = delete;
1855
- basic_socket& operator=(const basic_socket&) = delete;
1856
-
1857
- class initiate_async_connect
1858
- {
1859
- public:
1860
- typedef Executor executor_type;
1861
-
1862
- explicit initiate_async_connect(basic_socket* self)
1863
- : self_(self)
1864
- {
1865
- }
1866
-
1867
- const executor_type& get_executor() const noexcept
1868
- {
1869
- return self_->get_executor();
1870
- }
1871
-
1872
- template <typename ConnectHandler>
1873
- void operator()(ConnectHandler&& handler,
1874
- const endpoint_type& peer_endpoint,
1875
- const boost::system::error_code& open_ec) const
1876
- {
1877
- // If you get an error on the following line it means that your handler
1878
- // does not meet the documented type requirements for a ConnectHandler.
1879
- BOOST_ASIO_CONNECT_HANDLER_CHECK(ConnectHandler, handler) type_check;
1880
-
1881
- if (open_ec)
1882
- {
1883
- boost::asio::post(self_->impl_.get_executor(),
1884
- boost::asio::detail::bind_handler(
1885
- static_cast<ConnectHandler&&>(handler), open_ec));
1886
- }
1887
- else
1888
- {
1889
- detail::non_const_lvalue<ConnectHandler> handler2(handler);
1890
- self_->impl_.get_service().async_connect(
1891
- self_->impl_.get_implementation(), peer_endpoint,
1892
- handler2.value, self_->impl_.get_executor());
1893
- }
1894
- }
1895
-
1896
- private:
1897
- basic_socket* self_;
1898
- };
1899
-
1900
- class initiate_async_wait
1901
- {
1902
- public:
1903
- typedef Executor executor_type;
1904
-
1905
- explicit initiate_async_wait(basic_socket* self)
1906
- : self_(self)
1907
- {
1908
- }
1909
-
1910
- const executor_type& get_executor() const noexcept
1911
- {
1912
- return self_->get_executor();
1913
- }
1914
-
1915
- template <typename WaitHandler>
1916
- void operator()(WaitHandler&& handler, wait_type w) const
1917
- {
1918
- // If you get an error on the following line it means that your handler
1919
- // does not meet the documented type requirements for a WaitHandler.
1920
- BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
1921
-
1922
- detail::non_const_lvalue<WaitHandler> handler2(handler);
1923
- self_->impl_.get_service().async_wait(
1924
- self_->impl_.get_implementation(), w,
1925
- handler2.value, self_->impl_.get_executor());
1926
- }
1927
-
1928
- private:
1929
- basic_socket* self_;
1930
- };
1931
- };
1932
-
1933
- } // namespace asio
1934
- } // namespace boost
1935
-
1936
- #include <boost/asio/detail/pop_options.hpp>
1937
-
1938
- #endif // BOOST_ASIO_BASIC_SOCKET_HPP