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,2710 +0,0 @@
1
- //
2
- // basic_socket_acceptor.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_ACCEPTOR_HPP
12
- #define BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_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/detail/config.hpp>
20
- #include <boost/asio/any_io_executor.hpp>
21
- #include <boost/asio/basic_socket.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/socket_base.hpp>
30
-
31
- #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
32
- # include <boost/asio/detail/null_socket_service.hpp>
33
- #elif defined(BOOST_ASIO_HAS_IOCP)
34
- # include <boost/asio/detail/win_iocp_socket_service.hpp>
35
- #elif defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
36
- # include <boost/asio/detail/io_uring_socket_service.hpp>
37
- #else
38
- # include <boost/asio/detail/reactive_socket_service.hpp>
39
- #endif
40
-
41
- #include <boost/asio/detail/push_options.hpp>
42
-
43
- namespace boost {
44
- namespace asio {
45
-
46
- #if !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL)
47
- #define BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL
48
-
49
- // Forward declaration with defaulted arguments.
50
- template <typename Protocol, typename Executor = any_io_executor>
51
- class basic_socket_acceptor;
52
-
53
- #endif // !defined(BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_FWD_DECL)
54
-
55
- /// Provides the ability to accept new connections.
56
- /**
57
- * The basic_socket_acceptor class template is used for accepting new socket
58
- * connections.
59
- *
60
- * @par Thread Safety
61
- * @e Distinct @e objects: Safe.@n
62
- * @e Shared @e objects: Unsafe.
63
- *
64
- * Synchronous @c accept operations are thread safe, if the underlying
65
- * operating system calls are also thread safe. This means that it is permitted
66
- * to perform concurrent calls to synchronous @c accept operations on a single
67
- * socket object. Other synchronous operations, such as @c open or @c close, are
68
- * not thread safe.
69
- *
70
- * @par Example
71
- * Opening a socket acceptor with the SO_REUSEADDR option enabled:
72
- * @code
73
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
74
- * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), port);
75
- * acceptor.open(endpoint.protocol());
76
- * acceptor.set_option(boost::asio::ip::tcp::acceptor::reuse_address(true));
77
- * acceptor.bind(endpoint);
78
- * acceptor.listen();
79
- * @endcode
80
- */
81
- template <typename Protocol, typename Executor>
82
- class basic_socket_acceptor
83
- : public socket_base
84
- {
85
- private:
86
- class initiate_async_wait;
87
- class initiate_async_accept;
88
- class initiate_async_move_accept;
89
-
90
- public:
91
- /// The type of the executor associated with the object.
92
- typedef Executor executor_type;
93
-
94
- /// Rebinds the acceptor type to another executor.
95
- template <typename Executor1>
96
- struct rebind_executor
97
- {
98
- /// The socket type when rebound to the specified executor.
99
- typedef basic_socket_acceptor<Protocol, Executor1> other;
100
- };
101
-
102
- /// The native representation of an acceptor.
103
- #if defined(GENERATING_DOCUMENTATION)
104
- typedef implementation_defined native_handle_type;
105
- #elif defined(BOOST_ASIO_WINDOWS_RUNTIME)
106
- typedef typename detail::null_socket_service<
107
- Protocol>::native_handle_type native_handle_type;
108
- #elif defined(BOOST_ASIO_HAS_IOCP)
109
- typedef typename detail::win_iocp_socket_service<
110
- Protocol>::native_handle_type native_handle_type;
111
- #elif defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
112
- typedef typename detail::io_uring_socket_service<
113
- Protocol>::native_handle_type native_handle_type;
114
- #else
115
- typedef typename detail::reactive_socket_service<
116
- Protocol>::native_handle_type native_handle_type;
117
- #endif
118
-
119
- /// The protocol type.
120
- typedef Protocol protocol_type;
121
-
122
- /// The endpoint type.
123
- typedef typename Protocol::endpoint endpoint_type;
124
-
125
- /// Construct an acceptor without opening it.
126
- /**
127
- * This constructor creates an acceptor without opening it to listen for new
128
- * connections. The open() function must be called before the acceptor can
129
- * accept new socket connections.
130
- *
131
- * @param ex The I/O executor that the acceptor will use, by default, to
132
- * dispatch handlers for any asynchronous operations performed on the
133
- * acceptor.
134
- */
135
- explicit basic_socket_acceptor(const executor_type& ex)
136
- : impl_(0, ex)
137
- {
138
- }
139
-
140
- /// Construct an acceptor without opening it.
141
- /**
142
- * This constructor creates an acceptor without opening it to listen for new
143
- * connections. The open() function must be called before the acceptor can
144
- * accept new socket connections.
145
- *
146
- * @param context An execution context which provides the I/O executor that
147
- * the acceptor will use, by default, to dispatch handlers for any
148
- * asynchronous operations performed on the acceptor.
149
- */
150
- template <typename ExecutionContext>
151
- explicit basic_socket_acceptor(ExecutionContext& context,
152
- constraint_t<
153
- is_convertible<ExecutionContext&, execution_context&>::value
154
- > = 0)
155
- : impl_(0, 0, context)
156
- {
157
- }
158
-
159
- /// Construct an open acceptor.
160
- /**
161
- * This constructor creates an acceptor and automatically opens it.
162
- *
163
- * @param ex The I/O executor that the acceptor will use, by default, to
164
- * dispatch handlers for any asynchronous operations performed on the
165
- * acceptor.
166
- *
167
- * @param protocol An object specifying protocol parameters to be used.
168
- *
169
- * @throws boost::system::system_error Thrown on failure.
170
- */
171
- basic_socket_acceptor(const executor_type& ex, const protocol_type& protocol)
172
- : impl_(0, ex)
173
- {
174
- boost::system::error_code ec;
175
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
176
- boost::asio::detail::throw_error(ec, "open");
177
- }
178
-
179
- /// Construct an open acceptor.
180
- /**
181
- * This constructor creates an acceptor and automatically opens it.
182
- *
183
- * @param context An execution context which provides the I/O executor that
184
- * the acceptor will use, by default, to dispatch handlers for any
185
- * asynchronous operations performed on the acceptor.
186
- *
187
- * @param protocol An object specifying protocol parameters to be used.
188
- *
189
- * @throws boost::system::system_error Thrown on failure.
190
- */
191
- template <typename ExecutionContext>
192
- basic_socket_acceptor(ExecutionContext& context,
193
- const protocol_type& protocol,
194
- constraint_t<
195
- is_convertible<ExecutionContext&, execution_context&>::value,
196
- defaulted_constraint
197
- > = defaulted_constraint())
198
- : impl_(0, 0, context)
199
- {
200
- boost::system::error_code ec;
201
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
202
- boost::asio::detail::throw_error(ec, "open");
203
- }
204
-
205
- /// Construct an acceptor opened on the given endpoint.
206
- /**
207
- * This constructor creates an acceptor and automatically opens it to listen
208
- * for new connections on the specified endpoint.
209
- *
210
- * @param ex The I/O executor that the acceptor will use, by default, to
211
- * dispatch handlers for any asynchronous operations performed on the
212
- * acceptor.
213
- *
214
- * @param endpoint An endpoint on the local machine on which the acceptor
215
- * will listen for new connections.
216
- *
217
- * @param reuse_addr Whether the constructor should set the socket option
218
- * socket_base::reuse_address.
219
- *
220
- * @throws boost::system::system_error Thrown on failure.
221
- *
222
- * @note This constructor is equivalent to the following code:
223
- * @code
224
- * basic_socket_acceptor<Protocol> acceptor(my_context);
225
- * acceptor.open(endpoint.protocol());
226
- * if (reuse_addr)
227
- * acceptor.set_option(socket_base::reuse_address(true));
228
- * acceptor.bind(endpoint);
229
- * acceptor.listen();
230
- * @endcode
231
- */
232
- basic_socket_acceptor(const executor_type& ex,
233
- const endpoint_type& endpoint, bool reuse_addr = true)
234
- : impl_(0, ex)
235
- {
236
- boost::system::error_code ec;
237
- const protocol_type protocol = endpoint.protocol();
238
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
239
- boost::asio::detail::throw_error(ec, "open");
240
- if (reuse_addr)
241
- {
242
- impl_.get_service().set_option(impl_.get_implementation(),
243
- socket_base::reuse_address(true), ec);
244
- boost::asio::detail::throw_error(ec, "set_option");
245
- }
246
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
247
- boost::asio::detail::throw_error(ec, "bind");
248
- impl_.get_service().listen(impl_.get_implementation(),
249
- socket_base::max_listen_connections, ec);
250
- boost::asio::detail::throw_error(ec, "listen");
251
- }
252
-
253
- /// Construct an acceptor opened on the given endpoint.
254
- /**
255
- * This constructor creates an acceptor and automatically opens it to listen
256
- * for new connections on the specified endpoint.
257
- *
258
- * @param context An execution context which provides the I/O executor that
259
- * the acceptor will use, by default, to dispatch handlers for any
260
- * asynchronous operations performed on the acceptor.
261
- *
262
- * @param endpoint An endpoint on the local machine on which the acceptor
263
- * will listen for new connections.
264
- *
265
- * @param reuse_addr Whether the constructor should set the socket option
266
- * socket_base::reuse_address.
267
- *
268
- * @throws boost::system::system_error Thrown on failure.
269
- *
270
- * @note This constructor is equivalent to the following code:
271
- * @code
272
- * basic_socket_acceptor<Protocol> acceptor(my_context);
273
- * acceptor.open(endpoint.protocol());
274
- * if (reuse_addr)
275
- * acceptor.set_option(socket_base::reuse_address(true));
276
- * acceptor.bind(endpoint);
277
- * acceptor.listen();
278
- * @endcode
279
- */
280
- template <typename ExecutionContext>
281
- basic_socket_acceptor(ExecutionContext& context,
282
- const endpoint_type& endpoint, bool reuse_addr = true,
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
- const protocol_type protocol = endpoint.protocol();
290
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
291
- boost::asio::detail::throw_error(ec, "open");
292
- if (reuse_addr)
293
- {
294
- impl_.get_service().set_option(impl_.get_implementation(),
295
- socket_base::reuse_address(true), ec);
296
- boost::asio::detail::throw_error(ec, "set_option");
297
- }
298
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
299
- boost::asio::detail::throw_error(ec, "bind");
300
- impl_.get_service().listen(impl_.get_implementation(),
301
- socket_base::max_listen_connections, ec);
302
- boost::asio::detail::throw_error(ec, "listen");
303
- }
304
-
305
- /// Construct a basic_socket_acceptor on an existing native acceptor.
306
- /**
307
- * This constructor creates an acceptor object to hold an existing native
308
- * acceptor.
309
- *
310
- * @param ex The I/O executor that the acceptor will use, by default, to
311
- * dispatch handlers for any asynchronous operations performed on the
312
- * acceptor.
313
- *
314
- * @param protocol An object specifying protocol parameters to be used.
315
- *
316
- * @param native_acceptor A native acceptor.
317
- *
318
- * @throws boost::system::system_error Thrown on failure.
319
- */
320
- basic_socket_acceptor(const executor_type& ex,
321
- const protocol_type& protocol, const native_handle_type& native_acceptor)
322
- : impl_(0, ex)
323
- {
324
- boost::system::error_code ec;
325
- impl_.get_service().assign(impl_.get_implementation(),
326
- protocol, native_acceptor, ec);
327
- boost::asio::detail::throw_error(ec, "assign");
328
- }
329
-
330
- /// Construct a basic_socket_acceptor on an existing native acceptor.
331
- /**
332
- * This constructor creates an acceptor object to hold an existing native
333
- * acceptor.
334
- *
335
- * @param context An execution context which provides the I/O executor that
336
- * the acceptor will use, by default, to dispatch handlers for any
337
- * asynchronous operations performed on the acceptor.
338
- *
339
- * @param protocol An object specifying protocol parameters to be used.
340
- *
341
- * @param native_acceptor A native acceptor.
342
- *
343
- * @throws boost::system::system_error Thrown on failure.
344
- */
345
- template <typename ExecutionContext>
346
- basic_socket_acceptor(ExecutionContext& context,
347
- const protocol_type& protocol, const native_handle_type& native_acceptor,
348
- constraint_t<
349
- is_convertible<ExecutionContext&, execution_context&>::value
350
- > = 0)
351
- : impl_(0, 0, context)
352
- {
353
- boost::system::error_code ec;
354
- impl_.get_service().assign(impl_.get_implementation(),
355
- protocol, native_acceptor, ec);
356
- boost::asio::detail::throw_error(ec, "assign");
357
- }
358
-
359
- /// Move-construct a basic_socket_acceptor from another.
360
- /**
361
- * This constructor moves an acceptor from one object to another.
362
- *
363
- * @param other The other basic_socket_acceptor object from which the move
364
- * will occur.
365
- *
366
- * @note Following the move, the moved-from object is in the same state as if
367
- * constructed using the @c basic_socket_acceptor(const executor_type&)
368
- * constructor.
369
- */
370
- basic_socket_acceptor(basic_socket_acceptor&& other) noexcept
371
- : impl_(std::move(other.impl_))
372
- {
373
- }
374
-
375
- /// Move-assign a basic_socket_acceptor from another.
376
- /**
377
- * This assignment operator moves an acceptor from one object to another.
378
- *
379
- * @param other The other basic_socket_acceptor object from which the move
380
- * will occur.
381
- *
382
- * @note Following the move, the moved-from object is in the same state as if
383
- * constructed using the @c basic_socket_acceptor(const executor_type&)
384
- * constructor.
385
- */
386
- basic_socket_acceptor& operator=(basic_socket_acceptor&& other)
387
- {
388
- impl_ = std::move(other.impl_);
389
- return *this;
390
- }
391
-
392
- // All socket acceptors have access to each other's implementations.
393
- template <typename Protocol1, typename Executor1>
394
- friend class basic_socket_acceptor;
395
-
396
- /// Move-construct a basic_socket_acceptor from an acceptor of another
397
- /// protocol type.
398
- /**
399
- * This constructor moves an acceptor from one object to another.
400
- *
401
- * @param other The other basic_socket_acceptor object from which the move
402
- * will occur.
403
- *
404
- * @note Following the move, the moved-from object is in the same state as if
405
- * constructed using the @c basic_socket_acceptor(const executor_type&)
406
- * constructor.
407
- */
408
- template <typename Protocol1, typename Executor1>
409
- basic_socket_acceptor(basic_socket_acceptor<Protocol1, Executor1>&& other,
410
- constraint_t<
411
- is_convertible<Protocol1, Protocol>::value
412
- && is_convertible<Executor1, Executor>::value
413
- > = 0)
414
- : impl_(std::move(other.impl_))
415
- {
416
- }
417
-
418
- /// Move-assign a basic_socket_acceptor from an acceptor of another protocol
419
- /// type.
420
- /**
421
- * This assignment operator moves an acceptor from one object to another.
422
- *
423
- * @param other The other basic_socket_acceptor object from which the move
424
- * will occur.
425
- *
426
- * @note Following the move, the moved-from object is in the same state as if
427
- * constructed using the @c basic_socket_acceptor(const executor_type&)
428
- * constructor.
429
- */
430
- template <typename Protocol1, typename Executor1>
431
- constraint_t<
432
- is_convertible<Protocol1, Protocol>::value
433
- && is_convertible<Executor1, Executor>::value,
434
- basic_socket_acceptor&
435
- > operator=(basic_socket_acceptor<Protocol1, Executor1>&& other)
436
- {
437
- basic_socket_acceptor tmp(std::move(other));
438
- impl_ = std::move(tmp.impl_);
439
- return *this;
440
- }
441
-
442
- /// Destroys the acceptor.
443
- /**
444
- * This function destroys the acceptor, cancelling any outstanding
445
- * asynchronous operations associated with the acceptor as if by calling
446
- * @c cancel.
447
- */
448
- ~basic_socket_acceptor()
449
- {
450
- }
451
-
452
- /// Get the executor associated with the object.
453
- const executor_type& get_executor() noexcept
454
- {
455
- return impl_.get_executor();
456
- }
457
-
458
- /// Open the acceptor using the specified protocol.
459
- /**
460
- * This function opens the socket acceptor so that it will use the specified
461
- * protocol.
462
- *
463
- * @param protocol An object specifying which protocol is to be used.
464
- *
465
- * @throws boost::system::system_error Thrown on failure.
466
- *
467
- * @par Example
468
- * @code
469
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
470
- * acceptor.open(boost::asio::ip::tcp::v4());
471
- * @endcode
472
- */
473
- void open(const protocol_type& protocol = protocol_type())
474
- {
475
- boost::system::error_code ec;
476
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
477
- boost::asio::detail::throw_error(ec, "open");
478
- }
479
-
480
- /// Open the acceptor using the specified protocol.
481
- /**
482
- * This function opens the socket acceptor so that it will use the specified
483
- * protocol.
484
- *
485
- * @param protocol An object specifying which protocol is to be used.
486
- *
487
- * @param ec Set to indicate what error occurred, if any.
488
- *
489
- * @par Example
490
- * @code
491
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
492
- * boost::system::error_code ec;
493
- * acceptor.open(boost::asio::ip::tcp::v4(), ec);
494
- * if (ec)
495
- * {
496
- * // An error occurred.
497
- * }
498
- * @endcode
499
- */
500
- BOOST_ASIO_SYNC_OP_VOID open(const protocol_type& protocol,
501
- boost::system::error_code& ec)
502
- {
503
- impl_.get_service().open(impl_.get_implementation(), protocol, ec);
504
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
505
- }
506
-
507
- /// Assigns an existing native acceptor to the acceptor.
508
- /*
509
- * This function opens the acceptor to hold an existing native acceptor.
510
- *
511
- * @param protocol An object specifying which protocol is to be used.
512
- *
513
- * @param native_acceptor A native acceptor.
514
- *
515
- * @throws boost::system::system_error Thrown on failure.
516
- */
517
- void assign(const protocol_type& protocol,
518
- const native_handle_type& native_acceptor)
519
- {
520
- boost::system::error_code ec;
521
- impl_.get_service().assign(impl_.get_implementation(),
522
- protocol, native_acceptor, ec);
523
- boost::asio::detail::throw_error(ec, "assign");
524
- }
525
-
526
- /// Assigns an existing native acceptor to the acceptor.
527
- /*
528
- * This function opens the acceptor to hold an existing native acceptor.
529
- *
530
- * @param protocol An object specifying which protocol is to be used.
531
- *
532
- * @param native_acceptor A native acceptor.
533
- *
534
- * @param ec Set to indicate what error occurred, if any.
535
- */
536
- BOOST_ASIO_SYNC_OP_VOID assign(const protocol_type& protocol,
537
- const native_handle_type& native_acceptor, boost::system::error_code& ec)
538
- {
539
- impl_.get_service().assign(impl_.get_implementation(),
540
- protocol, native_acceptor, ec);
541
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
542
- }
543
-
544
- /// Determine whether the acceptor is open.
545
- bool is_open() const
546
- {
547
- return impl_.get_service().is_open(impl_.get_implementation());
548
- }
549
-
550
- /// Bind the acceptor to the given local endpoint.
551
- /**
552
- * This function binds the socket acceptor to the specified endpoint on the
553
- * local machine.
554
- *
555
- * @param endpoint An endpoint on the local machine to which the socket
556
- * acceptor will be bound.
557
- *
558
- * @throws boost::system::system_error Thrown on failure.
559
- *
560
- * @par Example
561
- * @code
562
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
563
- * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
564
- * acceptor.open(endpoint.protocol());
565
- * acceptor.bind(endpoint);
566
- * @endcode
567
- */
568
- void bind(const endpoint_type& endpoint)
569
- {
570
- boost::system::error_code ec;
571
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
572
- boost::asio::detail::throw_error(ec, "bind");
573
- }
574
-
575
- /// Bind the acceptor to the given local endpoint.
576
- /**
577
- * This function binds the socket acceptor to the specified endpoint on the
578
- * local machine.
579
- *
580
- * @param endpoint An endpoint on the local machine to which the socket
581
- * acceptor will be bound.
582
- *
583
- * @param ec Set to indicate what error occurred, if any.
584
- *
585
- * @par Example
586
- * @code
587
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
588
- * boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::tcp::v4(), 12345);
589
- * acceptor.open(endpoint.protocol());
590
- * boost::system::error_code ec;
591
- * acceptor.bind(endpoint, ec);
592
- * if (ec)
593
- * {
594
- * // An error occurred.
595
- * }
596
- * @endcode
597
- */
598
- BOOST_ASIO_SYNC_OP_VOID bind(const endpoint_type& endpoint,
599
- boost::system::error_code& ec)
600
- {
601
- impl_.get_service().bind(impl_.get_implementation(), endpoint, ec);
602
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
603
- }
604
-
605
- /// Place the acceptor into the state where it will listen for new
606
- /// connections.
607
- /**
608
- * This function puts the socket acceptor into the state where it may accept
609
- * new connections.
610
- *
611
- * @param backlog The maximum length of the queue of pending connections.
612
- *
613
- * @throws boost::system::system_error Thrown on failure.
614
- */
615
- void listen(int backlog = socket_base::max_listen_connections)
616
- {
617
- boost::system::error_code ec;
618
- impl_.get_service().listen(impl_.get_implementation(), backlog, ec);
619
- boost::asio::detail::throw_error(ec, "listen");
620
- }
621
-
622
- /// Place the acceptor into the state where it will listen for new
623
- /// connections.
624
- /**
625
- * This function puts the socket acceptor into the state where it may accept
626
- * new connections.
627
- *
628
- * @param backlog The maximum length of the queue of pending connections.
629
- *
630
- * @param ec Set to indicate what error occurred, if any.
631
- *
632
- * @par Example
633
- * @code
634
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
635
- * ...
636
- * boost::system::error_code ec;
637
- * acceptor.listen(boost::asio::socket_base::max_listen_connections, ec);
638
- * if (ec)
639
- * {
640
- * // An error occurred.
641
- * }
642
- * @endcode
643
- */
644
- BOOST_ASIO_SYNC_OP_VOID listen(int backlog, boost::system::error_code& ec)
645
- {
646
- impl_.get_service().listen(impl_.get_implementation(), backlog, ec);
647
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
648
- }
649
-
650
- /// Close the acceptor.
651
- /**
652
- * This function is used to close the acceptor. Any asynchronous accept
653
- * operations will be cancelled immediately.
654
- *
655
- * A subsequent call to open() is required before the acceptor can again be
656
- * used to again perform socket accept operations.
657
- *
658
- * @throws boost::system::system_error Thrown on failure.
659
- */
660
- void close()
661
- {
662
- boost::system::error_code ec;
663
- impl_.get_service().close(impl_.get_implementation(), ec);
664
- boost::asio::detail::throw_error(ec, "close");
665
- }
666
-
667
- /// Close the acceptor.
668
- /**
669
- * This function is used to close the acceptor. Any asynchronous accept
670
- * operations will be cancelled immediately.
671
- *
672
- * A subsequent call to open() is required before the acceptor can again be
673
- * used to again perform socket accept operations.
674
- *
675
- * @param ec Set to indicate what error occurred, if any.
676
- *
677
- * @par Example
678
- * @code
679
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
680
- * ...
681
- * boost::system::error_code ec;
682
- * acceptor.close(ec);
683
- * if (ec)
684
- * {
685
- * // An error occurred.
686
- * }
687
- * @endcode
688
- */
689
- BOOST_ASIO_SYNC_OP_VOID close(boost::system::error_code& ec)
690
- {
691
- impl_.get_service().close(impl_.get_implementation(), ec);
692
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
693
- }
694
-
695
- /// Release ownership of the underlying native acceptor.
696
- /**
697
- * This function causes all outstanding asynchronous accept operations to
698
- * finish immediately, and the handlers for cancelled operations will be
699
- * passed the boost::asio::error::operation_aborted error. Ownership of the
700
- * native acceptor is then transferred to the caller.
701
- *
702
- * @throws boost::system::system_error Thrown on failure.
703
- *
704
- * @note This function is unsupported on Windows versions prior to Windows
705
- * 8.1, and will fail with boost::asio::error::operation_not_supported on
706
- * these platforms.
707
- */
708
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
709
- && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
710
- __declspec(deprecated("This function always fails with "
711
- "operation_not_supported when used on Windows versions "
712
- "prior to Windows 8.1."))
713
- #endif
714
- native_handle_type release()
715
- {
716
- boost::system::error_code ec;
717
- native_handle_type s = impl_.get_service().release(
718
- impl_.get_implementation(), ec);
719
- boost::asio::detail::throw_error(ec, "release");
720
- return s;
721
- }
722
-
723
- /// Release ownership of the underlying native acceptor.
724
- /**
725
- * This function causes all outstanding asynchronous accept operations to
726
- * finish immediately, and the handlers for cancelled operations will be
727
- * passed the boost::asio::error::operation_aborted error. Ownership of the
728
- * native acceptor is then transferred to the caller.
729
- *
730
- * @param ec Set to indicate what error occurred, if any.
731
- *
732
- * @note This function is unsupported on Windows versions prior to Windows
733
- * 8.1, and will fail with boost::asio::error::operation_not_supported on
734
- * these platforms.
735
- */
736
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1400) \
737
- && (!defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0603)
738
- __declspec(deprecated("This function always fails with "
739
- "operation_not_supported when used on Windows versions "
740
- "prior to Windows 8.1."))
741
- #endif
742
- native_handle_type release(boost::system::error_code& ec)
743
- {
744
- return impl_.get_service().release(impl_.get_implementation(), ec);
745
- }
746
-
747
- /// Get the native acceptor representation.
748
- /**
749
- * This function may be used to obtain the underlying representation of the
750
- * acceptor. This is intended to allow access to native acceptor functionality
751
- * that is not otherwise provided.
752
- */
753
- native_handle_type native_handle()
754
- {
755
- return impl_.get_service().native_handle(impl_.get_implementation());
756
- }
757
-
758
- /// Cancel all asynchronous operations associated with the acceptor.
759
- /**
760
- * This function causes all outstanding asynchronous connect, send and receive
761
- * operations to finish immediately, and the handlers for cancelled operations
762
- * will be passed the boost::asio::error::operation_aborted error.
763
- *
764
- * @throws boost::system::system_error Thrown on failure.
765
- */
766
- void cancel()
767
- {
768
- boost::system::error_code ec;
769
- impl_.get_service().cancel(impl_.get_implementation(), ec);
770
- boost::asio::detail::throw_error(ec, "cancel");
771
- }
772
-
773
- /// Cancel all asynchronous operations associated with the acceptor.
774
- /**
775
- * This function causes all outstanding asynchronous connect, send and receive
776
- * operations to finish immediately, and the handlers for cancelled operations
777
- * will be passed the boost::asio::error::operation_aborted error.
778
- *
779
- * @param ec Set to indicate what error occurred, if any.
780
- */
781
- BOOST_ASIO_SYNC_OP_VOID cancel(boost::system::error_code& ec)
782
- {
783
- impl_.get_service().cancel(impl_.get_implementation(), ec);
784
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
785
- }
786
-
787
- /// Set an option on the acceptor.
788
- /**
789
- * This function is used to set an option on the acceptor.
790
- *
791
- * @param option The new option value to be set on the acceptor.
792
- *
793
- * @throws boost::system::system_error Thrown on failure.
794
- *
795
- * @sa SettableSocketOption @n
796
- * boost::asio::socket_base::reuse_address
797
- * boost::asio::socket_base::enable_connection_aborted
798
- *
799
- * @par Example
800
- * Setting the SOL_SOCKET/SO_REUSEADDR option:
801
- * @code
802
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
803
- * ...
804
- * boost::asio::ip::tcp::acceptor::reuse_address option(true);
805
- * acceptor.set_option(option);
806
- * @endcode
807
- */
808
- template <typename SettableSocketOption>
809
- void set_option(const SettableSocketOption& option)
810
- {
811
- boost::system::error_code ec;
812
- impl_.get_service().set_option(impl_.get_implementation(), option, ec);
813
- boost::asio::detail::throw_error(ec, "set_option");
814
- }
815
-
816
- /// Set an option on the acceptor.
817
- /**
818
- * This function is used to set an option on the acceptor.
819
- *
820
- * @param option The new option value to be set on the acceptor.
821
- *
822
- * @param ec Set to indicate what error occurred, if any.
823
- *
824
- * @sa SettableSocketOption @n
825
- * boost::asio::socket_base::reuse_address
826
- * boost::asio::socket_base::enable_connection_aborted
827
- *
828
- * @par Example
829
- * Setting the SOL_SOCKET/SO_REUSEADDR option:
830
- * @code
831
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
832
- * ...
833
- * boost::asio::ip::tcp::acceptor::reuse_address option(true);
834
- * boost::system::error_code ec;
835
- * acceptor.set_option(option, ec);
836
- * if (ec)
837
- * {
838
- * // An error occurred.
839
- * }
840
- * @endcode
841
- */
842
- template <typename SettableSocketOption>
843
- BOOST_ASIO_SYNC_OP_VOID set_option(const SettableSocketOption& option,
844
- boost::system::error_code& ec)
845
- {
846
- impl_.get_service().set_option(impl_.get_implementation(), option, ec);
847
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
848
- }
849
-
850
- /// Get an option from the acceptor.
851
- /**
852
- * This function is used to get the current value of an option on the
853
- * acceptor.
854
- *
855
- * @param option The option value to be obtained from the acceptor.
856
- *
857
- * @throws boost::system::system_error Thrown on failure.
858
- *
859
- * @sa GettableSocketOption @n
860
- * boost::asio::socket_base::reuse_address
861
- *
862
- * @par Example
863
- * Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
864
- * @code
865
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
866
- * ...
867
- * boost::asio::ip::tcp::acceptor::reuse_address option;
868
- * acceptor.get_option(option);
869
- * bool is_set = option.get();
870
- * @endcode
871
- */
872
- template <typename GettableSocketOption>
873
- void get_option(GettableSocketOption& option) const
874
- {
875
- boost::system::error_code ec;
876
- impl_.get_service().get_option(impl_.get_implementation(), option, ec);
877
- boost::asio::detail::throw_error(ec, "get_option");
878
- }
879
-
880
- /// Get an option from the acceptor.
881
- /**
882
- * This function is used to get the current value of an option on the
883
- * acceptor.
884
- *
885
- * @param option The option value to be obtained from the acceptor.
886
- *
887
- * @param ec Set to indicate what error occurred, if any.
888
- *
889
- * @sa GettableSocketOption @n
890
- * boost::asio::socket_base::reuse_address
891
- *
892
- * @par Example
893
- * Getting the value of the SOL_SOCKET/SO_REUSEADDR option:
894
- * @code
895
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
896
- * ...
897
- * boost::asio::ip::tcp::acceptor::reuse_address option;
898
- * boost::system::error_code ec;
899
- * acceptor.get_option(option, ec);
900
- * if (ec)
901
- * {
902
- * // An error occurred.
903
- * }
904
- * bool is_set = option.get();
905
- * @endcode
906
- */
907
- template <typename GettableSocketOption>
908
- BOOST_ASIO_SYNC_OP_VOID get_option(GettableSocketOption& option,
909
- boost::system::error_code& ec) const
910
- {
911
- impl_.get_service().get_option(impl_.get_implementation(), option, ec);
912
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
913
- }
914
-
915
- /// Perform an IO control command on the acceptor.
916
- /**
917
- * This function is used to execute an IO control command on the acceptor.
918
- *
919
- * @param command The IO control command to be performed on the acceptor.
920
- *
921
- * @throws boost::system::system_error Thrown on failure.
922
- *
923
- * @sa IoControlCommand @n
924
- * boost::asio::socket_base::non_blocking_io
925
- *
926
- * @par Example
927
- * Getting the number of bytes ready to read:
928
- * @code
929
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
930
- * ...
931
- * boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
932
- * socket.io_control(command);
933
- * @endcode
934
- */
935
- template <typename IoControlCommand>
936
- void io_control(IoControlCommand& command)
937
- {
938
- boost::system::error_code ec;
939
- impl_.get_service().io_control(impl_.get_implementation(), command, ec);
940
- boost::asio::detail::throw_error(ec, "io_control");
941
- }
942
-
943
- /// Perform an IO control command on the acceptor.
944
- /**
945
- * This function is used to execute an IO control command on the acceptor.
946
- *
947
- * @param command The IO control command to be performed on the acceptor.
948
- *
949
- * @param ec Set to indicate what error occurred, if any.
950
- *
951
- * @sa IoControlCommand @n
952
- * boost::asio::socket_base::non_blocking_io
953
- *
954
- * @par Example
955
- * Getting the number of bytes ready to read:
956
- * @code
957
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
958
- * ...
959
- * boost::asio::ip::tcp::acceptor::non_blocking_io command(true);
960
- * boost::system::error_code ec;
961
- * socket.io_control(command, ec);
962
- * if (ec)
963
- * {
964
- * // An error occurred.
965
- * }
966
- * @endcode
967
- */
968
- template <typename IoControlCommand>
969
- BOOST_ASIO_SYNC_OP_VOID io_control(IoControlCommand& command,
970
- boost::system::error_code& ec)
971
- {
972
- impl_.get_service().io_control(impl_.get_implementation(), command, ec);
973
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
974
- }
975
-
976
- /// Gets the non-blocking mode of the acceptor.
977
- /**
978
- * @returns @c true if the acceptor's synchronous operations will fail with
979
- * boost::asio::error::would_block if they are unable to perform the requested
980
- * operation immediately. If @c false, synchronous operations will block
981
- * until complete.
982
- *
983
- * @note The non-blocking mode has no effect on the behaviour of asynchronous
984
- * operations. Asynchronous operations will never fail with the error
985
- * boost::asio::error::would_block.
986
- */
987
- bool non_blocking() const
988
- {
989
- return impl_.get_service().non_blocking(impl_.get_implementation());
990
- }
991
-
992
- /// Sets the non-blocking mode of the acceptor.
993
- /**
994
- * @param mode If @c true, the acceptor's synchronous operations will fail
995
- * with boost::asio::error::would_block if they are unable to perform the
996
- * requested operation immediately. If @c false, synchronous operations will
997
- * block until complete.
998
- *
999
- * @throws boost::system::system_error Thrown on failure.
1000
- *
1001
- * @note The non-blocking mode has no effect on the behaviour of asynchronous
1002
- * operations. Asynchronous operations will never fail with the error
1003
- * boost::asio::error::would_block.
1004
- */
1005
- void non_blocking(bool mode)
1006
- {
1007
- boost::system::error_code ec;
1008
- impl_.get_service().non_blocking(impl_.get_implementation(), mode, ec);
1009
- boost::asio::detail::throw_error(ec, "non_blocking");
1010
- }
1011
-
1012
- /// Sets the non-blocking mode of the acceptor.
1013
- /**
1014
- * @param mode If @c true, the acceptor's synchronous operations will fail
1015
- * with boost::asio::error::would_block if they are unable to perform the
1016
- * requested operation immediately. If @c false, synchronous operations will
1017
- * block until complete.
1018
- *
1019
- * @param ec Set to indicate what error occurred, if any.
1020
- *
1021
- * @note The non-blocking mode has no effect on the behaviour of asynchronous
1022
- * operations. Asynchronous operations will never fail with the error
1023
- * boost::asio::error::would_block.
1024
- */
1025
- BOOST_ASIO_SYNC_OP_VOID non_blocking(
1026
- bool mode, boost::system::error_code& ec)
1027
- {
1028
- impl_.get_service().non_blocking(impl_.get_implementation(), mode, ec);
1029
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1030
- }
1031
-
1032
- /// Gets the non-blocking mode of the native acceptor implementation.
1033
- /**
1034
- * This function is used to retrieve the non-blocking mode of the underlying
1035
- * native acceptor. This mode has no effect on the behaviour of the acceptor
1036
- * object's synchronous operations.
1037
- *
1038
- * @returns @c true if the underlying acceptor is in non-blocking mode and
1039
- * direct system calls may fail with boost::asio::error::would_block (or the
1040
- * equivalent system error).
1041
- *
1042
- * @note The current non-blocking mode is cached by the acceptor object.
1043
- * Consequently, the return value may be incorrect if the non-blocking mode
1044
- * was set directly on the native acceptor.
1045
- */
1046
- bool native_non_blocking() const
1047
- {
1048
- return impl_.get_service().native_non_blocking(impl_.get_implementation());
1049
- }
1050
-
1051
- /// Sets the non-blocking mode of the native acceptor implementation.
1052
- /**
1053
- * This function is used to modify the non-blocking mode of the underlying
1054
- * native acceptor. It has no effect on the behaviour of the acceptor object's
1055
- * synchronous operations.
1056
- *
1057
- * @param mode If @c true, the underlying acceptor is put into non-blocking
1058
- * mode and direct system calls may fail with boost::asio::error::would_block
1059
- * (or the equivalent system error).
1060
- *
1061
- * @throws boost::system::system_error Thrown on failure. If the @c mode is
1062
- * @c false, but the current value of @c non_blocking() is @c true, this
1063
- * function fails with boost::asio::error::invalid_argument, as the
1064
- * combination does not make sense.
1065
- */
1066
- void native_non_blocking(bool mode)
1067
- {
1068
- boost::system::error_code ec;
1069
- impl_.get_service().native_non_blocking(
1070
- impl_.get_implementation(), mode, ec);
1071
- boost::asio::detail::throw_error(ec, "native_non_blocking");
1072
- }
1073
-
1074
- /// Sets the non-blocking mode of the native acceptor implementation.
1075
- /**
1076
- * This function is used to modify the non-blocking mode of the underlying
1077
- * native acceptor. It has no effect on the behaviour of the acceptor object's
1078
- * synchronous operations.
1079
- *
1080
- * @param mode If @c true, the underlying acceptor is put into non-blocking
1081
- * mode and direct system calls may fail with boost::asio::error::would_block
1082
- * (or the equivalent system error).
1083
- *
1084
- * @param ec Set to indicate what error occurred, if any. If the @c mode is
1085
- * @c false, but the current value of @c non_blocking() is @c true, this
1086
- * function fails with boost::asio::error::invalid_argument, as the
1087
- * combination does not make sense.
1088
- */
1089
- BOOST_ASIO_SYNC_OP_VOID native_non_blocking(
1090
- bool mode, boost::system::error_code& ec)
1091
- {
1092
- impl_.get_service().native_non_blocking(
1093
- impl_.get_implementation(), mode, ec);
1094
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1095
- }
1096
-
1097
- /// Get the local endpoint of the acceptor.
1098
- /**
1099
- * This function is used to obtain the locally bound endpoint of the acceptor.
1100
- *
1101
- * @returns An object that represents the local endpoint of the acceptor.
1102
- *
1103
- * @throws boost::system::system_error Thrown on failure.
1104
- *
1105
- * @par Example
1106
- * @code
1107
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1108
- * ...
1109
- * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint();
1110
- * @endcode
1111
- */
1112
- endpoint_type local_endpoint() const
1113
- {
1114
- boost::system::error_code ec;
1115
- endpoint_type ep = impl_.get_service().local_endpoint(
1116
- impl_.get_implementation(), ec);
1117
- boost::asio::detail::throw_error(ec, "local_endpoint");
1118
- return ep;
1119
- }
1120
-
1121
- /// Get the local endpoint of the acceptor.
1122
- /**
1123
- * This function is used to obtain the locally bound endpoint of the acceptor.
1124
- *
1125
- * @param ec Set to indicate what error occurred, if any.
1126
- *
1127
- * @returns An object that represents the local endpoint of the acceptor.
1128
- * Returns a default-constructed endpoint object if an error occurred and the
1129
- * error handler did not throw an exception.
1130
- *
1131
- * @par Example
1132
- * @code
1133
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1134
- * ...
1135
- * boost::system::error_code ec;
1136
- * boost::asio::ip::tcp::endpoint endpoint = acceptor.local_endpoint(ec);
1137
- * if (ec)
1138
- * {
1139
- * // An error occurred.
1140
- * }
1141
- * @endcode
1142
- */
1143
- endpoint_type local_endpoint(boost::system::error_code& ec) const
1144
- {
1145
- return impl_.get_service().local_endpoint(impl_.get_implementation(), ec);
1146
- }
1147
-
1148
- /// Wait for the acceptor to become ready to read, ready to write, or to have
1149
- /// pending error conditions.
1150
- /**
1151
- * This function is used to perform a blocking wait for an acceptor to enter
1152
- * a ready to read, write or error condition state.
1153
- *
1154
- * @param w Specifies the desired acceptor state.
1155
- *
1156
- * @par Example
1157
- * Waiting for an acceptor to become readable.
1158
- * @code
1159
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1160
- * ...
1161
- * acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read);
1162
- * @endcode
1163
- */
1164
- void wait(wait_type w)
1165
- {
1166
- boost::system::error_code ec;
1167
- impl_.get_service().wait(impl_.get_implementation(), w, ec);
1168
- boost::asio::detail::throw_error(ec, "wait");
1169
- }
1170
-
1171
- /// Wait for the acceptor to become ready to read, ready to write, or to have
1172
- /// pending error conditions.
1173
- /**
1174
- * This function is used to perform a blocking wait for an acceptor to enter
1175
- * a ready to read, write or error condition state.
1176
- *
1177
- * @param w Specifies the desired acceptor state.
1178
- *
1179
- * @param ec Set to indicate what error occurred, if any.
1180
- *
1181
- * @par Example
1182
- * Waiting for an acceptor to become readable.
1183
- * @code
1184
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1185
- * ...
1186
- * boost::system::error_code ec;
1187
- * acceptor.wait(boost::asio::ip::tcp::acceptor::wait_read, ec);
1188
- * @endcode
1189
- */
1190
- BOOST_ASIO_SYNC_OP_VOID wait(wait_type w, boost::system::error_code& ec)
1191
- {
1192
- impl_.get_service().wait(impl_.get_implementation(), w, ec);
1193
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1194
- }
1195
-
1196
- /// Asynchronously wait for the acceptor to become ready to read, ready to
1197
- /// write, or to have pending error conditions.
1198
- /**
1199
- * This function is used to perform an asynchronous wait for an acceptor to
1200
- * enter a ready to read, write or error condition state. It is an initiating
1201
- * function for an @ref asynchronous_operation, and always returns
1202
- * immediately.
1203
- *
1204
- * @param w Specifies the desired acceptor state.
1205
- *
1206
- * @param token The @ref completion_token that will be used to produce a
1207
- * completion handler, which will be called when the wait completes.
1208
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
1209
- * @ref yield_context, or a function object with the correct completion
1210
- * signature. The function signature of the completion handler must be:
1211
- * @code void handler(
1212
- * const boost::system::error_code& error // Result of operation.
1213
- * ); @endcode
1214
- * Regardless of whether the asynchronous operation completes immediately or
1215
- * not, the completion handler will not be invoked from within this function.
1216
- * On immediate completion, invocation of the handler will be performed in a
1217
- * manner equivalent to using boost::asio::async_immediate().
1218
- *
1219
- * @par Completion Signature
1220
- * @code void(boost::system::error_code) @endcode
1221
- *
1222
- * @par Example
1223
- * @code
1224
- * void wait_handler(const boost::system::error_code& error)
1225
- * {
1226
- * if (!error)
1227
- * {
1228
- * // Wait succeeded.
1229
- * }
1230
- * }
1231
- *
1232
- * ...
1233
- *
1234
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1235
- * ...
1236
- * acceptor.async_wait(
1237
- * boost::asio::ip::tcp::acceptor::wait_read,
1238
- * wait_handler);
1239
- * @endcode
1240
- *
1241
- * @par Per-Operation Cancellation
1242
- * On POSIX or Windows operating systems, this asynchronous operation supports
1243
- * cancellation for the following boost::asio::cancellation_type values:
1244
- *
1245
- * @li @c cancellation_type::terminal
1246
- *
1247
- * @li @c cancellation_type::partial
1248
- *
1249
- * @li @c cancellation_type::total
1250
- */
1251
- template <
1252
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1253
- WaitToken = default_completion_token_t<executor_type>>
1254
- auto async_wait(wait_type w,
1255
- WaitToken&& token = default_completion_token_t<executor_type>())
1256
- -> decltype(
1257
- async_initiate<WaitToken, void (boost::system::error_code)>(
1258
- declval<initiate_async_wait>(), token, w))
1259
- {
1260
- return async_initiate<WaitToken, void (boost::system::error_code)>(
1261
- initiate_async_wait(this), token, w);
1262
- }
1263
-
1264
- #if !defined(BOOST_ASIO_NO_EXTENSIONS)
1265
- /// Accept a new connection.
1266
- /**
1267
- * This function is used to accept a new connection from a peer into the
1268
- * given socket. The function call will block until a new connection has been
1269
- * accepted successfully or an error occurs.
1270
- *
1271
- * @param peer The socket into which the new connection will be accepted.
1272
- *
1273
- * @throws boost::system::system_error Thrown on failure.
1274
- *
1275
- * @par Example
1276
- * @code
1277
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1278
- * ...
1279
- * boost::asio::ip::tcp::socket socket(my_context);
1280
- * acceptor.accept(socket);
1281
- * @endcode
1282
- */
1283
- template <typename Protocol1, typename Executor1>
1284
- void accept(basic_socket<Protocol1, Executor1>& peer,
1285
- constraint_t<
1286
- is_convertible<Protocol, Protocol1>::value
1287
- > = 0)
1288
- {
1289
- boost::system::error_code ec;
1290
- impl_.get_service().accept(impl_.get_implementation(),
1291
- peer, static_cast<endpoint_type*>(0), ec);
1292
- boost::asio::detail::throw_error(ec, "accept");
1293
- }
1294
-
1295
- /// Accept a new connection.
1296
- /**
1297
- * This function is used to accept a new connection from a peer into the
1298
- * given socket. The function call will block until a new connection has been
1299
- * accepted successfully or an error occurs.
1300
- *
1301
- * @param peer The socket into which the new connection will be accepted.
1302
- *
1303
- * @param ec Set to indicate what error occurred, if any.
1304
- *
1305
- * @par Example
1306
- * @code
1307
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1308
- * ...
1309
- * boost::asio::ip::tcp::socket socket(my_context);
1310
- * boost::system::error_code ec;
1311
- * acceptor.accept(socket, ec);
1312
- * if (ec)
1313
- * {
1314
- * // An error occurred.
1315
- * }
1316
- * @endcode
1317
- */
1318
- template <typename Protocol1, typename Executor1>
1319
- BOOST_ASIO_SYNC_OP_VOID accept(
1320
- basic_socket<Protocol1, Executor1>& peer, boost::system::error_code& ec,
1321
- constraint_t<
1322
- is_convertible<Protocol, Protocol1>::value
1323
- > = 0)
1324
- {
1325
- impl_.get_service().accept(impl_.get_implementation(),
1326
- peer, static_cast<endpoint_type*>(0), ec);
1327
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1328
- }
1329
-
1330
- /// Start an asynchronous accept.
1331
- /**
1332
- * This function is used to asynchronously accept a new connection into a
1333
- * socket, and additionally obtain the endpoint of the remote peer. It is an
1334
- * initiating function for an @ref asynchronous_operation, and always returns
1335
- * immediately.
1336
- *
1337
- * @param peer The socket into which the new connection will be accepted.
1338
- * Ownership of the peer object is retained by the caller, which must
1339
- * guarantee that it is valid until the completion handler is called.
1340
- *
1341
- * @param token The @ref completion_token that will be used to produce a
1342
- * completion handler, which will be called when the accept completes.
1343
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
1344
- * @ref yield_context, or a function object with the correct completion
1345
- * signature. The function signature of the completion handler must be:
1346
- * @code void handler(
1347
- * const boost::system::error_code& error // Result of operation.
1348
- * ); @endcode
1349
- * Regardless of whether the asynchronous operation completes immediately or
1350
- * not, the completion handler will not be invoked from within this function.
1351
- * On immediate completion, invocation of the handler will be performed in a
1352
- * manner equivalent to using boost::asio::async_immediate().
1353
- *
1354
- * @par Completion Signature
1355
- * @code void(boost::system::error_code) @endcode
1356
- *
1357
- * @par Example
1358
- * @code
1359
- * void accept_handler(const boost::system::error_code& error)
1360
- * {
1361
- * if (!error)
1362
- * {
1363
- * // Accept succeeded.
1364
- * }
1365
- * }
1366
- *
1367
- * ...
1368
- *
1369
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1370
- * ...
1371
- * boost::asio::ip::tcp::socket socket(my_context);
1372
- * acceptor.async_accept(socket, accept_handler);
1373
- * @endcode
1374
- *
1375
- * @par Per-Operation Cancellation
1376
- * On POSIX or Windows operating systems, this asynchronous operation supports
1377
- * cancellation for the following boost::asio::cancellation_type values:
1378
- *
1379
- * @li @c cancellation_type::terminal
1380
- *
1381
- * @li @c cancellation_type::partial
1382
- *
1383
- * @li @c cancellation_type::total
1384
- */
1385
- template <typename Protocol1, typename Executor1,
1386
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1387
- AcceptToken = default_completion_token_t<executor_type>>
1388
- auto async_accept(basic_socket<Protocol1, Executor1>& peer,
1389
- AcceptToken&& token = default_completion_token_t<executor_type>(),
1390
- constraint_t<
1391
- is_convertible<Protocol, Protocol1>::value
1392
- > = 0)
1393
- -> decltype(
1394
- async_initiate<AcceptToken, void (boost::system::error_code)>(
1395
- declval<initiate_async_accept>(), token,
1396
- &peer, static_cast<endpoint_type*>(0)))
1397
- {
1398
- return async_initiate<AcceptToken, void (boost::system::error_code)>(
1399
- initiate_async_accept(this), token,
1400
- &peer, static_cast<endpoint_type*>(0));
1401
- }
1402
-
1403
- /// Accept a new connection and obtain the endpoint of the peer
1404
- /**
1405
- * This function is used to accept a new connection from a peer into the
1406
- * given socket, and additionally provide the endpoint of the remote peer.
1407
- * The function call will block until a new connection has been accepted
1408
- * successfully or an error occurs.
1409
- *
1410
- * @param peer The socket into which the new connection will be accepted.
1411
- *
1412
- * @param peer_endpoint An endpoint object which will receive the endpoint of
1413
- * the remote peer.
1414
- *
1415
- * @throws boost::system::system_error Thrown on failure.
1416
- *
1417
- * @par Example
1418
- * @code
1419
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1420
- * ...
1421
- * boost::asio::ip::tcp::socket socket(my_context);
1422
- * boost::asio::ip::tcp::endpoint endpoint;
1423
- * acceptor.accept(socket, endpoint);
1424
- * @endcode
1425
- */
1426
- template <typename Executor1>
1427
- void accept(basic_socket<protocol_type, Executor1>& peer,
1428
- endpoint_type& peer_endpoint)
1429
- {
1430
- boost::system::error_code ec;
1431
- impl_.get_service().accept(impl_.get_implementation(),
1432
- peer, &peer_endpoint, ec);
1433
- boost::asio::detail::throw_error(ec, "accept");
1434
- }
1435
-
1436
- /// Accept a new connection and obtain the endpoint of the peer
1437
- /**
1438
- * This function is used to accept a new connection from a peer into the
1439
- * given socket, and additionally provide the endpoint of the remote peer.
1440
- * The function call will block until a new connection has been accepted
1441
- * successfully or an error occurs.
1442
- *
1443
- * @param peer The socket into which the new connection will be accepted.
1444
- *
1445
- * @param peer_endpoint An endpoint object which will receive the endpoint of
1446
- * the remote peer.
1447
- *
1448
- * @param ec Set to indicate what error occurred, if any.
1449
- *
1450
- * @par Example
1451
- * @code
1452
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1453
- * ...
1454
- * boost::asio::ip::tcp::socket socket(my_context);
1455
- * boost::asio::ip::tcp::endpoint endpoint;
1456
- * boost::system::error_code ec;
1457
- * acceptor.accept(socket, endpoint, ec);
1458
- * if (ec)
1459
- * {
1460
- * // An error occurred.
1461
- * }
1462
- * @endcode
1463
- */
1464
- template <typename Executor1>
1465
- BOOST_ASIO_SYNC_OP_VOID accept(basic_socket<protocol_type, Executor1>& peer,
1466
- endpoint_type& peer_endpoint, boost::system::error_code& ec)
1467
- {
1468
- impl_.get_service().accept(
1469
- impl_.get_implementation(), peer, &peer_endpoint, ec);
1470
- BOOST_ASIO_SYNC_OP_VOID_RETURN(ec);
1471
- }
1472
-
1473
- /// Start an asynchronous accept.
1474
- /**
1475
- * This function is used to asynchronously accept a new connection into a
1476
- * socket, and additionally obtain the endpoint of the remote peer. It is an
1477
- * initiating function for an @ref asynchronous_operation, and always returns
1478
- * immediately.
1479
- *
1480
- * @param peer The socket into which the new connection will be accepted.
1481
- * Ownership of the peer object is retained by the caller, which must
1482
- * guarantee that it is valid until the completion handler is called.
1483
- *
1484
- * @param peer_endpoint An endpoint object into which the endpoint of the
1485
- * remote peer will be written. Ownership of the peer_endpoint object is
1486
- * retained by the caller, which must guarantee that it is valid until the
1487
- * handler is called.
1488
- *
1489
- * @param token The @ref completion_token that will be used to produce a
1490
- * completion handler, which will be called when the accept completes.
1491
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
1492
- * @ref yield_context, or a function object with the correct completion
1493
- * signature. The function signature of the completion handler must be:
1494
- * @code void handler(
1495
- * const boost::system::error_code& error // Result of operation.
1496
- * ); @endcode
1497
- * Regardless of whether the asynchronous operation completes immediately or
1498
- * not, the completion handler will not be invoked from within this function.
1499
- * On immediate completion, invocation of the handler will be performed in a
1500
- * manner equivalent to using boost::asio::async_immediate().
1501
- *
1502
- * @par Completion Signature
1503
- * @code void(boost::system::error_code) @endcode
1504
- *
1505
- * @par Per-Operation Cancellation
1506
- * On POSIX or Windows operating systems, this asynchronous operation supports
1507
- * cancellation for the following boost::asio::cancellation_type values:
1508
- *
1509
- * @li @c cancellation_type::terminal
1510
- *
1511
- * @li @c cancellation_type::partial
1512
- *
1513
- * @li @c cancellation_type::total
1514
- */
1515
- template <typename Executor1,
1516
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code))
1517
- AcceptToken = default_completion_token_t<executor_type>>
1518
- auto async_accept(basic_socket<protocol_type, Executor1>& peer,
1519
- endpoint_type& peer_endpoint,
1520
- AcceptToken&& token = default_completion_token_t<executor_type>())
1521
- -> decltype(
1522
- async_initiate<AcceptToken, void (boost::system::error_code)>(
1523
- declval<initiate_async_accept>(), token, &peer, &peer_endpoint))
1524
- {
1525
- return async_initiate<AcceptToken, void (boost::system::error_code)>(
1526
- initiate_async_accept(this), token, &peer, &peer_endpoint);
1527
- }
1528
- #endif // !defined(BOOST_ASIO_NO_EXTENSIONS)
1529
-
1530
- /// Accept a new connection.
1531
- /**
1532
- * This function is used to accept a new connection from a peer. The function
1533
- * call will block until a new connection has been accepted successfully or
1534
- * an error occurs.
1535
- *
1536
- * This overload requires that the Protocol template parameter satisfy the
1537
- * AcceptableProtocol type requirements.
1538
- *
1539
- * @returns A socket object representing the newly accepted connection.
1540
- *
1541
- * @throws boost::system::system_error Thrown on failure.
1542
- *
1543
- * @par Example
1544
- * @code
1545
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1546
- * ...
1547
- * boost::asio::ip::tcp::socket socket(acceptor.accept());
1548
- * @endcode
1549
- */
1550
- typename Protocol::socket::template rebind_executor<executor_type>::other
1551
- accept()
1552
- {
1553
- boost::system::error_code ec;
1554
- typename Protocol::socket::template rebind_executor<
1555
- executor_type>::other peer(impl_.get_executor());
1556
- impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1557
- boost::asio::detail::throw_error(ec, "accept");
1558
- return peer;
1559
- }
1560
-
1561
- /// Accept a new connection.
1562
- /**
1563
- * This function is used to accept a new connection from a peer. The function
1564
- * call will block until a new connection has been accepted successfully or
1565
- * an error occurs.
1566
- *
1567
- * This overload requires that the Protocol template parameter satisfy the
1568
- * AcceptableProtocol type requirements.
1569
- *
1570
- * @param ec Set to indicate what error occurred, if any.
1571
- *
1572
- * @returns On success, a socket object representing the newly accepted
1573
- * connection. On error, a socket object where is_open() is false.
1574
- *
1575
- * @par Example
1576
- * @code
1577
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1578
- * ...
1579
- * boost::asio::ip::tcp::socket socket(acceptor.accept(ec));
1580
- * if (ec)
1581
- * {
1582
- * // An error occurred.
1583
- * }
1584
- * @endcode
1585
- */
1586
- typename Protocol::socket::template rebind_executor<executor_type>::other
1587
- accept(boost::system::error_code& ec)
1588
- {
1589
- typename Protocol::socket::template rebind_executor<
1590
- executor_type>::other peer(impl_.get_executor());
1591
- impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1592
- return peer;
1593
- }
1594
-
1595
- /// Start an asynchronous accept.
1596
- /**
1597
- * This function is used to asynchronously accept a new connection. It is an
1598
- * initiating function for an @ref asynchronous_operation, and always returns
1599
- * immediately.
1600
- *
1601
- * This overload requires that the Protocol template parameter satisfy the
1602
- * AcceptableProtocol type requirements.
1603
- *
1604
- * @param token The @ref completion_token that will be used to produce a
1605
- * completion handler, which will be called when the accept completes.
1606
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
1607
- * @ref yield_context, or a function object with the correct completion
1608
- * signature. The function signature of the completion handler must be:
1609
- * @code void handler(
1610
- * // Result of operation.
1611
- * const boost::system::error_code& error,
1612
- *
1613
- * // On success, the newly accepted socket.
1614
- * typename Protocol::socket::template
1615
- * rebind_executor<executor_type>::other peer
1616
- * ); @endcode
1617
- * Regardless of whether the asynchronous operation completes immediately or
1618
- * not, the completion handler will not be invoked from within this function.
1619
- * On immediate completion, invocation of the handler will be performed in a
1620
- * manner equivalent to using boost::asio::async_immediate().
1621
- *
1622
- * @par Completion Signature
1623
- * @code void(boost::system::error_code,
1624
- * typename Protocol::socket::template
1625
- * rebind_executor<executor_type>::other)) @endcode
1626
- *
1627
- * @par Example
1628
- * @code
1629
- * void accept_handler(const boost::system::error_code& error,
1630
- * boost::asio::ip::tcp::socket peer)
1631
- * {
1632
- * if (!error)
1633
- * {
1634
- * // Accept succeeded.
1635
- * }
1636
- * }
1637
- *
1638
- * ...
1639
- *
1640
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1641
- * ...
1642
- * acceptor.async_accept(accept_handler);
1643
- * @endcode
1644
- *
1645
- * @par Per-Operation Cancellation
1646
- * On POSIX or Windows operating systems, this asynchronous operation supports
1647
- * cancellation for the following boost::asio::cancellation_type values:
1648
- *
1649
- * @li @c cancellation_type::terminal
1650
- *
1651
- * @li @c cancellation_type::partial
1652
- *
1653
- * @li @c cancellation_type::total
1654
- */
1655
- template <
1656
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
1657
- typename Protocol::socket::template rebind_executor<
1658
- executor_type>::other)) MoveAcceptToken
1659
- = default_completion_token_t<executor_type>>
1660
- auto async_accept(
1661
- MoveAcceptToken&& token = default_completion_token_t<executor_type>())
1662
- -> decltype(
1663
- async_initiate<MoveAcceptToken,
1664
- void (boost::system::error_code, typename Protocol::socket::template
1665
- rebind_executor<executor_type>::other)>(
1666
- declval<initiate_async_move_accept>(), token,
1667
- declval<const executor_type&>(), static_cast<endpoint_type*>(0),
1668
- static_cast<typename Protocol::socket::template
1669
- rebind_executor<executor_type>::other*>(0)))
1670
- {
1671
- return async_initiate<MoveAcceptToken,
1672
- void (boost::system::error_code, typename Protocol::socket::template
1673
- rebind_executor<executor_type>::other)>(
1674
- initiate_async_move_accept(this), token,
1675
- impl_.get_executor(), static_cast<endpoint_type*>(0),
1676
- static_cast<typename Protocol::socket::template
1677
- rebind_executor<executor_type>::other*>(0));
1678
- }
1679
-
1680
- /// Accept a new connection.
1681
- /**
1682
- * This function is used to accept a new connection from a peer. The function
1683
- * call will block until a new connection has been accepted successfully or
1684
- * an error occurs.
1685
- *
1686
- * This overload requires that the Protocol template parameter satisfy the
1687
- * AcceptableProtocol type requirements.
1688
- *
1689
- * @param ex The I/O executor object to be used for the newly
1690
- * accepted socket.
1691
- *
1692
- * @returns A socket object representing the newly accepted connection.
1693
- *
1694
- * @throws boost::system::system_error Thrown on failure.
1695
- *
1696
- * @par Example
1697
- * @code
1698
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1699
- * ...
1700
- * boost::asio::ip::tcp::socket socket(acceptor.accept());
1701
- * @endcode
1702
- */
1703
- template <typename Executor1>
1704
- typename Protocol::socket::template rebind_executor<Executor1>::other
1705
- accept(const Executor1& ex,
1706
- constraint_t<
1707
- is_executor<Executor1>::value
1708
- || execution::is_executor<Executor1>::value
1709
- > = 0)
1710
- {
1711
- boost::system::error_code ec;
1712
- typename Protocol::socket::template
1713
- rebind_executor<Executor1>::other peer(ex);
1714
- impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1715
- boost::asio::detail::throw_error(ec, "accept");
1716
- return peer;
1717
- }
1718
-
1719
- /// Accept a new connection.
1720
- /**
1721
- * This function is used to accept a new connection from a peer. The function
1722
- * call will block until a new connection has been accepted successfully or
1723
- * an error occurs.
1724
- *
1725
- * This overload requires that the Protocol template parameter satisfy the
1726
- * AcceptableProtocol type requirements.
1727
- *
1728
- * @param context The I/O execution context object to be used for the newly
1729
- * accepted socket.
1730
- *
1731
- * @returns A socket object representing the newly accepted connection.
1732
- *
1733
- * @throws boost::system::system_error Thrown on failure.
1734
- *
1735
- * @par Example
1736
- * @code
1737
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1738
- * ...
1739
- * boost::asio::ip::tcp::socket socket(acceptor.accept());
1740
- * @endcode
1741
- */
1742
- template <typename ExecutionContext>
1743
- typename Protocol::socket::template rebind_executor<
1744
- typename ExecutionContext::executor_type>::other
1745
- accept(ExecutionContext& context,
1746
- constraint_t<
1747
- is_convertible<ExecutionContext&, execution_context&>::value
1748
- > = 0)
1749
- {
1750
- boost::system::error_code ec;
1751
- typename Protocol::socket::template rebind_executor<
1752
- typename ExecutionContext::executor_type>::other peer(context);
1753
- impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1754
- boost::asio::detail::throw_error(ec, "accept");
1755
- return peer;
1756
- }
1757
-
1758
- /// Accept a new connection.
1759
- /**
1760
- * This function is used to accept a new connection from a peer. The function
1761
- * call will block until a new connection has been accepted successfully or
1762
- * an error occurs.
1763
- *
1764
- * This overload requires that the Protocol template parameter satisfy the
1765
- * AcceptableProtocol type requirements.
1766
- *
1767
- * @param ex The I/O executor object to be used for the newly accepted
1768
- * socket.
1769
- *
1770
- * @param ec Set to indicate what error occurred, if any.
1771
- *
1772
- * @returns On success, a socket object representing the newly accepted
1773
- * connection. On error, a socket object where is_open() is false.
1774
- *
1775
- * @par Example
1776
- * @code
1777
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1778
- * ...
1779
- * boost::asio::ip::tcp::socket socket(acceptor.accept(my_context2, ec));
1780
- * if (ec)
1781
- * {
1782
- * // An error occurred.
1783
- * }
1784
- * @endcode
1785
- */
1786
- template <typename Executor1>
1787
- typename Protocol::socket::template rebind_executor<Executor1>::other
1788
- accept(const Executor1& ex, boost::system::error_code& ec,
1789
- constraint_t<
1790
- is_executor<Executor1>::value
1791
- || execution::is_executor<Executor1>::value
1792
- > = 0)
1793
- {
1794
- typename Protocol::socket::template
1795
- rebind_executor<Executor1>::other peer(ex);
1796
- impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1797
- return peer;
1798
- }
1799
-
1800
- /// Accept a new connection.
1801
- /**
1802
- * This function is used to accept a new connection from a peer. The function
1803
- * call will block until a new connection has been accepted successfully or
1804
- * an error occurs.
1805
- *
1806
- * This overload requires that the Protocol template parameter satisfy the
1807
- * AcceptableProtocol type requirements.
1808
- *
1809
- * @param context The I/O execution context object to be used for the newly
1810
- * accepted socket.
1811
- *
1812
- * @param ec Set to indicate what error occurred, if any.
1813
- *
1814
- * @returns On success, a socket object representing the newly accepted
1815
- * connection. On error, a socket object where is_open() is false.
1816
- *
1817
- * @par Example
1818
- * @code
1819
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1820
- * ...
1821
- * boost::asio::ip::tcp::socket socket(acceptor.accept(my_context2, ec));
1822
- * if (ec)
1823
- * {
1824
- * // An error occurred.
1825
- * }
1826
- * @endcode
1827
- */
1828
- template <typename ExecutionContext>
1829
- typename Protocol::socket::template rebind_executor<
1830
- typename ExecutionContext::executor_type>::other
1831
- accept(ExecutionContext& context, boost::system::error_code& ec,
1832
- constraint_t<
1833
- is_convertible<ExecutionContext&, execution_context&>::value
1834
- > = 0)
1835
- {
1836
- typename Protocol::socket::template rebind_executor<
1837
- typename ExecutionContext::executor_type>::other peer(context);
1838
- impl_.get_service().accept(impl_.get_implementation(), peer, 0, ec);
1839
- return peer;
1840
- }
1841
-
1842
- /// Start an asynchronous accept.
1843
- /**
1844
- * This function is used to asynchronously accept a new connection. It is an
1845
- * initiating function for an @ref asynchronous_operation, and always returns
1846
- * immediately.
1847
- *
1848
- * This overload requires that the Protocol template parameter satisfy the
1849
- * AcceptableProtocol type requirements.
1850
- *
1851
- * @param ex The I/O executor object to be used for the newly accepted
1852
- * socket.
1853
- *
1854
- * @param token The @ref completion_token that will be used to produce a
1855
- * completion handler, which will be called when the accept completes.
1856
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
1857
- * @ref yield_context, or a function object with the correct completion
1858
- * signature. The function signature of the completion handler must be:
1859
- * @code void handler(
1860
- * // Result of operation.
1861
- * const boost::system::error_code& error,
1862
- *
1863
- * // On success, the newly accepted socket.
1864
- * typename Protocol::socket::template rebind_executor<
1865
- * Executor1>::other peer
1866
- * ); @endcode
1867
- * Regardless of whether the asynchronous operation completes immediately or
1868
- * not, the completion handler will not be invoked from within this function.
1869
- * On immediate completion, invocation of the handler will be performed in a
1870
- * manner equivalent to using boost::asio::async_immediate().
1871
- *
1872
- * @par Completion Signature
1873
- * @code void(boost::system::error_code,
1874
- * typename Protocol::socket::template rebind_executor<
1875
- * Executor1>::other)) @endcode
1876
- *
1877
- * @par Example
1878
- * @code
1879
- * void accept_handler(const boost::system::error_code& error,
1880
- * boost::asio::ip::tcp::socket peer)
1881
- * {
1882
- * if (!error)
1883
- * {
1884
- * // Accept succeeded.
1885
- * }
1886
- * }
1887
- *
1888
- * ...
1889
- *
1890
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1891
- * ...
1892
- * acceptor.async_accept(my_context2, accept_handler);
1893
- * @endcode
1894
- *
1895
- * @par Per-Operation Cancellation
1896
- * On POSIX or Windows operating systems, this asynchronous operation supports
1897
- * cancellation for the following boost::asio::cancellation_type values:
1898
- *
1899
- * @li @c cancellation_type::terminal
1900
- *
1901
- * @li @c cancellation_type::partial
1902
- *
1903
- * @li @c cancellation_type::total
1904
- */
1905
- template <typename Executor1,
1906
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
1907
- typename Protocol::socket::template rebind_executor<
1908
- constraint_t<is_executor<Executor1>::value
1909
- || execution::is_executor<Executor1>::value,
1910
- Executor1>>::other)) MoveAcceptToken
1911
- = default_completion_token_t<executor_type>>
1912
- auto async_accept(const Executor1& ex,
1913
- MoveAcceptToken&& token = default_completion_token_t<executor_type>(),
1914
- constraint_t<
1915
- is_executor<Executor1>::value
1916
- || execution::is_executor<Executor1>::value
1917
- > = 0)
1918
- -> decltype(
1919
- async_initiate<MoveAcceptToken,
1920
- void (boost::system::error_code,
1921
- typename Protocol::socket::template rebind_executor<
1922
- Executor1>::other)>(
1923
- declval<initiate_async_move_accept>(), token,
1924
- ex, static_cast<endpoint_type*>(0),
1925
- static_cast<typename Protocol::socket::template
1926
- rebind_executor<Executor1>::other*>(0)))
1927
- {
1928
- return async_initiate<MoveAcceptToken,
1929
- void (boost::system::error_code,
1930
- typename Protocol::socket::template rebind_executor<
1931
- Executor1>::other)>(
1932
- initiate_async_move_accept(this), token,
1933
- ex, static_cast<endpoint_type*>(0),
1934
- static_cast<typename Protocol::socket::template
1935
- rebind_executor<Executor1>::other*>(0));
1936
- }
1937
-
1938
- /// Start an asynchronous accept.
1939
- /**
1940
- * This function is used to asynchronously accept a new connection. It is an
1941
- * initiating function for an @ref asynchronous_operation, and always returns
1942
- * immediately.
1943
- *
1944
- * This overload requires that the Protocol template parameter satisfy the
1945
- * AcceptableProtocol type requirements.
1946
- *
1947
- * @param context The I/O execution context object to be used for the newly
1948
- * accepted socket.
1949
- *
1950
- * @param token The @ref completion_token that will be used to produce a
1951
- * completion handler, which will be called when the accept completes.
1952
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
1953
- * @ref yield_context, or a function object with the correct completion
1954
- * signature. The function signature of the completion handler must be:
1955
- * @code void handler(
1956
- * // Result of operation.
1957
- * const boost::system::error_code& error,
1958
- *
1959
- * // On success, the newly accepted socket.
1960
- * typename Protocol::socket::template rebind_executor<
1961
- * typename ExecutionContext::executor_type>::other peer
1962
- * ); @endcode
1963
- * Regardless of whether the asynchronous operation completes immediately or
1964
- * not, the completion handler will not be invoked from within this function.
1965
- * On immediate completion, invocation of the handler will be performed in a
1966
- * manner equivalent to using boost::asio::async_immediate().
1967
- *
1968
- * @par Completion Signature
1969
- * @code void(boost::system::error_code,
1970
- * typename Protocol::socket::template rebind_executor<
1971
- * typename ExecutionContext::executor_type>::other)) @endcode
1972
- *
1973
- * @par Example
1974
- * @code
1975
- * void accept_handler(const boost::system::error_code& error,
1976
- * boost::asio::ip::tcp::socket peer)
1977
- * {
1978
- * if (!error)
1979
- * {
1980
- * // Accept succeeded.
1981
- * }
1982
- * }
1983
- *
1984
- * ...
1985
- *
1986
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
1987
- * ...
1988
- * acceptor.async_accept(my_context2, accept_handler);
1989
- * @endcode
1990
- *
1991
- * @par Per-Operation Cancellation
1992
- * On POSIX or Windows operating systems, this asynchronous operation supports
1993
- * cancellation for the following boost::asio::cancellation_type values:
1994
- *
1995
- * @li @c cancellation_type::terminal
1996
- *
1997
- * @li @c cancellation_type::partial
1998
- *
1999
- * @li @c cancellation_type::total
2000
- */
2001
- template <typename ExecutionContext,
2002
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2003
- typename Protocol::socket::template rebind_executor<
2004
- typename ExecutionContext::executor_type>::other)) MoveAcceptToken
2005
- = default_completion_token_t<executor_type>>
2006
- auto async_accept(ExecutionContext& context,
2007
- MoveAcceptToken&& token = default_completion_token_t<executor_type>(),
2008
- constraint_t<
2009
- is_convertible<ExecutionContext&, execution_context&>::value
2010
- > = 0)
2011
- -> decltype(
2012
- async_initiate<MoveAcceptToken,
2013
- void (boost::system::error_code,
2014
- typename Protocol::socket::template rebind_executor<
2015
- typename ExecutionContext::executor_type>::other)>(
2016
- declval<initiate_async_move_accept>(), token,
2017
- context.get_executor(), static_cast<endpoint_type*>(0),
2018
- static_cast<typename Protocol::socket::template rebind_executor<
2019
- typename ExecutionContext::executor_type>::other*>(0)))
2020
- {
2021
- return async_initiate<MoveAcceptToken,
2022
- void (boost::system::error_code,
2023
- typename Protocol::socket::template rebind_executor<
2024
- typename ExecutionContext::executor_type>::other)>(
2025
- initiate_async_move_accept(this), token,
2026
- context.get_executor(), static_cast<endpoint_type*>(0),
2027
- static_cast<typename Protocol::socket::template rebind_executor<
2028
- typename ExecutionContext::executor_type>::other*>(0));
2029
- }
2030
-
2031
- /// Accept a new connection.
2032
- /**
2033
- * This function is used to accept a new connection from a peer. The function
2034
- * call will block until a new connection has been accepted successfully or
2035
- * an error occurs.
2036
- *
2037
- * This overload requires that the Protocol template parameter satisfy the
2038
- * AcceptableProtocol type requirements.
2039
- *
2040
- * @param peer_endpoint An endpoint object into which the endpoint of the
2041
- * remote peer will be written.
2042
- *
2043
- * @returns A socket object representing the newly accepted connection.
2044
- *
2045
- * @throws boost::system::system_error Thrown on failure.
2046
- *
2047
- * @par Example
2048
- * @code
2049
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2050
- * ...
2051
- * boost::asio::ip::tcp::endpoint endpoint;
2052
- * boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint));
2053
- * @endcode
2054
- */
2055
- typename Protocol::socket::template rebind_executor<executor_type>::other
2056
- accept(endpoint_type& peer_endpoint)
2057
- {
2058
- boost::system::error_code ec;
2059
- typename Protocol::socket::template rebind_executor<
2060
- executor_type>::other peer(impl_.get_executor());
2061
- impl_.get_service().accept(impl_.get_implementation(),
2062
- peer, &peer_endpoint, ec);
2063
- boost::asio::detail::throw_error(ec, "accept");
2064
- return peer;
2065
- }
2066
-
2067
- /// Accept a new connection.
2068
- /**
2069
- * This function is used to accept a new connection from a peer. The function
2070
- * call will block until a new connection has been accepted successfully or
2071
- * an error occurs.
2072
- *
2073
- * This overload requires that the Protocol template parameter satisfy the
2074
- * AcceptableProtocol type requirements.
2075
- *
2076
- * @param peer_endpoint An endpoint object into which the endpoint of the
2077
- * remote peer will be written.
2078
- *
2079
- * @param ec Set to indicate what error occurred, if any.
2080
- *
2081
- * @returns On success, a socket object representing the newly accepted
2082
- * connection. On error, a socket object where is_open() is false.
2083
- *
2084
- * @par Example
2085
- * @code
2086
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2087
- * ...
2088
- * boost::asio::ip::tcp::endpoint endpoint;
2089
- * boost::asio::ip::tcp::socket socket(acceptor.accept(endpoint, ec));
2090
- * if (ec)
2091
- * {
2092
- * // An error occurred.
2093
- * }
2094
- * @endcode
2095
- */
2096
- typename Protocol::socket::template rebind_executor<executor_type>::other
2097
- accept(endpoint_type& peer_endpoint, boost::system::error_code& ec)
2098
- {
2099
- typename Protocol::socket::template rebind_executor<
2100
- executor_type>::other peer(impl_.get_executor());
2101
- impl_.get_service().accept(impl_.get_implementation(),
2102
- peer, &peer_endpoint, ec);
2103
- return peer;
2104
- }
2105
-
2106
- /// Start an asynchronous accept.
2107
- /**
2108
- * This function is used to asynchronously accept a new connection. It is an
2109
- * initiating function for an @ref asynchronous_operation, and always returns
2110
- * immediately.
2111
- *
2112
- * This overload requires that the Protocol template parameter satisfy the
2113
- * AcceptableProtocol type requirements.
2114
- *
2115
- * @param peer_endpoint An endpoint object into which the endpoint of the
2116
- * remote peer will be written. Ownership of the peer_endpoint object is
2117
- * retained by the caller, which must guarantee that it is valid until the
2118
- * completion handler is called.
2119
- *
2120
- * @param token The @ref completion_token that will be used to produce a
2121
- * completion handler, which will be called when the accept completes.
2122
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
2123
- * @ref yield_context, or a function object with the correct completion
2124
- * signature. The function signature of the completion handler must be:
2125
- * @code void handler(
2126
- * // Result of operation.
2127
- * const boost::system::error_code& error,
2128
- *
2129
- * // On success, the newly accepted socket.
2130
- * typename Protocol::socket::template
2131
- * rebind_executor<executor_type>::other peer
2132
- * ); @endcode
2133
- * Regardless of whether the asynchronous operation completes immediately or
2134
- * not, the completion handler will not be invoked from within this function.
2135
- * On immediate completion, invocation of the handler will be performed in a
2136
- * manner equivalent to using boost::asio::async_immediate().
2137
- *
2138
- * @par Completion Signature
2139
- * @code void(boost::system::error_code,
2140
- * typename Protocol::socket::template
2141
- * rebind_executor<executor_type>::other)) @endcode
2142
- *
2143
- * @par Example
2144
- * @code
2145
- * void accept_handler(const boost::system::error_code& error,
2146
- * boost::asio::ip::tcp::socket peer)
2147
- * {
2148
- * if (!error)
2149
- * {
2150
- * // Accept succeeded.
2151
- * }
2152
- * }
2153
- *
2154
- * ...
2155
- *
2156
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2157
- * ...
2158
- * boost::asio::ip::tcp::endpoint endpoint;
2159
- * acceptor.async_accept(endpoint, accept_handler);
2160
- * @endcode
2161
- *
2162
- * @par Per-Operation Cancellation
2163
- * On POSIX or Windows operating systems, this asynchronous operation supports
2164
- * cancellation for the following boost::asio::cancellation_type values:
2165
- *
2166
- * @li @c cancellation_type::terminal
2167
- *
2168
- * @li @c cancellation_type::partial
2169
- *
2170
- * @li @c cancellation_type::total
2171
- */
2172
- template <
2173
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2174
- typename Protocol::socket::template rebind_executor<
2175
- executor_type>::other)) MoveAcceptToken
2176
- = default_completion_token_t<executor_type>>
2177
- auto async_accept(endpoint_type& peer_endpoint,
2178
- MoveAcceptToken&& token = default_completion_token_t<executor_type>())
2179
- -> decltype(
2180
- async_initiate<MoveAcceptToken,
2181
- void (boost::system::error_code, typename Protocol::socket::template
2182
- rebind_executor<executor_type>::other)>(
2183
- declval<initiate_async_move_accept>(), token,
2184
- declval<const executor_type&>(), &peer_endpoint,
2185
- static_cast<typename Protocol::socket::template
2186
- rebind_executor<executor_type>::other*>(0)))
2187
- {
2188
- return async_initiate<MoveAcceptToken,
2189
- void (boost::system::error_code, typename Protocol::socket::template
2190
- rebind_executor<executor_type>::other)>(
2191
- initiate_async_move_accept(this), token,
2192
- impl_.get_executor(), &peer_endpoint,
2193
- static_cast<typename Protocol::socket::template
2194
- rebind_executor<executor_type>::other*>(0));
2195
- }
2196
-
2197
- /// Accept a new connection.
2198
- /**
2199
- * This function is used to accept a new connection from a peer. The function
2200
- * call will block until a new connection has been accepted successfully or
2201
- * an error occurs.
2202
- *
2203
- * This overload requires that the Protocol template parameter satisfy the
2204
- * AcceptableProtocol type requirements.
2205
- *
2206
- * @param ex The I/O executor object to be used for the newly accepted
2207
- * socket.
2208
- *
2209
- * @param peer_endpoint An endpoint object into which the endpoint of the
2210
- * remote peer will be written.
2211
- *
2212
- * @returns A socket object representing the newly accepted connection.
2213
- *
2214
- * @throws boost::system::system_error Thrown on failure.
2215
- *
2216
- * @par Example
2217
- * @code
2218
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2219
- * ...
2220
- * boost::asio::ip::tcp::endpoint endpoint;
2221
- * boost::asio::ip::tcp::socket socket(
2222
- * acceptor.accept(my_context2, endpoint));
2223
- * @endcode
2224
- */
2225
- template <typename Executor1>
2226
- typename Protocol::socket::template rebind_executor<Executor1>::other
2227
- accept(const Executor1& ex, endpoint_type& peer_endpoint,
2228
- constraint_t<
2229
- is_executor<Executor1>::value
2230
- || execution::is_executor<Executor1>::value
2231
- > = 0)
2232
- {
2233
- boost::system::error_code ec;
2234
- typename Protocol::socket::template
2235
- rebind_executor<Executor1>::other peer(ex);
2236
- impl_.get_service().accept(impl_.get_implementation(),
2237
- peer, &peer_endpoint, ec);
2238
- boost::asio::detail::throw_error(ec, "accept");
2239
- return peer;
2240
- }
2241
-
2242
- /// Accept a new connection.
2243
- /**
2244
- * This function is used to accept a new connection from a peer. The function
2245
- * call will block until a new connection has been accepted successfully or
2246
- * an error occurs.
2247
- *
2248
- * This overload requires that the Protocol template parameter satisfy the
2249
- * AcceptableProtocol type requirements.
2250
- *
2251
- * @param context The I/O execution context object to be used for the newly
2252
- * accepted socket.
2253
- *
2254
- * @param peer_endpoint An endpoint object into which the endpoint of the
2255
- * remote peer will be written.
2256
- *
2257
- * @returns A socket object representing the newly accepted connection.
2258
- *
2259
- * @throws boost::system::system_error Thrown on failure.
2260
- *
2261
- * @par Example
2262
- * @code
2263
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2264
- * ...
2265
- * boost::asio::ip::tcp::endpoint endpoint;
2266
- * boost::asio::ip::tcp::socket socket(
2267
- * acceptor.accept(my_context2, endpoint));
2268
- * @endcode
2269
- */
2270
- template <typename ExecutionContext>
2271
- typename Protocol::socket::template rebind_executor<
2272
- typename ExecutionContext::executor_type>::other
2273
- accept(ExecutionContext& context, endpoint_type& peer_endpoint,
2274
- constraint_t<
2275
- is_convertible<ExecutionContext&, execution_context&>::value
2276
- > = 0)
2277
- {
2278
- boost::system::error_code ec;
2279
- typename Protocol::socket::template rebind_executor<
2280
- typename ExecutionContext::executor_type>::other peer(context);
2281
- impl_.get_service().accept(impl_.get_implementation(),
2282
- peer, &peer_endpoint, ec);
2283
- boost::asio::detail::throw_error(ec, "accept");
2284
- return peer;
2285
- }
2286
-
2287
- /// Accept a new connection.
2288
- /**
2289
- * This function is used to accept a new connection from a peer. The function
2290
- * call will block until a new connection has been accepted successfully or
2291
- * an error occurs.
2292
- *
2293
- * This overload requires that the Protocol template parameter satisfy the
2294
- * AcceptableProtocol type requirements.
2295
- *
2296
- * @param ex The I/O executor object to be used for the newly accepted
2297
- * socket.
2298
- *
2299
- * @param peer_endpoint An endpoint object into which the endpoint of the
2300
- * remote peer will be written.
2301
- *
2302
- * @param ec Set to indicate what error occurred, if any.
2303
- *
2304
- * @returns On success, a socket object representing the newly accepted
2305
- * connection. On error, a socket object where is_open() is false.
2306
- *
2307
- * @par Example
2308
- * @code
2309
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2310
- * ...
2311
- * boost::asio::ip::tcp::endpoint endpoint;
2312
- * boost::asio::ip::tcp::socket socket(
2313
- * acceptor.accept(my_context2, endpoint, ec));
2314
- * if (ec)
2315
- * {
2316
- * // An error occurred.
2317
- * }
2318
- * @endcode
2319
- */
2320
- template <typename Executor1>
2321
- typename Protocol::socket::template rebind_executor<Executor1>::other
2322
- accept(const executor_type& ex,
2323
- endpoint_type& peer_endpoint, boost::system::error_code& ec,
2324
- constraint_t<
2325
- is_executor<Executor1>::value
2326
- || execution::is_executor<Executor1>::value
2327
- > = 0)
2328
- {
2329
- typename Protocol::socket::template
2330
- rebind_executor<Executor1>::other peer(ex);
2331
- impl_.get_service().accept(impl_.get_implementation(),
2332
- peer, &peer_endpoint, ec);
2333
- return peer;
2334
- }
2335
-
2336
- /// Accept a new connection.
2337
- /**
2338
- * This function is used to accept a new connection from a peer. The function
2339
- * call will block until a new connection has been accepted successfully or
2340
- * an error occurs.
2341
- *
2342
- * This overload requires that the Protocol template parameter satisfy the
2343
- * AcceptableProtocol type requirements.
2344
- *
2345
- * @param context The I/O execution context object to be used for the newly
2346
- * accepted socket.
2347
- *
2348
- * @param peer_endpoint An endpoint object into which the endpoint of the
2349
- * remote peer will be written.
2350
- *
2351
- * @param ec Set to indicate what error occurred, if any.
2352
- *
2353
- * @returns On success, a socket object representing the newly accepted
2354
- * connection. On error, a socket object where is_open() is false.
2355
- *
2356
- * @par Example
2357
- * @code
2358
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2359
- * ...
2360
- * boost::asio::ip::tcp::endpoint endpoint;
2361
- * boost::asio::ip::tcp::socket socket(
2362
- * acceptor.accept(my_context2, endpoint, ec));
2363
- * if (ec)
2364
- * {
2365
- * // An error occurred.
2366
- * }
2367
- * @endcode
2368
- */
2369
- template <typename ExecutionContext>
2370
- typename Protocol::socket::template rebind_executor<
2371
- typename ExecutionContext::executor_type>::other
2372
- accept(ExecutionContext& context,
2373
- endpoint_type& peer_endpoint, boost::system::error_code& ec,
2374
- constraint_t<
2375
- is_convertible<ExecutionContext&, execution_context&>::value
2376
- > = 0)
2377
- {
2378
- typename Protocol::socket::template rebind_executor<
2379
- typename ExecutionContext::executor_type>::other peer(context);
2380
- impl_.get_service().accept(impl_.get_implementation(),
2381
- peer, &peer_endpoint, ec);
2382
- return peer;
2383
- }
2384
-
2385
- /// Start an asynchronous accept.
2386
- /**
2387
- * This function is used to asynchronously accept a new connection. It is an
2388
- * initiating function for an @ref asynchronous_operation, and always returns
2389
- * immediately.
2390
- *
2391
- * This overload requires that the Protocol template parameter satisfy the
2392
- * AcceptableProtocol type requirements.
2393
- *
2394
- * @param ex The I/O executor object to be used for the newly accepted
2395
- * socket.
2396
- *
2397
- * @param peer_endpoint An endpoint object into which the endpoint of the
2398
- * remote peer will be written. Ownership of the peer_endpoint object is
2399
- * retained by the caller, which must guarantee that it is valid until the
2400
- * completion handler is called.
2401
- *
2402
- * @param token The @ref completion_token that will be used to produce a
2403
- * completion handler, which will be called when the accept completes.
2404
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
2405
- * @ref yield_context, or a function object with the correct completion
2406
- * signature. The function signature of the completion handler must be:
2407
- * @code void handler(
2408
- * // Result of operation.
2409
- * const boost::system::error_code& error,
2410
- *
2411
- * // On success, the newly accepted socket.
2412
- * typename Protocol::socket::template rebind_executor<
2413
- * Executor1>::other peer
2414
- * ); @endcode
2415
- * Regardless of whether the asynchronous operation completes immediately or
2416
- * not, the completion handler will not be invoked from within this function.
2417
- * On immediate completion, invocation of the handler will be performed in a
2418
- * manner equivalent to using boost::asio::async_immediate().
2419
- *
2420
- * @par Completion Signature
2421
- * @code void(boost::system::error_code,
2422
- * typename Protocol::socket::template rebind_executor<
2423
- * Executor1>::other)) @endcode
2424
- *
2425
- * @par Example
2426
- * @code
2427
- * void accept_handler(const boost::system::error_code& error,
2428
- * boost::asio::ip::tcp::socket peer)
2429
- * {
2430
- * if (!error)
2431
- * {
2432
- * // Accept succeeded.
2433
- * }
2434
- * }
2435
- *
2436
- * ...
2437
- *
2438
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2439
- * ...
2440
- * boost::asio::ip::tcp::endpoint endpoint;
2441
- * acceptor.async_accept(my_context2, endpoint, accept_handler);
2442
- * @endcode
2443
- *
2444
- * @par Per-Operation Cancellation
2445
- * On POSIX or Windows operating systems, this asynchronous operation supports
2446
- * cancellation for the following boost::asio::cancellation_type values:
2447
- *
2448
- * @li @c cancellation_type::terminal
2449
- *
2450
- * @li @c cancellation_type::partial
2451
- *
2452
- * @li @c cancellation_type::total
2453
- */
2454
- template <typename Executor1,
2455
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2456
- typename Protocol::socket::template rebind_executor<
2457
- constraint_t<is_executor<Executor1>::value
2458
- || execution::is_executor<Executor1>::value,
2459
- Executor1>>::other)) MoveAcceptToken
2460
- = default_completion_token_t<executor_type>>
2461
- auto async_accept(const Executor1& ex, endpoint_type& peer_endpoint,
2462
- MoveAcceptToken&& token = default_completion_token_t<executor_type>(),
2463
- constraint_t<
2464
- is_executor<Executor1>::value
2465
- || execution::is_executor<Executor1>::value
2466
- > = 0)
2467
- -> decltype(
2468
- async_initiate<MoveAcceptToken,
2469
- void (boost::system::error_code,
2470
- typename Protocol::socket::template rebind_executor<
2471
- Executor1>::other)>(
2472
- declval<initiate_async_move_accept>(), token, ex, &peer_endpoint,
2473
- static_cast<typename Protocol::socket::template
2474
- rebind_executor<Executor1>::other*>(0)))
2475
- {
2476
- return async_initiate<MoveAcceptToken,
2477
- void (boost::system::error_code,
2478
- typename Protocol::socket::template rebind_executor<
2479
- Executor1>::other)>(
2480
- initiate_async_move_accept(this), token, ex, &peer_endpoint,
2481
- static_cast<typename Protocol::socket::template
2482
- rebind_executor<Executor1>::other*>(0));
2483
- }
2484
-
2485
- /// Start an asynchronous accept.
2486
- /**
2487
- * This function is used to asynchronously accept a new connection. It is an
2488
- * initiating function for an @ref asynchronous_operation, and always returns
2489
- * immediately.
2490
- *
2491
- * This overload requires that the Protocol template parameter satisfy the
2492
- * AcceptableProtocol type requirements.
2493
- *
2494
- * @param context The I/O execution context object to be used for the newly
2495
- * accepted socket.
2496
- *
2497
- * @param peer_endpoint An endpoint object into which the endpoint of the
2498
- * remote peer will be written. Ownership of the peer_endpoint object is
2499
- * retained by the caller, which must guarantee that it is valid until the
2500
- * completion handler is called.
2501
- *
2502
- * @param token The @ref completion_token that will be used to produce a
2503
- * completion handler, which will be called when the accept completes.
2504
- * Potential completion tokens include @ref use_future, @ref use_awaitable,
2505
- * @ref yield_context, or a function object with the correct completion
2506
- * signature. The function signature of the completion handler must be:
2507
- * @code void handler(
2508
- * // Result of operation.
2509
- * const boost::system::error_code& error,
2510
- *
2511
- * // On success, the newly accepted socket.
2512
- * typename Protocol::socket::template rebind_executor<
2513
- * typename ExecutionContext::executor_type>::other peer
2514
- * ); @endcode
2515
- * Regardless of whether the asynchronous operation completes immediately or
2516
- * not, the completion handler will not be invoked from within this function.
2517
- * On immediate completion, invocation of the handler will be performed in a
2518
- * manner equivalent to using boost::asio::async_immediate().
2519
- *
2520
- * @par Completion Signature
2521
- * @code void(boost::system::error_code,
2522
- * typename Protocol::socket::template rebind_executor<
2523
- * typename ExecutionContext::executor_type>::other)) @endcode
2524
- *
2525
- * @par Example
2526
- * @code
2527
- * void accept_handler(const boost::system::error_code& error,
2528
- * boost::asio::ip::tcp::socket peer)
2529
- * {
2530
- * if (!error)
2531
- * {
2532
- * // Accept succeeded.
2533
- * }
2534
- * }
2535
- *
2536
- * ...
2537
- *
2538
- * boost::asio::ip::tcp::acceptor acceptor(my_context);
2539
- * ...
2540
- * boost::asio::ip::tcp::endpoint endpoint;
2541
- * acceptor.async_accept(my_context2, endpoint, accept_handler);
2542
- * @endcode
2543
- *
2544
- * @par Per-Operation Cancellation
2545
- * On POSIX or Windows operating systems, this asynchronous operation supports
2546
- * cancellation for the following boost::asio::cancellation_type values:
2547
- *
2548
- * @li @c cancellation_type::terminal
2549
- *
2550
- * @li @c cancellation_type::partial
2551
- *
2552
- * @li @c cancellation_type::total
2553
- */
2554
- template <typename ExecutionContext,
2555
- BOOST_ASIO_COMPLETION_TOKEN_FOR(void (boost::system::error_code,
2556
- typename Protocol::socket::template rebind_executor<
2557
- typename ExecutionContext::executor_type>::other)) MoveAcceptToken
2558
- = default_completion_token_t<executor_type>>
2559
- auto async_accept(ExecutionContext& context, endpoint_type& peer_endpoint,
2560
- MoveAcceptToken&& token = default_completion_token_t<executor_type>(),
2561
- constraint_t<
2562
- is_convertible<ExecutionContext&, execution_context&>::value
2563
- > = 0)
2564
- -> decltype(
2565
- async_initiate<MoveAcceptToken,
2566
- void (boost::system::error_code,
2567
- typename Protocol::socket::template rebind_executor<
2568
- typename ExecutionContext::executor_type>::other)>(
2569
- declval<initiate_async_move_accept>(), token,
2570
- context.get_executor(), &peer_endpoint,
2571
- static_cast<typename Protocol::socket::template rebind_executor<
2572
- typename ExecutionContext::executor_type>::other*>(0)))
2573
- {
2574
- return async_initiate<MoveAcceptToken,
2575
- void (boost::system::error_code,
2576
- typename Protocol::socket::template rebind_executor<
2577
- typename ExecutionContext::executor_type>::other)>(
2578
- initiate_async_move_accept(this), token,
2579
- context.get_executor(), &peer_endpoint,
2580
- static_cast<typename Protocol::socket::template rebind_executor<
2581
- typename ExecutionContext::executor_type>::other*>(0));
2582
- }
2583
-
2584
- private:
2585
- // Disallow copying and assignment.
2586
- basic_socket_acceptor(const basic_socket_acceptor&) = delete;
2587
- basic_socket_acceptor& operator=(
2588
- const basic_socket_acceptor&) = delete;
2589
-
2590
- class initiate_async_wait
2591
- {
2592
- public:
2593
- typedef Executor executor_type;
2594
-
2595
- explicit initiate_async_wait(basic_socket_acceptor* self)
2596
- : self_(self)
2597
- {
2598
- }
2599
-
2600
- const executor_type& get_executor() const noexcept
2601
- {
2602
- return self_->get_executor();
2603
- }
2604
-
2605
- template <typename WaitHandler>
2606
- void operator()(WaitHandler&& handler, wait_type w) const
2607
- {
2608
- // If you get an error on the following line it means that your handler
2609
- // does not meet the documented type requirements for a WaitHandler.
2610
- BOOST_ASIO_WAIT_HANDLER_CHECK(WaitHandler, handler) type_check;
2611
-
2612
- detail::non_const_lvalue<WaitHandler> handler2(handler);
2613
- self_->impl_.get_service().async_wait(
2614
- self_->impl_.get_implementation(), w,
2615
- handler2.value, self_->impl_.get_executor());
2616
- }
2617
-
2618
- private:
2619
- basic_socket_acceptor* self_;
2620
- };
2621
-
2622
- class initiate_async_accept
2623
- {
2624
- public:
2625
- typedef Executor executor_type;
2626
-
2627
- explicit initiate_async_accept(basic_socket_acceptor* self)
2628
- : self_(self)
2629
- {
2630
- }
2631
-
2632
- const executor_type& get_executor() const noexcept
2633
- {
2634
- return self_->get_executor();
2635
- }
2636
-
2637
- template <typename AcceptHandler, typename Protocol1, typename Executor1>
2638
- void operator()(AcceptHandler&& handler,
2639
- basic_socket<Protocol1, Executor1>* peer,
2640
- endpoint_type* peer_endpoint) const
2641
- {
2642
- // If you get an error on the following line it means that your handler
2643
- // does not meet the documented type requirements for a AcceptHandler.
2644
- BOOST_ASIO_ACCEPT_HANDLER_CHECK(AcceptHandler, handler) type_check;
2645
-
2646
- detail::non_const_lvalue<AcceptHandler> handler2(handler);
2647
- self_->impl_.get_service().async_accept(
2648
- self_->impl_.get_implementation(), *peer, peer_endpoint,
2649
- handler2.value, self_->impl_.get_executor());
2650
- }
2651
-
2652
- private:
2653
- basic_socket_acceptor* self_;
2654
- };
2655
-
2656
- class initiate_async_move_accept
2657
- {
2658
- public:
2659
- typedef Executor executor_type;
2660
-
2661
- explicit initiate_async_move_accept(basic_socket_acceptor* self)
2662
- : self_(self)
2663
- {
2664
- }
2665
-
2666
- const executor_type& get_executor() const noexcept
2667
- {
2668
- return self_->get_executor();
2669
- }
2670
-
2671
- template <typename MoveAcceptHandler, typename Executor1, typename Socket>
2672
- void operator()(MoveAcceptHandler&& handler,
2673
- const Executor1& peer_ex, endpoint_type* peer_endpoint, Socket*) const
2674
- {
2675
- // If you get an error on the following line it means that your handler
2676
- // does not meet the documented type requirements for a MoveAcceptHandler.
2677
- BOOST_ASIO_MOVE_ACCEPT_HANDLER_CHECK(
2678
- MoveAcceptHandler, handler, Socket) type_check;
2679
-
2680
- detail::non_const_lvalue<MoveAcceptHandler> handler2(handler);
2681
- self_->impl_.get_service().async_move_accept(
2682
- self_->impl_.get_implementation(), peer_ex, peer_endpoint,
2683
- handler2.value, self_->impl_.get_executor());
2684
- }
2685
-
2686
- private:
2687
- basic_socket_acceptor* self_;
2688
- };
2689
-
2690
- #if defined(BOOST_ASIO_WINDOWS_RUNTIME)
2691
- detail::io_object_impl<
2692
- detail::null_socket_service<Protocol>, Executor> impl_;
2693
- #elif defined(BOOST_ASIO_HAS_IOCP)
2694
- detail::io_object_impl<
2695
- detail::win_iocp_socket_service<Protocol>, Executor> impl_;
2696
- #elif defined(BOOST_ASIO_HAS_IO_URING_AS_DEFAULT)
2697
- detail::io_object_impl<
2698
- detail::io_uring_socket_service<Protocol>, Executor> impl_;
2699
- #else
2700
- detail::io_object_impl<
2701
- detail::reactive_socket_service<Protocol>, Executor> impl_;
2702
- #endif
2703
- };
2704
-
2705
- } // namespace asio
2706
- } // namespace boost
2707
-
2708
- #include <boost/asio/detail/pop_options.hpp>
2709
-
2710
- #endif // BOOST_ASIO_BASIC_SOCKET_ACCEPTOR_HPP