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,1935 +0,0 @@
1
- //
2
- // execution/any_executor.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_EXECUTION_ANY_EXECUTOR_HPP
12
- #define BOOST_ASIO_EXECUTION_ANY_EXECUTOR_HPP
13
-
14
- #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
- # pragma once
16
- #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
-
18
- #include <boost/asio/detail/config.hpp>
19
- #include <new>
20
- #include <typeinfo>
21
- #include <boost/asio/detail/assert.hpp>
22
- #include <boost/asio/detail/atomic_count.hpp>
23
- #include <boost/asio/detail/cstddef.hpp>
24
- #include <boost/asio/detail/executor_function.hpp>
25
- #include <boost/asio/detail/memory.hpp>
26
- #include <boost/asio/detail/non_const_lvalue.hpp>
27
- #include <boost/asio/detail/scoped_ptr.hpp>
28
- #include <boost/asio/detail/type_traits.hpp>
29
- #include <boost/asio/detail/throw_exception.hpp>
30
- #include <boost/asio/execution/bad_executor.hpp>
31
- #include <boost/asio/execution/blocking.hpp>
32
- #include <boost/asio/execution/executor.hpp>
33
- #include <boost/asio/prefer.hpp>
34
- #include <boost/asio/query.hpp>
35
- #include <boost/asio/require.hpp>
36
-
37
- #include <boost/asio/detail/push_options.hpp>
38
-
39
- namespace boost {
40
- namespace asio {
41
-
42
- #if defined(GENERATING_DOCUMENTATION)
43
-
44
- namespace execution {
45
-
46
- /// Polymorphic executor wrapper.
47
- template <typename... SupportableProperties>
48
- class any_executor
49
- {
50
- public:
51
- /// Default constructor.
52
- any_executor() noexcept;
53
-
54
- /// Construct in an empty state. Equivalent effects to default constructor.
55
- any_executor(nullptr_t) noexcept;
56
-
57
- /// Copy constructor.
58
- any_executor(const any_executor& e) noexcept;
59
-
60
- /// Move constructor.
61
- any_executor(any_executor&& e) noexcept;
62
-
63
- /// Construct to point to the same target as another any_executor.
64
- template <class... OtherSupportableProperties>
65
- any_executor(any_executor<OtherSupportableProperties...> e);
66
-
67
- /// Construct to point to the same target as another any_executor.
68
- template <class... OtherSupportableProperties>
69
- any_executor(std::nothrow_t,
70
- any_executor<OtherSupportableProperties...> e) noexcept;
71
-
72
- /// Construct to point to the same target as another any_executor.
73
- any_executor(std::nothrow_t, const any_executor& e) noexcept;
74
-
75
- /// Construct to point to the same target as another any_executor.
76
- any_executor(std::nothrow_t, any_executor&& e) noexcept;
77
-
78
- /// Construct a polymorphic wrapper for the specified executor.
79
- template <typename Executor>
80
- any_executor(Executor e);
81
-
82
- /// Construct a polymorphic wrapper for the specified executor.
83
- template <typename Executor>
84
- any_executor(std::nothrow_t, Executor e) noexcept;
85
-
86
- /// Assignment operator.
87
- any_executor& operator=(const any_executor& e) noexcept;
88
-
89
- /// Move assignment operator.
90
- any_executor& operator=(any_executor&& e) noexcept;
91
-
92
- /// Assignment operator that sets the polymorphic wrapper to the empty state.
93
- any_executor& operator=(nullptr_t);
94
-
95
- /// Assignment operator to create a polymorphic wrapper for the specified
96
- /// executor.
97
- template <typename Executor>
98
- any_executor& operator=(Executor e);
99
-
100
- /// Destructor.
101
- ~any_executor();
102
-
103
- /// Swap targets with another polymorphic wrapper.
104
- void swap(any_executor& other) noexcept;
105
-
106
- /// Obtain a polymorphic wrapper with the specified property.
107
- /**
108
- * Do not call this function directly. It is intended for use with the
109
- * boost::asio::require and boost::asio::prefer customisation points.
110
- *
111
- * For example:
112
- * @code execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
113
- * auto ex2 = boost::asio::requre(ex, execution::blocking.possibly); @endcode
114
- */
115
- template <typename Property>
116
- any_executor require(Property) const;
117
-
118
- /// Obtain a polymorphic wrapper with the specified property.
119
- /**
120
- * Do not call this function directly. It is intended for use with the
121
- * boost::asio::prefer customisation point.
122
- *
123
- * For example:
124
- * @code execution::any_executor<execution::blocking_t::possibly_t> ex = ...;
125
- * auto ex2 = boost::asio::prefer(ex, execution::blocking.possibly); @endcode
126
- */
127
- template <typename Property>
128
- any_executor prefer(Property) const;
129
-
130
- /// Obtain the value associated with the specified property.
131
- /**
132
- * Do not call this function directly. It is intended for use with the
133
- * boost::asio::query customisation point.
134
- *
135
- * For example:
136
- * @code execution::any_executor<execution::occupancy_t> ex = ...;
137
- * size_t n = boost::asio::query(ex, execution::occupancy); @endcode
138
- */
139
- template <typename Property>
140
- typename Property::polymorphic_query_result_type query(Property) const;
141
-
142
- /// Execute the function on the target executor.
143
- /**
144
- * Throws boost::asio::bad_executor if the polymorphic wrapper has no target.
145
- */
146
- template <typename Function>
147
- void execute(Function&& f) const;
148
-
149
- /// Obtain the underlying execution context.
150
- /**
151
- * This function is provided for backward compatibility. It is automatically
152
- * defined when the @c SupportableProperties... list includes a property of
153
- * type <tt>execution::context_as<U></tt>, for some type <tt>U</tt>.
154
- */
155
- automatically_determined context() const;
156
-
157
- /// Determine whether the wrapper has a target executor.
158
- /**
159
- * @returns @c true if the polymorphic wrapper has a target executor,
160
- * otherwise false.
161
- */
162
- explicit operator bool() const noexcept;
163
-
164
- /// Get the type of the target executor.
165
- const type_info& target_type() const noexcept;
166
-
167
- /// Get a pointer to the target executor.
168
- template <typename Executor> Executor* target() noexcept;
169
-
170
- /// Get a pointer to the target executor.
171
- template <typename Executor> const Executor* target() const noexcept;
172
- };
173
-
174
- /// Equality operator.
175
- /**
176
- * @relates any_executor
177
- */
178
- template <typename... SupportableProperties>
179
- bool operator==(const any_executor<SupportableProperties...>& a,
180
- const any_executor<SupportableProperties...>& b) noexcept;
181
-
182
- /// Equality operator.
183
- /**
184
- * @relates any_executor
185
- */
186
- template <typename... SupportableProperties>
187
- bool operator==(const any_executor<SupportableProperties...>& a,
188
- nullptr_t) noexcept;
189
-
190
- /// Equality operator.
191
- /**
192
- * @relates any_executor
193
- */
194
- template <typename... SupportableProperties>
195
- bool operator==(nullptr_t,
196
- const any_executor<SupportableProperties...>& b) noexcept;
197
-
198
- /// Inequality operator.
199
- /**
200
- * @relates any_executor
201
- */
202
- template <typename... SupportableProperties>
203
- bool operator!=(const any_executor<SupportableProperties...>& a,
204
- const any_executor<SupportableProperties...>& b) noexcept;
205
-
206
- /// Inequality operator.
207
- /**
208
- * @relates any_executor
209
- */
210
- template <typename... SupportableProperties>
211
- bool operator!=(const any_executor<SupportableProperties...>& a,
212
- nullptr_t) noexcept;
213
-
214
- /// Inequality operator.
215
- /**
216
- * @relates any_executor
217
- */
218
- template <typename... SupportableProperties>
219
- bool operator!=(nullptr_t,
220
- const any_executor<SupportableProperties...>& b) noexcept;
221
-
222
- } // namespace execution
223
-
224
- #else // defined(GENERATING_DOCUMENTATION)
225
-
226
- namespace execution {
227
-
228
- #if !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL)
229
- #define BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL
230
-
231
- template <typename... SupportableProperties>
232
- class any_executor;
233
-
234
- #endif // !defined(BOOST_ASIO_EXECUTION_ANY_EXECUTOR_FWD_DECL)
235
-
236
- template <typename U>
237
- struct context_as_t;
238
-
239
- namespace detail {
240
-
241
- // Traits used to detect whether a property is requirable or preferable, taking
242
- // into account that T::is_requirable or T::is_preferable may not not be well
243
- // formed.
244
-
245
- template <typename T, typename = void>
246
- struct is_requirable : false_type {};
247
-
248
- template <typename T>
249
- struct is_requirable<T, enable_if_t<T::is_requirable>> : true_type {};
250
-
251
- template <typename T, typename = void>
252
- struct is_preferable : false_type {};
253
-
254
- template <typename T>
255
- struct is_preferable<T, enable_if_t<T::is_preferable>> : true_type {};
256
-
257
- // Trait used to detect context_as property, for backward compatibility.
258
-
259
- template <typename T>
260
- struct is_context_as : false_type {};
261
-
262
- template <typename U>
263
- struct is_context_as<context_as_t<U>> : true_type {};
264
-
265
- // Helper template to:
266
- // - Check if a target can supply the supportable properties.
267
- // - Find the first convertible-from-T property in the list.
268
-
269
- template <std::size_t I, typename Props>
270
- struct supportable_properties;
271
-
272
- template <std::size_t I, typename Prop>
273
- struct supportable_properties<I, void(Prop)>
274
- {
275
- template <typename T>
276
- struct is_valid_target : integral_constant<bool,
277
- (
278
- is_requirable<Prop>::value
279
- ? can_require<T, Prop>::value
280
- : true
281
- )
282
- &&
283
- (
284
- is_preferable<Prop>::value
285
- ? can_prefer<T, Prop>::value
286
- : true
287
- )
288
- &&
289
- (
290
- !is_requirable<Prop>::value && !is_preferable<Prop>::value
291
- ? can_query<T, Prop>::value
292
- : true
293
- )
294
- >
295
- {
296
- };
297
-
298
- struct found
299
- {
300
- static constexpr bool value = true;
301
- typedef Prop type;
302
- typedef typename Prop::polymorphic_query_result_type query_result_type;
303
- static constexpr std::size_t index = I;
304
- };
305
-
306
- struct not_found
307
- {
308
- static constexpr bool value = false;
309
- };
310
-
311
- template <typename T>
312
- struct find_convertible_property :
313
- conditional_t<
314
- is_same<T, Prop>::value || is_convertible<T, Prop>::value,
315
- found,
316
- not_found
317
- > {};
318
-
319
- template <typename T>
320
- struct find_convertible_requirable_property :
321
- conditional_t<
322
- is_requirable<Prop>::value
323
- && (is_same<T, Prop>::value || is_convertible<T, Prop>::value),
324
- found,
325
- not_found
326
- > {};
327
-
328
- template <typename T>
329
- struct find_convertible_preferable_property :
330
- conditional_t<
331
- is_preferable<Prop>::value
332
- && (is_same<T, Prop>::value || is_convertible<T, Prop>::value),
333
- found,
334
- not_found
335
- > {};
336
-
337
- struct find_context_as_property :
338
- conditional_t<
339
- is_context_as<Prop>::value,
340
- found,
341
- not_found
342
- > {};
343
- };
344
-
345
- template <std::size_t I, typename Head, typename... Tail>
346
- struct supportable_properties<I, void(Head, Tail...)>
347
- {
348
- template <typename T>
349
- struct is_valid_target : integral_constant<bool,
350
- (
351
- supportable_properties<I,
352
- void(Head)>::template is_valid_target<T>::value
353
- &&
354
- supportable_properties<I + 1,
355
- void(Tail...)>::template is_valid_target<T>::value
356
- )
357
- >
358
- {
359
- };
360
-
361
- template <typename T>
362
- struct find_convertible_property :
363
- conditional_t<
364
- is_convertible<T, Head>::value,
365
- typename supportable_properties<I, void(Head)>::found,
366
- typename supportable_properties<I + 1,
367
- void(Tail...)>::template find_convertible_property<T>
368
- > {};
369
-
370
- template <typename T>
371
- struct find_convertible_requirable_property :
372
- conditional_t<
373
- is_requirable<Head>::value
374
- && is_convertible<T, Head>::value,
375
- typename supportable_properties<I, void(Head)>::found,
376
- typename supportable_properties<I + 1,
377
- void(Tail...)>::template find_convertible_requirable_property<T>
378
- > {};
379
-
380
- template <typename T>
381
- struct find_convertible_preferable_property :
382
- conditional_t<
383
- is_preferable<Head>::value
384
- && is_convertible<T, Head>::value,
385
- typename supportable_properties<I, void(Head)>::found,
386
- typename supportable_properties<I + 1,
387
- void(Tail...)>::template find_convertible_preferable_property<T>
388
- > {};
389
-
390
- struct find_context_as_property :
391
- conditional_t<
392
- is_context_as<Head>::value,
393
- typename supportable_properties<I, void(Head)>::found,
394
- typename supportable_properties<I + 1,
395
- void(Tail...)>::find_context_as_property
396
- > {};
397
- };
398
-
399
- template <typename T, typename Props>
400
- struct is_valid_target_executor :
401
- conditional_t<
402
- is_executor<T>::value,
403
- typename supportable_properties<0, Props>::template is_valid_target<T>,
404
- false_type
405
- >
406
- {
407
- };
408
-
409
- template <typename Props>
410
- struct is_valid_target_executor<int, Props> : false_type
411
- {
412
- };
413
-
414
- class shared_target_executor
415
- {
416
- public:
417
- template <typename E>
418
- shared_target_executor(E&& e, decay_t<E>*& target)
419
- {
420
- impl<decay_t<E>>* i =
421
- new impl<decay_t<E>>(static_cast<E&&>(e));
422
- target = &i->ex_;
423
- impl_ = i;
424
- }
425
-
426
- template <typename E>
427
- shared_target_executor(std::nothrow_t, E&& e, decay_t<E>*& target) noexcept
428
- {
429
- impl<decay_t<E>>* i =
430
- new (std::nothrow) impl<decay_t<E>>(static_cast<E&&>(e));
431
- target = i ? &i->ex_ : 0;
432
- impl_ = i;
433
- }
434
-
435
- shared_target_executor(const shared_target_executor& other) noexcept
436
- : impl_(other.impl_)
437
- {
438
- if (impl_)
439
- boost::asio::detail::ref_count_up(impl_->ref_count_);
440
- }
441
-
442
- shared_target_executor(shared_target_executor&& other) noexcept
443
- : impl_(other.impl_)
444
- {
445
- other.impl_ = 0;
446
- }
447
-
448
- ~shared_target_executor()
449
- {
450
- if (impl_)
451
- if (boost::asio::detail::ref_count_down(impl_->ref_count_))
452
- delete impl_;
453
- }
454
-
455
- void* get() const noexcept
456
- {
457
- return impl_ ? impl_->get() : 0;
458
- }
459
-
460
- private:
461
- shared_target_executor& operator=(
462
- const shared_target_executor& other) = delete;
463
-
464
- shared_target_executor& operator=(
465
- shared_target_executor&& other) = delete;
466
-
467
- struct impl_base
468
- {
469
- impl_base() : ref_count_(1) {}
470
- virtual ~impl_base() {}
471
- virtual void* get() = 0;
472
- boost::asio::detail::atomic_count ref_count_;
473
- };
474
-
475
- template <typename Executor>
476
- struct impl : impl_base
477
- {
478
- impl(Executor ex) : ex_(static_cast<Executor&&>(ex)) {}
479
- virtual void* get() { return &ex_; }
480
- Executor ex_;
481
- };
482
-
483
- impl_base* impl_;
484
- };
485
-
486
- class any_executor_base
487
- {
488
- public:
489
- any_executor_base() noexcept
490
- : object_fns_(0),
491
- target_(0),
492
- target_fns_(0)
493
- {
494
- }
495
-
496
- template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
497
- any_executor_base(Executor ex, false_type)
498
- : target_fns_(target_fns_table<Executor>(
499
- any_executor_base::query_blocking(ex,
500
- can_query<const Executor&, const execution::blocking_t&>())
501
- == execution::blocking.always))
502
- {
503
- any_executor_base::construct_object(ex,
504
- integral_constant<bool,
505
- sizeof(Executor) <= sizeof(object_type)
506
- && alignment_of<Executor>::value <= alignment_of<object_type>::value
507
- >());
508
- }
509
-
510
- template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
511
- any_executor_base(std::nothrow_t, Executor ex, false_type) noexcept
512
- : target_fns_(target_fns_table<Executor>(
513
- any_executor_base::query_blocking(ex,
514
- can_query<const Executor&, const execution::blocking_t&>())
515
- == execution::blocking.always))
516
- {
517
- any_executor_base::construct_object(std::nothrow, ex,
518
- integral_constant<bool,
519
- sizeof(Executor) <= sizeof(object_type)
520
- && alignment_of<Executor>::value <= alignment_of<object_type>::value
521
- >());
522
- if (target_ == 0)
523
- {
524
- object_fns_ = 0;
525
- target_fns_ = 0;
526
- }
527
- }
528
-
529
- template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
530
- any_executor_base(Executor other, true_type)
531
- : object_fns_(object_fns_table<shared_target_executor>()),
532
- target_fns_(other.target_fns_)
533
- {
534
- Executor* p = 0;
535
- new (&object_) shared_target_executor(
536
- static_cast<Executor&&>(other), p);
537
- target_ = p->template target<void>();
538
- }
539
-
540
- template <BOOST_ASIO_EXECUTION_EXECUTOR Executor>
541
- any_executor_base(std::nothrow_t,
542
- Executor other, true_type) noexcept
543
- : object_fns_(object_fns_table<shared_target_executor>()),
544
- target_fns_(other.target_fns_)
545
- {
546
- Executor* p = 0;
547
- new (&object_) shared_target_executor(
548
- std::nothrow, static_cast<Executor&&>(other), p);
549
- if (p)
550
- target_ = p->template target<void>();
551
- else
552
- {
553
- target_ = 0;
554
- object_fns_ = 0;
555
- target_fns_ = 0;
556
- }
557
- }
558
-
559
- any_executor_base(const any_executor_base& other) noexcept
560
- {
561
- if (!!other)
562
- {
563
- object_fns_ = other.object_fns_;
564
- target_fns_ = other.target_fns_;
565
- object_fns_->copy(*this, other);
566
- }
567
- else
568
- {
569
- object_fns_ = 0;
570
- target_ = 0;
571
- target_fns_ = 0;
572
- }
573
- }
574
-
575
- ~any_executor_base() noexcept
576
- {
577
- if (!!*this)
578
- object_fns_->destroy(*this);
579
- }
580
-
581
- any_executor_base& operator=(
582
- const any_executor_base& other) noexcept
583
- {
584
- if (this != &other)
585
- {
586
- if (!!*this)
587
- object_fns_->destroy(*this);
588
- if (!!other)
589
- {
590
- object_fns_ = other.object_fns_;
591
- target_fns_ = other.target_fns_;
592
- object_fns_->copy(*this, other);
593
- }
594
- else
595
- {
596
- object_fns_ = 0;
597
- target_ = 0;
598
- target_fns_ = 0;
599
- }
600
- }
601
- return *this;
602
- }
603
-
604
- any_executor_base& operator=(nullptr_t) noexcept
605
- {
606
- if (target_)
607
- object_fns_->destroy(*this);
608
- target_ = 0;
609
- object_fns_ = 0;
610
- target_fns_ = 0;
611
- return *this;
612
- }
613
-
614
- any_executor_base(any_executor_base&& other) noexcept
615
- {
616
- if (other.target_)
617
- {
618
- object_fns_ = other.object_fns_;
619
- target_fns_ = other.target_fns_;
620
- other.object_fns_ = 0;
621
- other.target_fns_ = 0;
622
- object_fns_->move(*this, other);
623
- other.target_ = 0;
624
- }
625
- else
626
- {
627
- object_fns_ = 0;
628
- target_ = 0;
629
- target_fns_ = 0;
630
- }
631
- }
632
-
633
- any_executor_base& operator=(
634
- any_executor_base&& other) noexcept
635
- {
636
- if (this != &other)
637
- {
638
- if (!!*this)
639
- object_fns_->destroy(*this);
640
- if (!!other)
641
- {
642
- object_fns_ = other.object_fns_;
643
- target_fns_ = other.target_fns_;
644
- other.object_fns_ = 0;
645
- other.target_fns_ = 0;
646
- object_fns_->move(*this, other);
647
- other.target_ = 0;
648
- }
649
- else
650
- {
651
- object_fns_ = 0;
652
- target_ = 0;
653
- target_fns_ = 0;
654
- }
655
- }
656
- return *this;
657
- }
658
-
659
- void swap(any_executor_base& other) noexcept
660
- {
661
- if (this != &other)
662
- {
663
- any_executor_base tmp(static_cast<any_executor_base&&>(other));
664
- other = static_cast<any_executor_base&&>(*this);
665
- *this = static_cast<any_executor_base&&>(tmp);
666
- }
667
- }
668
-
669
- template <typename F>
670
- void execute(F&& f) const
671
- {
672
- if (target_)
673
- {
674
- if (target_fns_->blocking_execute != 0)
675
- {
676
- boost::asio::detail::non_const_lvalue<F> f2(f);
677
- target_fns_->blocking_execute(*this, function_view(f2.value));
678
- }
679
- else
680
- {
681
- target_fns_->execute(*this,
682
- function(static_cast<F&&>(f), std::allocator<void>()));
683
- }
684
- }
685
- else
686
- {
687
- bad_executor ex;
688
- boost::asio::detail::throw_exception(ex);
689
- }
690
- }
691
-
692
- template <typename Executor>
693
- Executor* target()
694
- {
695
- return target_ && (is_same<Executor, void>::value
696
- || target_fns_->target_type() == target_type_ex<Executor>())
697
- ? static_cast<Executor*>(target_) : 0;
698
- }
699
-
700
- template <typename Executor>
701
- const Executor* target() const
702
- {
703
- return target_ && (is_same<Executor, void>::value
704
- || target_fns_->target_type() == target_type_ex<Executor>())
705
- ? static_cast<const Executor*>(target_) : 0;
706
- }
707
-
708
- #if !defined(BOOST_ASIO_NO_TYPEID)
709
- const std::type_info& target_type() const
710
- {
711
- return target_ ? target_fns_->target_type() : typeid(void);
712
- }
713
- #else // !defined(BOOST_ASIO_NO_TYPEID)
714
- const void* target_type() const
715
- {
716
- return target_ ? target_fns_->target_type() : 0;
717
- }
718
- #endif // !defined(BOOST_ASIO_NO_TYPEID)
719
-
720
- struct unspecified_bool_type_t {};
721
- typedef void (*unspecified_bool_type)(unspecified_bool_type_t);
722
- static void unspecified_bool_true(unspecified_bool_type_t) {}
723
-
724
- operator unspecified_bool_type() const noexcept
725
- {
726
- return target_ ? &any_executor_base::unspecified_bool_true : 0;
727
- }
728
-
729
- bool operator!() const noexcept
730
- {
731
- return target_ == 0;
732
- }
733
-
734
- protected:
735
- bool equality_helper(const any_executor_base& other) const noexcept
736
- {
737
- if (target_ == other.target_)
738
- return true;
739
- if (target_ && !other.target_)
740
- return false;
741
- if (!target_ && other.target_)
742
- return false;
743
- if (target_fns_ != other.target_fns_)
744
- return false;
745
- return target_fns_->equal(*this, other);
746
- }
747
-
748
- template <typename Ex>
749
- Ex& object()
750
- {
751
- return *static_cast<Ex*>(static_cast<void*>(&object_));
752
- }
753
-
754
- template <typename Ex>
755
- const Ex& object() const
756
- {
757
- return *static_cast<const Ex*>(static_cast<const void*>(&object_));
758
- }
759
-
760
- struct object_fns
761
- {
762
- void (*destroy)(any_executor_base&);
763
- void (*copy)(any_executor_base&, const any_executor_base&);
764
- void (*move)(any_executor_base&, any_executor_base&);
765
- const void* (*target)(const any_executor_base&);
766
- };
767
-
768
- static void destroy_shared(any_executor_base& ex)
769
- {
770
- typedef shared_target_executor type;
771
- ex.object<type>().~type();
772
- }
773
-
774
- static void copy_shared(any_executor_base& ex1, const any_executor_base& ex2)
775
- {
776
- typedef shared_target_executor type;
777
- new (&ex1.object_) type(ex2.object<type>());
778
- ex1.target_ = ex2.target_;
779
- }
780
-
781
- static void move_shared(any_executor_base& ex1, any_executor_base& ex2)
782
- {
783
- typedef shared_target_executor type;
784
- new (&ex1.object_) type(static_cast<type&&>(ex2.object<type>()));
785
- ex1.target_ = ex2.target_;
786
- ex2.object<type>().~type();
787
- }
788
-
789
- static const void* target_shared(const any_executor_base& ex)
790
- {
791
- typedef shared_target_executor type;
792
- return ex.object<type>().get();
793
- }
794
-
795
- template <typename Obj>
796
- static const object_fns* object_fns_table(
797
- enable_if_t<
798
- is_same<Obj, shared_target_executor>::value
799
- >* = 0)
800
- {
801
- static const object_fns fns =
802
- {
803
- &any_executor_base::destroy_shared,
804
- &any_executor_base::copy_shared,
805
- &any_executor_base::move_shared,
806
- &any_executor_base::target_shared
807
- };
808
- return &fns;
809
- }
810
-
811
- template <typename Obj>
812
- static void destroy_object(any_executor_base& ex)
813
- {
814
- ex.object<Obj>().~Obj();
815
- }
816
-
817
- template <typename Obj>
818
- static void copy_object(any_executor_base& ex1, const any_executor_base& ex2)
819
- {
820
- new (&ex1.object_) Obj(ex2.object<Obj>());
821
- ex1.target_ = &ex1.object<Obj>();
822
- }
823
-
824
- template <typename Obj>
825
- static void move_object(any_executor_base& ex1, any_executor_base& ex2)
826
- {
827
- new (&ex1.object_) Obj(static_cast<Obj&&>(ex2.object<Obj>()));
828
- ex1.target_ = &ex1.object<Obj>();
829
- ex2.object<Obj>().~Obj();
830
- }
831
-
832
- template <typename Obj>
833
- static const void* target_object(const any_executor_base& ex)
834
- {
835
- return &ex.object<Obj>();
836
- }
837
-
838
- template <typename Obj>
839
- static const object_fns* object_fns_table(
840
- enable_if_t<
841
- !is_same<Obj, void>::value
842
- && !is_same<Obj, shared_target_executor>::value
843
- >* = 0)
844
- {
845
- static const object_fns fns =
846
- {
847
- &any_executor_base::destroy_object<Obj>,
848
- &any_executor_base::copy_object<Obj>,
849
- &any_executor_base::move_object<Obj>,
850
- &any_executor_base::target_object<Obj>
851
- };
852
- return &fns;
853
- }
854
-
855
- typedef boost::asio::detail::executor_function function;
856
- typedef boost::asio::detail::executor_function_view function_view;
857
-
858
- struct target_fns
859
- {
860
- #if !defined(BOOST_ASIO_NO_TYPEID)
861
- const std::type_info& (*target_type)();
862
- #else // !defined(BOOST_ASIO_NO_TYPEID)
863
- const void* (*target_type)();
864
- #endif // !defined(BOOST_ASIO_NO_TYPEID)
865
- bool (*equal)(const any_executor_base&, const any_executor_base&);
866
- void (*execute)(const any_executor_base&, function&&);
867
- void (*blocking_execute)(const any_executor_base&, function_view);
868
- };
869
-
870
- #if !defined(BOOST_ASIO_NO_TYPEID)
871
- template <typename Ex>
872
- static const std::type_info& target_type_ex()
873
- {
874
- return typeid(Ex);
875
- }
876
- #else // !defined(BOOST_ASIO_NO_TYPEID)
877
- template <typename Ex>
878
- static const void* target_type_ex()
879
- {
880
- static int unique_id;
881
- return &unique_id;
882
- }
883
- #endif // !defined(BOOST_ASIO_NO_TYPEID)
884
-
885
- template <typename Ex>
886
- static bool equal_ex(const any_executor_base& ex1,
887
- const any_executor_base& ex2)
888
- {
889
- const Ex* p1 = ex1.target<Ex>();
890
- const Ex* p2 = ex2.target<Ex>();
891
- BOOST_ASIO_ASSUME(p1 != 0 && p2 != 0);
892
- return *p1 == *p2;
893
- }
894
-
895
- template <typename Ex>
896
- static void execute_ex(const any_executor_base& ex, function&& f)
897
- {
898
- const Ex* p = ex.target<Ex>();
899
- BOOST_ASIO_ASSUME(p != 0);
900
- p->execute(static_cast<function&&>(f));
901
- }
902
-
903
- template <typename Ex>
904
- static void blocking_execute_ex(const any_executor_base& ex, function_view f)
905
- {
906
- const Ex* p = ex.target<Ex>();
907
- BOOST_ASIO_ASSUME(p != 0);
908
- p->execute(f);
909
- }
910
-
911
- template <typename Ex>
912
- static const target_fns* target_fns_table(bool is_always_blocking,
913
- enable_if_t<
914
- !is_same<Ex, void>::value
915
- >* = 0)
916
- {
917
- static const target_fns fns_with_execute =
918
- {
919
- &any_executor_base::target_type_ex<Ex>,
920
- &any_executor_base::equal_ex<Ex>,
921
- &any_executor_base::execute_ex<Ex>,
922
- 0
923
- };
924
-
925
- static const target_fns fns_with_blocking_execute =
926
- {
927
- &any_executor_base::target_type_ex<Ex>,
928
- &any_executor_base::equal_ex<Ex>,
929
- 0,
930
- &any_executor_base::blocking_execute_ex<Ex>
931
- };
932
-
933
- return is_always_blocking ? &fns_with_blocking_execute : &fns_with_execute;
934
- }
935
-
936
- #if defined(BOOST_ASIO_MSVC)
937
- # pragma warning (push)
938
- # pragma warning (disable:4702)
939
- #endif // defined(BOOST_ASIO_MSVC)
940
-
941
- static void query_fn_void(void*, const void*, const void*)
942
- {
943
- bad_executor ex;
944
- boost::asio::detail::throw_exception(ex);
945
- }
946
-
947
- template <typename Ex, class Prop>
948
- static void query_fn_non_void(void*, const void* ex, const void* prop,
949
- enable_if_t<
950
- boost::asio::can_query<const Ex&, const Prop&>::value
951
- && is_same<typename Prop::polymorphic_query_result_type, void>::value
952
- >*)
953
- {
954
- boost::asio::query(*static_cast<const Ex*>(ex),
955
- *static_cast<const Prop*>(prop));
956
- }
957
-
958
- template <typename Ex, class Prop>
959
- static void query_fn_non_void(void*, const void*, const void*,
960
- enable_if_t<
961
- !boost::asio::can_query<const Ex&, const Prop&>::value
962
- && is_same<typename Prop::polymorphic_query_result_type, void>::value
963
- >*)
964
- {
965
- }
966
-
967
- template <typename Ex, class Prop>
968
- static void query_fn_non_void(void* result, const void* ex, const void* prop,
969
- enable_if_t<
970
- boost::asio::can_query<const Ex&, const Prop&>::value
971
- && !is_same<typename Prop::polymorphic_query_result_type, void>::value
972
- && is_reference<typename Prop::polymorphic_query_result_type>::value
973
- >*)
974
- {
975
- *static_cast<remove_reference_t<
976
- typename Prop::polymorphic_query_result_type>**>(result)
977
- = &static_cast<typename Prop::polymorphic_query_result_type>(
978
- boost::asio::query(*static_cast<const Ex*>(ex),
979
- *static_cast<const Prop*>(prop)));
980
- }
981
-
982
- template <typename Ex, class Prop>
983
- static void query_fn_non_void(void*, const void*, const void*,
984
- enable_if_t<
985
- !boost::asio::can_query<const Ex&, const Prop&>::value
986
- && !is_same<typename Prop::polymorphic_query_result_type, void>::value
987
- && is_reference<typename Prop::polymorphic_query_result_type>::value
988
- >*)
989
- {
990
- std::terminate(); // Combination should not be possible.
991
- }
992
-
993
- template <typename Ex, class Prop>
994
- static void query_fn_non_void(void* result, const void* ex, const void* prop,
995
- enable_if_t<
996
- boost::asio::can_query<const Ex&, const Prop&>::value
997
- && !is_same<typename Prop::polymorphic_query_result_type, void>::value
998
- && is_scalar<typename Prop::polymorphic_query_result_type>::value
999
- >*)
1000
- {
1001
- *static_cast<typename Prop::polymorphic_query_result_type*>(result)
1002
- = static_cast<typename Prop::polymorphic_query_result_type>(
1003
- boost::asio::query(*static_cast<const Ex*>(ex),
1004
- *static_cast<const Prop*>(prop)));
1005
- }
1006
-
1007
- template <typename Ex, class Prop>
1008
- static void query_fn_non_void(void* result, const void*, const void*,
1009
- enable_if_t<
1010
- !boost::asio::can_query<const Ex&, const Prop&>::value
1011
- && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1012
- && is_scalar<typename Prop::polymorphic_query_result_type>::value
1013
- >*)
1014
- {
1015
- *static_cast<typename Prop::polymorphic_query_result_type*>(result)
1016
- = typename Prop::polymorphic_query_result_type();
1017
- }
1018
-
1019
- template <typename Ex, class Prop>
1020
- static void query_fn_non_void(void* result, const void* ex, const void* prop,
1021
- enable_if_t<
1022
- boost::asio::can_query<const Ex&, const Prop&>::value
1023
- && !is_same<typename Prop::polymorphic_query_result_type, void>::value
1024
- && !is_reference<typename Prop::polymorphic_query_result_type>::value
1025
- && !is_scalar<typename Prop::polymorphic_query_result_type>::value
1026
- >*)
1027
- {
1028
- *static_cast<typename Prop::polymorphic_query_result_type**>(result)
1029
- = new typename Prop::polymorphic_query_result_type(
1030
- boost::asio::query(*static_cast<const Ex*>(ex),
1031
- *static_cast<const Prop*>(prop)));
1032
- }
1033
-
1034
- template <typename Ex, class Prop>
1035
- static void query_fn_non_void(void* result, const void*, const void*, ...)
1036
- {
1037
- *static_cast<typename Prop::polymorphic_query_result_type**>(result)
1038
- = new typename Prop::polymorphic_query_result_type();
1039
- }
1040
-
1041
- template <typename Ex, class Prop>
1042
- static void query_fn_impl(void* result, const void* ex, const void* prop,
1043
- enable_if_t<
1044
- is_same<Ex, void>::value
1045
- >*)
1046
- {
1047
- query_fn_void(result, ex, prop);
1048
- }
1049
-
1050
- template <typename Ex, class Prop>
1051
- static void query_fn_impl(void* result, const void* ex, const void* prop,
1052
- enable_if_t<
1053
- !is_same<Ex, void>::value
1054
- >*)
1055
- {
1056
- query_fn_non_void<Ex, Prop>(result, ex, prop, 0);
1057
- }
1058
-
1059
- template <typename Ex, class Prop>
1060
- static void query_fn(void* result, const void* ex, const void* prop)
1061
- {
1062
- query_fn_impl<Ex, Prop>(result, ex, prop, 0);
1063
- }
1064
-
1065
- template <typename Poly, typename Ex, class Prop>
1066
- static Poly require_fn_impl(const void*, const void*,
1067
- enable_if_t<
1068
- is_same<Ex, void>::value
1069
- >*)
1070
- {
1071
- bad_executor ex;
1072
- boost::asio::detail::throw_exception(ex);
1073
- return Poly();
1074
- }
1075
-
1076
- template <typename Poly, typename Ex, class Prop>
1077
- static Poly require_fn_impl(const void* ex, const void* prop,
1078
- enable_if_t<
1079
- !is_same<Ex, void>::value && Prop::is_requirable
1080
- >*)
1081
- {
1082
- return boost::asio::require(*static_cast<const Ex*>(ex),
1083
- *static_cast<const Prop*>(prop));
1084
- }
1085
-
1086
- template <typename Poly, typename Ex, class Prop>
1087
- static Poly require_fn_impl(const void*, const void*, ...)
1088
- {
1089
- return Poly();
1090
- }
1091
-
1092
- template <typename Poly, typename Ex, class Prop>
1093
- static Poly require_fn(const void* ex, const void* prop)
1094
- {
1095
- return require_fn_impl<Poly, Ex, Prop>(ex, prop, 0);
1096
- }
1097
-
1098
- template <typename Poly, typename Ex, class Prop>
1099
- static Poly prefer_fn_impl(const void*, const void*,
1100
- enable_if_t<
1101
- is_same<Ex, void>::value
1102
- >*)
1103
- {
1104
- bad_executor ex;
1105
- boost::asio::detail::throw_exception(ex);
1106
- return Poly();
1107
- }
1108
-
1109
- template <typename Poly, typename Ex, class Prop>
1110
- static Poly prefer_fn_impl(const void* ex, const void* prop,
1111
- enable_if_t<
1112
- !is_same<Ex, void>::value && Prop::is_preferable
1113
- >*)
1114
- {
1115
- return boost::asio::prefer(*static_cast<const Ex*>(ex),
1116
- *static_cast<const Prop*>(prop));
1117
- }
1118
-
1119
- template <typename Poly, typename Ex, class Prop>
1120
- static Poly prefer_fn_impl(const void*, const void*, ...)
1121
- {
1122
- return Poly();
1123
- }
1124
-
1125
- template <typename Poly, typename Ex, class Prop>
1126
- static Poly prefer_fn(const void* ex, const void* prop)
1127
- {
1128
- return prefer_fn_impl<Poly, Ex, Prop>(ex, prop, 0);
1129
- }
1130
-
1131
- template <typename Poly>
1132
- struct prop_fns
1133
- {
1134
- void (*query)(void*, const void*, const void*);
1135
- Poly (*require)(const void*, const void*);
1136
- Poly (*prefer)(const void*, const void*);
1137
- };
1138
-
1139
- #if defined(BOOST_ASIO_MSVC)
1140
- # pragma warning (pop)
1141
- #endif // defined(BOOST_ASIO_MSVC)
1142
-
1143
- private:
1144
- template <typename Executor>
1145
- static execution::blocking_t query_blocking(const Executor& ex, true_type)
1146
- {
1147
- return boost::asio::query(ex, execution::blocking);
1148
- }
1149
-
1150
- template <typename Executor>
1151
- static execution::blocking_t query_blocking(const Executor&, false_type)
1152
- {
1153
- return execution::blocking_t();
1154
- }
1155
-
1156
- template <typename Executor>
1157
- void construct_object(Executor& ex, true_type)
1158
- {
1159
- object_fns_ = object_fns_table<Executor>();
1160
- target_ = new (&object_) Executor(static_cast<Executor&&>(ex));
1161
- }
1162
-
1163
- template <typename Executor>
1164
- void construct_object(Executor& ex, false_type)
1165
- {
1166
- object_fns_ = object_fns_table<shared_target_executor>();
1167
- Executor* p = 0;
1168
- new (&object_) shared_target_executor(
1169
- static_cast<Executor&&>(ex), p);
1170
- target_ = p;
1171
- }
1172
-
1173
- template <typename Executor>
1174
- void construct_object(std::nothrow_t,
1175
- Executor& ex, true_type) noexcept
1176
- {
1177
- object_fns_ = object_fns_table<Executor>();
1178
- target_ = new (&object_) Executor(static_cast<Executor&&>(ex));
1179
- }
1180
-
1181
- template <typename Executor>
1182
- void construct_object(std::nothrow_t,
1183
- Executor& ex, false_type) noexcept
1184
- {
1185
- object_fns_ = object_fns_table<shared_target_executor>();
1186
- Executor* p = 0;
1187
- new (&object_) shared_target_executor(
1188
- std::nothrow, static_cast<Executor&&>(ex), p);
1189
- target_ = p;
1190
- }
1191
-
1192
- /*private:*/public:
1193
- // template <typename...> friend class any_executor;
1194
-
1195
- typedef aligned_storage<
1196
- sizeof(boost::asio::detail::shared_ptr<void>) + sizeof(void*),
1197
- alignment_of<boost::asio::detail::shared_ptr<void>>::value
1198
- >::type object_type;
1199
-
1200
- object_type object_;
1201
- const object_fns* object_fns_;
1202
- void* target_;
1203
- const target_fns* target_fns_;
1204
- };
1205
-
1206
- template <typename Derived, typename Property, typename = void>
1207
- struct any_executor_context
1208
- {
1209
- };
1210
-
1211
- #if !defined(BOOST_ASIO_NO_TS_EXECUTORS)
1212
-
1213
- template <typename Derived, typename Property>
1214
- struct any_executor_context<Derived, Property, enable_if_t<Property::value>>
1215
- {
1216
- typename Property::query_result_type context() const
1217
- {
1218
- return static_cast<const Derived*>(this)->query(typename Property::type());
1219
- }
1220
- };
1221
-
1222
- #endif // !defined(BOOST_ASIO_NO_TS_EXECUTORS)
1223
-
1224
- } // namespace detail
1225
-
1226
- template <>
1227
- class any_executor<> : public detail::any_executor_base
1228
- {
1229
- public:
1230
- any_executor() noexcept
1231
- : detail::any_executor_base()
1232
- {
1233
- }
1234
-
1235
- any_executor(nullptr_t) noexcept
1236
- : detail::any_executor_base()
1237
- {
1238
- }
1239
-
1240
- template <typename Executor>
1241
- any_executor(Executor ex,
1242
- enable_if_t<
1243
- conditional_t<
1244
- !is_same<Executor, any_executor>::value
1245
- && !is_base_of<detail::any_executor_base, Executor>::value,
1246
- is_executor<Executor>,
1247
- false_type
1248
- >::value
1249
- >* = 0)
1250
- : detail::any_executor_base(
1251
- static_cast<Executor&&>(ex), false_type())
1252
- {
1253
- }
1254
-
1255
- template <typename Executor>
1256
- any_executor(std::nothrow_t, Executor ex,
1257
- enable_if_t<
1258
- conditional_t<
1259
- !is_same<Executor, any_executor>::value
1260
- && !is_base_of<detail::any_executor_base, Executor>::value,
1261
- is_executor<Executor>,
1262
- false_type
1263
- >::value
1264
- >* = 0) noexcept
1265
- : detail::any_executor_base(std::nothrow,
1266
- static_cast<Executor&&>(ex), false_type())
1267
- {
1268
- }
1269
-
1270
- template <typename... OtherSupportableProperties>
1271
- any_executor(any_executor<OtherSupportableProperties...> other)
1272
- : detail::any_executor_base(
1273
- static_cast<const detail::any_executor_base&>(other))
1274
- {
1275
- }
1276
-
1277
- template <typename... OtherSupportableProperties>
1278
- any_executor(std::nothrow_t,
1279
- any_executor<OtherSupportableProperties...> other) noexcept
1280
- : detail::any_executor_base(
1281
- static_cast<const detail::any_executor_base&>(other))
1282
- {
1283
- }
1284
-
1285
- any_executor(const any_executor& other) noexcept
1286
- : detail::any_executor_base(
1287
- static_cast<const detail::any_executor_base&>(other))
1288
- {
1289
- }
1290
-
1291
- any_executor(std::nothrow_t, const any_executor& other) noexcept
1292
- : detail::any_executor_base(
1293
- static_cast<const detail::any_executor_base&>(other))
1294
- {
1295
- }
1296
-
1297
- any_executor& operator=(const any_executor& other) noexcept
1298
- {
1299
- if (this != &other)
1300
- {
1301
- detail::any_executor_base::operator=(
1302
- static_cast<const detail::any_executor_base&>(other));
1303
- }
1304
- return *this;
1305
- }
1306
-
1307
- any_executor& operator=(nullptr_t p) noexcept
1308
- {
1309
- detail::any_executor_base::operator=(p);
1310
- return *this;
1311
- }
1312
-
1313
- any_executor(any_executor&& other) noexcept
1314
- : detail::any_executor_base(
1315
- static_cast<any_executor_base&&>(
1316
- static_cast<any_executor_base&>(other)))
1317
- {
1318
- }
1319
-
1320
- any_executor(std::nothrow_t, any_executor&& other) noexcept
1321
- : detail::any_executor_base(
1322
- static_cast<any_executor_base&&>(
1323
- static_cast<any_executor_base&>(other)))
1324
- {
1325
- }
1326
-
1327
- any_executor& operator=(any_executor&& other) noexcept
1328
- {
1329
- if (this != &other)
1330
- {
1331
- detail::any_executor_base::operator=(
1332
- static_cast<detail::any_executor_base&&>(
1333
- static_cast<detail::any_executor_base&>(other)));
1334
- }
1335
- return *this;
1336
- }
1337
-
1338
- void swap(any_executor& other) noexcept
1339
- {
1340
- detail::any_executor_base::swap(
1341
- static_cast<detail::any_executor_base&>(other));
1342
- }
1343
-
1344
- using detail::any_executor_base::execute;
1345
- using detail::any_executor_base::target;
1346
- using detail::any_executor_base::target_type;
1347
- using detail::any_executor_base::operator unspecified_bool_type;
1348
- using detail::any_executor_base::operator!;
1349
-
1350
- bool equality_helper(const any_executor& other) const noexcept
1351
- {
1352
- return any_executor_base::equality_helper(other);
1353
- }
1354
-
1355
- template <typename AnyExecutor1, typename AnyExecutor2>
1356
- friend enable_if_t<
1357
- is_base_of<any_executor, AnyExecutor1>::value
1358
- || is_base_of<any_executor, AnyExecutor2>::value,
1359
- bool
1360
- > operator==(const AnyExecutor1& a,
1361
- const AnyExecutor2& b) noexcept
1362
- {
1363
- return static_cast<const any_executor&>(a).equality_helper(b);
1364
- }
1365
-
1366
- template <typename AnyExecutor>
1367
- friend enable_if_t<
1368
- is_same<AnyExecutor, any_executor>::value,
1369
- bool
1370
- > operator==(const AnyExecutor& a, nullptr_t) noexcept
1371
- {
1372
- return !a;
1373
- }
1374
-
1375
- template <typename AnyExecutor>
1376
- friend enable_if_t<
1377
- is_same<AnyExecutor, any_executor>::value,
1378
- bool
1379
- > operator==(nullptr_t, const AnyExecutor& b) noexcept
1380
- {
1381
- return !b;
1382
- }
1383
-
1384
- template <typename AnyExecutor1, typename AnyExecutor2>
1385
- friend enable_if_t<
1386
- is_base_of<any_executor, AnyExecutor1>::value
1387
- || is_base_of<any_executor, AnyExecutor2>::value,
1388
- bool
1389
- > operator!=(const AnyExecutor1& a,
1390
- const AnyExecutor2& b) noexcept
1391
- {
1392
- return !static_cast<const any_executor&>(a).equality_helper(b);
1393
- }
1394
-
1395
- template <typename AnyExecutor>
1396
- friend enable_if_t<
1397
- is_same<AnyExecutor, any_executor>::value,
1398
- bool
1399
- > operator!=(const AnyExecutor& a, nullptr_t) noexcept
1400
- {
1401
- return !!a;
1402
- }
1403
-
1404
- template <typename AnyExecutor>
1405
- friend enable_if_t<
1406
- is_same<AnyExecutor, any_executor>::value,
1407
- bool
1408
- > operator!=(nullptr_t, const AnyExecutor& b) noexcept
1409
- {
1410
- return !!b;
1411
- }
1412
- };
1413
-
1414
- inline void swap(any_executor<>& a, any_executor<>& b) noexcept
1415
- {
1416
- return a.swap(b);
1417
- }
1418
-
1419
- template <typename... SupportableProperties>
1420
- class any_executor :
1421
- public detail::any_executor_base,
1422
- public detail::any_executor_context<
1423
- any_executor<SupportableProperties...>,
1424
- typename detail::supportable_properties<
1425
- 0, void(SupportableProperties...)>::find_context_as_property>
1426
- {
1427
- public:
1428
- any_executor() noexcept
1429
- : detail::any_executor_base(),
1430
- prop_fns_(prop_fns_table<void>())
1431
- {
1432
- }
1433
-
1434
- any_executor(nullptr_t) noexcept
1435
- : detail::any_executor_base(),
1436
- prop_fns_(prop_fns_table<void>())
1437
- {
1438
- }
1439
-
1440
- template <typename Executor>
1441
- any_executor(Executor ex,
1442
- enable_if_t<
1443
- conditional_t<
1444
- !is_same<Executor, any_executor>::value
1445
- && !is_base_of<detail::any_executor_base, Executor>::value,
1446
- detail::is_valid_target_executor<
1447
- Executor, void(SupportableProperties...)>,
1448
- false_type
1449
- >::value
1450
- >* = 0)
1451
- : detail::any_executor_base(
1452
- static_cast<Executor&&>(ex), false_type()),
1453
- prop_fns_(prop_fns_table<Executor>())
1454
- {
1455
- }
1456
-
1457
- template <typename Executor>
1458
- any_executor(std::nothrow_t, Executor ex,
1459
- enable_if_t<
1460
- conditional_t<
1461
- !is_same<Executor, any_executor>::value
1462
- && !is_base_of<detail::any_executor_base, Executor>::value,
1463
- detail::is_valid_target_executor<
1464
- Executor, void(SupportableProperties...)>,
1465
- false_type
1466
- >::value
1467
- >* = 0) noexcept
1468
- : detail::any_executor_base(std::nothrow,
1469
- static_cast<Executor&&>(ex), false_type()),
1470
- prop_fns_(prop_fns_table<Executor>())
1471
- {
1472
- if (this->template target<void>() == 0)
1473
- prop_fns_ = prop_fns_table<void>();
1474
- }
1475
-
1476
- template <typename... OtherSupportableProperties>
1477
- any_executor(any_executor<OtherSupportableProperties...> other,
1478
- enable_if_t<
1479
- conditional_t<
1480
- !is_same<
1481
- any_executor<OtherSupportableProperties...>,
1482
- any_executor
1483
- >::value,
1484
- typename detail::supportable_properties<
1485
- 0, void(SupportableProperties...)>::template is_valid_target<
1486
- any_executor<OtherSupportableProperties...>>,
1487
- false_type
1488
- >::value
1489
- >* = 0)
1490
- : detail::any_executor_base(
1491
- static_cast<any_executor<OtherSupportableProperties...>&&>(other),
1492
- true_type()),
1493
- prop_fns_(prop_fns_table<any_executor<OtherSupportableProperties...>>())
1494
- {
1495
- }
1496
-
1497
- template <typename... OtherSupportableProperties>
1498
- any_executor(std::nothrow_t,
1499
- any_executor<OtherSupportableProperties...> other,
1500
- enable_if_t<
1501
- conditional_t<
1502
- !is_same<
1503
- any_executor<OtherSupportableProperties...>,
1504
- any_executor
1505
- >::value,
1506
- typename detail::supportable_properties<
1507
- 0, void(SupportableProperties...)>::template is_valid_target<
1508
- any_executor<OtherSupportableProperties...>>,
1509
- false_type
1510
- >::value
1511
- >* = 0) noexcept
1512
- : detail::any_executor_base(std::nothrow,
1513
- static_cast<any_executor<OtherSupportableProperties...>&&>(other),
1514
- true_type()),
1515
- prop_fns_(prop_fns_table<any_executor<OtherSupportableProperties...>>())
1516
- {
1517
- if (this->template target<void>() == 0)
1518
- prop_fns_ = prop_fns_table<void>();
1519
- }
1520
-
1521
- any_executor(const any_executor& other) noexcept
1522
- : detail::any_executor_base(
1523
- static_cast<const detail::any_executor_base&>(other)),
1524
- prop_fns_(other.prop_fns_)
1525
- {
1526
- }
1527
-
1528
- any_executor(std::nothrow_t, const any_executor& other) noexcept
1529
- : detail::any_executor_base(
1530
- static_cast<const detail::any_executor_base&>(other)),
1531
- prop_fns_(other.prop_fns_)
1532
- {
1533
- }
1534
-
1535
- any_executor& operator=(const any_executor& other) noexcept
1536
- {
1537
- if (this != &other)
1538
- {
1539
- prop_fns_ = other.prop_fns_;
1540
- detail::any_executor_base::operator=(
1541
- static_cast<const detail::any_executor_base&>(other));
1542
- }
1543
- return *this;
1544
- }
1545
-
1546
- any_executor& operator=(nullptr_t p) noexcept
1547
- {
1548
- prop_fns_ = prop_fns_table<void>();
1549
- detail::any_executor_base::operator=(p);
1550
- return *this;
1551
- }
1552
-
1553
- any_executor(any_executor&& other) noexcept
1554
- : detail::any_executor_base(
1555
- static_cast<any_executor_base&&>(
1556
- static_cast<any_executor_base&>(other))),
1557
- prop_fns_(other.prop_fns_)
1558
- {
1559
- other.prop_fns_ = prop_fns_table<void>();
1560
- }
1561
-
1562
- any_executor(std::nothrow_t, any_executor&& other) noexcept
1563
- : detail::any_executor_base(
1564
- static_cast<any_executor_base&&>(
1565
- static_cast<any_executor_base&>(other))),
1566
- prop_fns_(other.prop_fns_)
1567
- {
1568
- other.prop_fns_ = prop_fns_table<void>();
1569
- }
1570
-
1571
- any_executor& operator=(any_executor&& other) noexcept
1572
- {
1573
- if (this != &other)
1574
- {
1575
- prop_fns_ = other.prop_fns_;
1576
- detail::any_executor_base::operator=(
1577
- static_cast<detail::any_executor_base&&>(
1578
- static_cast<detail::any_executor_base&>(other)));
1579
- }
1580
- return *this;
1581
- }
1582
-
1583
- void swap(any_executor& other) noexcept
1584
- {
1585
- if (this != &other)
1586
- {
1587
- detail::any_executor_base::swap(
1588
- static_cast<detail::any_executor_base&>(other));
1589
- const prop_fns<any_executor>* tmp_prop_fns = other.prop_fns_;
1590
- other.prop_fns_ = prop_fns_;
1591
- prop_fns_ = tmp_prop_fns;
1592
- }
1593
- }
1594
-
1595
- using detail::any_executor_base::execute;
1596
- using detail::any_executor_base::target;
1597
- using detail::any_executor_base::target_type;
1598
- using detail::any_executor_base::operator unspecified_bool_type;
1599
- using detail::any_executor_base::operator!;
1600
-
1601
- bool equality_helper(const any_executor& other) const noexcept
1602
- {
1603
- return any_executor_base::equality_helper(other);
1604
- }
1605
-
1606
- template <typename AnyExecutor1, typename AnyExecutor2>
1607
- friend enable_if_t<
1608
- is_base_of<any_executor, AnyExecutor1>::value
1609
- || is_base_of<any_executor, AnyExecutor2>::value,
1610
- bool
1611
- > operator==(const AnyExecutor1& a,
1612
- const AnyExecutor2& b) noexcept
1613
- {
1614
- return static_cast<const any_executor&>(a).equality_helper(b);
1615
- }
1616
-
1617
- template <typename AnyExecutor>
1618
- friend enable_if_t<
1619
- is_same<AnyExecutor, any_executor>::value,
1620
- bool
1621
- > operator==(const AnyExecutor& a, nullptr_t) noexcept
1622
- {
1623
- return !a;
1624
- }
1625
-
1626
- template <typename AnyExecutor>
1627
- friend enable_if_t<
1628
- is_same<AnyExecutor, any_executor>::value,
1629
- bool
1630
- > operator==(nullptr_t, const AnyExecutor& b) noexcept
1631
- {
1632
- return !b;
1633
- }
1634
-
1635
- template <typename AnyExecutor1, typename AnyExecutor2>
1636
- friend enable_if_t<
1637
- is_base_of<any_executor, AnyExecutor1>::value
1638
- || is_base_of<any_executor, AnyExecutor2>::value,
1639
- bool
1640
- > operator!=(const AnyExecutor1& a,
1641
- const AnyExecutor2& b) noexcept
1642
- {
1643
- return !static_cast<const any_executor&>(a).equality_helper(b);
1644
- }
1645
-
1646
- template <typename AnyExecutor>
1647
- friend enable_if_t<
1648
- is_same<AnyExecutor, any_executor>::value,
1649
- bool
1650
- > operator!=(const AnyExecutor& a, nullptr_t) noexcept
1651
- {
1652
- return !!a;
1653
- }
1654
-
1655
- template <typename AnyExecutor>
1656
- friend enable_if_t<
1657
- is_same<AnyExecutor, any_executor>::value,
1658
- bool
1659
- > operator!=(nullptr_t, const AnyExecutor& b) noexcept
1660
- {
1661
- return !!b;
1662
- }
1663
-
1664
- template <typename T>
1665
- struct find_convertible_property :
1666
- detail::supportable_properties<
1667
- 0, void(SupportableProperties...)>::template
1668
- find_convertible_property<T> {};
1669
-
1670
- template <typename Property>
1671
- void query(const Property& p,
1672
- enable_if_t<
1673
- is_same<
1674
- typename find_convertible_property<Property>::query_result_type,
1675
- void
1676
- >::value
1677
- >* = 0) const
1678
- {
1679
- if (!target_)
1680
- {
1681
- bad_executor ex;
1682
- boost::asio::detail::throw_exception(ex);
1683
- }
1684
- typedef find_convertible_property<Property> found;
1685
- prop_fns_[found::index].query(0, object_fns_->target(*this),
1686
- &static_cast<const typename found::type&>(p));
1687
- }
1688
-
1689
- template <typename Property>
1690
- typename find_convertible_property<Property>::query_result_type
1691
- query(const Property& p,
1692
- enable_if_t<
1693
- !is_same<
1694
- typename find_convertible_property<Property>::query_result_type,
1695
- void
1696
- >::value
1697
- &&
1698
- is_reference<
1699
- typename find_convertible_property<Property>::query_result_type
1700
- >::value
1701
- >* = 0) const
1702
- {
1703
- if (!target_)
1704
- {
1705
- bad_executor ex;
1706
- boost::asio::detail::throw_exception(ex);
1707
- }
1708
- typedef find_convertible_property<Property> found;
1709
- remove_reference_t<typename found::query_result_type>* result = 0;
1710
- prop_fns_[found::index].query(&result, object_fns_->target(*this),
1711
- &static_cast<const typename found::type&>(p));
1712
- return *result;
1713
- }
1714
-
1715
- template <typename Property>
1716
- typename find_convertible_property<Property>::query_result_type
1717
- query(const Property& p,
1718
- enable_if_t<
1719
- !is_same<
1720
- typename find_convertible_property<Property>::query_result_type,
1721
- void
1722
- >::value
1723
- &&
1724
- is_scalar<
1725
- typename find_convertible_property<Property>::query_result_type
1726
- >::value
1727
- >* = 0) const
1728
- {
1729
- if (!target_)
1730
- {
1731
- bad_executor ex;
1732
- boost::asio::detail::throw_exception(ex);
1733
- }
1734
- typedef find_convertible_property<Property> found;
1735
- typename found::query_result_type result;
1736
- prop_fns_[found::index].query(&result, object_fns_->target(*this),
1737
- &static_cast<const typename found::type&>(p));
1738
- return result;
1739
- }
1740
-
1741
- template <typename Property>
1742
- typename find_convertible_property<Property>::query_result_type
1743
- query(const Property& p,
1744
- enable_if_t<
1745
- !is_same<
1746
- typename find_convertible_property<Property>::query_result_type,
1747
- void
1748
- >::value
1749
- &&
1750
- !is_reference<
1751
- typename find_convertible_property<Property>::query_result_type
1752
- >::value
1753
- &&
1754
- !is_scalar<
1755
- typename find_convertible_property<Property>::query_result_type
1756
- >::value
1757
- >* = 0) const
1758
- {
1759
- if (!target_)
1760
- {
1761
- bad_executor ex;
1762
- boost::asio::detail::throw_exception(ex);
1763
- }
1764
- typedef find_convertible_property<Property> found;
1765
- typename found::query_result_type* result;
1766
- prop_fns_[found::index].query(&result, object_fns_->target(*this),
1767
- &static_cast<const typename found::type&>(p));
1768
- return *boost::asio::detail::scoped_ptr<
1769
- typename found::query_result_type>(result);
1770
- }
1771
-
1772
- template <typename T>
1773
- struct find_convertible_requirable_property :
1774
- detail::supportable_properties<
1775
- 0, void(SupportableProperties...)>::template
1776
- find_convertible_requirable_property<T> {};
1777
-
1778
- template <typename Property>
1779
- any_executor require(const Property& p,
1780
- enable_if_t<
1781
- find_convertible_requirable_property<Property>::value
1782
- >* = 0) const
1783
- {
1784
- if (!target_)
1785
- {
1786
- bad_executor ex;
1787
- boost::asio::detail::throw_exception(ex);
1788
- }
1789
- typedef find_convertible_requirable_property<Property> found;
1790
- return prop_fns_[found::index].require(object_fns_->target(*this),
1791
- &static_cast<const typename found::type&>(p));
1792
- }
1793
-
1794
- template <typename T>
1795
- struct find_convertible_preferable_property :
1796
- detail::supportable_properties<
1797
- 0, void(SupportableProperties...)>::template
1798
- find_convertible_preferable_property<T> {};
1799
-
1800
- template <typename Property>
1801
- any_executor prefer(const Property& p,
1802
- enable_if_t<
1803
- find_convertible_preferable_property<Property>::value
1804
- >* = 0) const
1805
- {
1806
- if (!target_)
1807
- {
1808
- bad_executor ex;
1809
- boost::asio::detail::throw_exception(ex);
1810
- }
1811
- typedef find_convertible_preferable_property<Property> found;
1812
- return prop_fns_[found::index].prefer(object_fns_->target(*this),
1813
- &static_cast<const typename found::type&>(p));
1814
- }
1815
-
1816
- //private:
1817
- template <typename Ex>
1818
- static const prop_fns<any_executor>* prop_fns_table()
1819
- {
1820
- static const prop_fns<any_executor> fns[] =
1821
- {
1822
- {
1823
- &detail::any_executor_base::query_fn<
1824
- Ex, SupportableProperties>,
1825
- &detail::any_executor_base::require_fn<
1826
- any_executor, Ex, SupportableProperties>,
1827
- &detail::any_executor_base::prefer_fn<
1828
- any_executor, Ex, SupportableProperties>
1829
- }...
1830
- };
1831
- return fns;
1832
- }
1833
-
1834
- const prop_fns<any_executor>* prop_fns_;
1835
- };
1836
-
1837
- template <typename... SupportableProperties>
1838
- inline void swap(any_executor<SupportableProperties...>& a,
1839
- any_executor<SupportableProperties...>& b) noexcept
1840
- {
1841
- return a.swap(b);
1842
- }
1843
-
1844
- } // namespace execution
1845
- namespace traits {
1846
-
1847
- #if !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
1848
-
1849
- template <typename... SupportableProperties>
1850
- struct equality_comparable<execution::any_executor<SupportableProperties...>>
1851
- {
1852
- static constexpr bool is_valid = true;
1853
- static constexpr bool is_noexcept = true;
1854
- };
1855
-
1856
- #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT)
1857
-
1858
- #if !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
1859
-
1860
- template <typename F, typename... SupportableProperties>
1861
- struct execute_member<execution::any_executor<SupportableProperties...>, F>
1862
- {
1863
- static constexpr bool is_valid = true;
1864
- static constexpr bool is_noexcept = false;
1865
- typedef void result_type;
1866
- };
1867
-
1868
- #endif // !defined(BOOST_ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT)
1869
-
1870
- #if !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1871
-
1872
- template <typename Prop, typename... SupportableProperties>
1873
- struct query_member<
1874
- execution::any_executor<SupportableProperties...>, Prop,
1875
- enable_if_t<
1876
- execution::detail::supportable_properties<
1877
- 0, void(SupportableProperties...)>::template
1878
- find_convertible_property<Prop>::value
1879
- >>
1880
- {
1881
- static constexpr bool is_valid = true;
1882
- static constexpr bool is_noexcept = false;
1883
- typedef typename execution::detail::supportable_properties<
1884
- 0, void(SupportableProperties...)>::template
1885
- find_convertible_property<Prop>::query_result_type result_type;
1886
- };
1887
-
1888
- #endif // !defined(BOOST_ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT)
1889
-
1890
- #if !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1891
-
1892
- template <typename Prop, typename... SupportableProperties>
1893
- struct require_member<
1894
- execution::any_executor<SupportableProperties...>, Prop,
1895
- enable_if_t<
1896
- execution::detail::supportable_properties<
1897
- 0, void(SupportableProperties...)>::template
1898
- find_convertible_requirable_property<Prop>::value
1899
- >>
1900
- {
1901
- static constexpr bool is_valid = true;
1902
- static constexpr bool is_noexcept = false;
1903
- typedef execution::any_executor<SupportableProperties...> result_type;
1904
- };
1905
-
1906
- #endif // !defined(BOOST_ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT)
1907
-
1908
- #if !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
1909
-
1910
- template <typename Prop, typename... SupportableProperties>
1911
- struct prefer_member<
1912
- execution::any_executor<SupportableProperties...>, Prop,
1913
- enable_if_t<
1914
- execution::detail::supportable_properties<
1915
- 0, void(SupportableProperties...)>::template
1916
- find_convertible_preferable_property<Prop>::value
1917
- >>
1918
- {
1919
- static constexpr bool is_valid = true;
1920
- static constexpr bool is_noexcept = false;
1921
- typedef execution::any_executor<SupportableProperties...> result_type;
1922
- };
1923
-
1924
- #endif // !defined(BOOST_ASIO_HAS_DEDUCED_PREFER_FREE_TRAIT)
1925
-
1926
- } // namespace traits
1927
-
1928
- #endif // defined(GENERATING_DOCUMENTATION)
1929
-
1930
- } // namespace asio
1931
- } // namespace boost
1932
-
1933
- #include <boost/asio/detail/pop_options.hpp>
1934
-
1935
- #endif // BOOST_ASIO_EXECUTION_ANY_EXECUTOR_HPP