passenger 5.1.12 → 5.2.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of passenger might be problematic. Click here for more details.

Files changed (824) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +18 -1
  3. data/Rakefile +4 -1
  4. data/build/agent.rb +2 -2
  5. data/build/apache2.rb +17 -10
  6. data/build/basics.rb +18 -4
  7. data/build/common_library.rb +7 -3
  8. data/build/cxx_tests.rb +2 -7
  9. data/build/misc.rb +3 -1
  10. data/build/nginx.rb +11 -5
  11. data/build/oxt_tests.rb +0 -3
  12. data/build/packaging.rb +3 -2
  13. data/build/schema_printer.rb +103 -0
  14. data/build/support/cplusplus.rb +2 -2
  15. data/build/support/cxx_dependency_map.rb +2575 -868
  16. data/dev/ci/lib/functions.sh +1 -1
  17. data/dev/ci/lib/set-container-envvars.sh +1 -1
  18. data/dev/ci/lib/setup-container.sh +1 -1
  19. data/dev/ci/run-tests-natively +1 -1
  20. data/dev/ci/run-tests-with-docker +1 -1
  21. data/dev/ci/scripts/debug-console-wrapper.sh +1 -1
  22. data/dev/ci/scripts/docker-entrypoint-stage2.sh +1 -1
  23. data/dev/ci/scripts/docker-entrypoint.sh +1 -1
  24. data/dev/ci/scripts/inituidgid +1 -1
  25. data/dev/ci/scripts/run-tests-natively-stage2.sh +1 -1
  26. data/dev/ci/scripts/setup-host-natively.sh +1 -1
  27. data/dev/ci/setup-host +1 -1
  28. data/dev/ci/tests/apache2/run +1 -1
  29. data/dev/ci/tests/apache2/setup +1 -1
  30. data/dev/ci/tests/cxx/run +1 -1
  31. data/dev/ci/tests/cxx/setup +1 -1
  32. data/dev/ci/tests/debian/Jenkinsfile +0 -1
  33. data/dev/ci/tests/debian/run +1 -1
  34. data/dev/ci/tests/nginx-dynamic/run +1 -1
  35. data/dev/ci/tests/nginx-dynamic/setup +1 -1
  36. data/dev/ci/tests/nginx/run +1 -1
  37. data/dev/ci/tests/nginx/setup +1 -1
  38. data/dev/ci/tests/nodejs/run +1 -1
  39. data/dev/ci/tests/nodejs/setup +1 -1
  40. data/dev/ci/tests/rpm/run +1 -1
  41. data/dev/ci/tests/ruby/run +1 -1
  42. data/dev/ci/tests/ruby/setup +1 -1
  43. data/dev/ci/tests/source-packaging/run +1 -1
  44. data/dev/ci/tests/source-packaging/setup +1 -1
  45. data/dev/ci/tests/standalone/run +1 -1
  46. data/dev/ci/tests/standalone/setup +1 -1
  47. data/dev/configkit-schemas/index.json +1708 -0
  48. data/dev/configkit-schemas/update_schema_inline_comments.rb +118 -0
  49. data/dev/copy_boost_headers +13 -1
  50. data/dev/index_cxx_dependencies.rb +20 -7
  51. data/dev/vagrant/provision.sh +1 -1
  52. data/resources/mime.types +1 -0
  53. data/resources/templates/standalone/http.erb +1 -6
  54. data/src/agent/Core/AdminPanelConnector.h +550 -0
  55. data/src/agent/Core/ApiServer.h +159 -97
  56. data/src/agent/Core/ApplicationPool/Group.h +2 -0
  57. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
  58. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +109 -0
  59. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -3
  60. data/src/agent/Core/ApplicationPool/Options.h +5 -6
  61. data/src/agent/Core/ApplicationPool/Pool.h +59 -2
  62. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -3
  63. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
  64. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +6 -0
  65. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +129 -0
  66. data/src/agent/Core/Config.h +475 -0
  67. data/src/agent/Core/ConfigChange.cpp +349 -0
  68. data/src/agent/Core/ConfigChange.h +54 -0
  69. data/src/agent/Core/Controller.h +35 -3
  70. data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
  71. data/src/agent/Core/Controller/Config.cpp +0 -2
  72. data/src/agent/Core/Controller/Config.h +168 -104
  73. data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
  74. data/src/agent/Core/Controller/InitRequest.cpp +14 -15
  75. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +34 -44
  76. data/src/agent/Core/Controller/Request.h +0 -1
  77. data/src/agent/Core/CoreMain.cpp +236 -349
  78. data/src/agent/Core/OptionParser.h +75 -89
  79. data/src/agent/Core/SecurityUpdateChecker.h +263 -100
  80. data/src/agent/Core/SpawningKit/Config.h +6 -2
  81. data/src/agent/Core/SpawningKit/Spawner.h +0 -45
  82. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -0
  83. data/src/agent/Shared/ApiAccountUtils.h +318 -0
  84. data/src/agent/Shared/ApiServerUtils.h +3 -104
  85. data/src/agent/Shared/Fundamentals/Initialization.cpp +81 -44
  86. data/src/agent/Shared/Fundamentals/Initialization.h +12 -7
  87. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +21 -0
  88. data/src/agent/Watchdog/AgentWatcher.cpp +1 -1
  89. data/src/agent/Watchdog/ApiServer.h +100 -14
  90. data/src/agent/Watchdog/Config.h +340 -0
  91. data/src/agent/Watchdog/CoreWatcher.cpp +27 -13
  92. data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
  93. data/src/agent/Watchdog/WatchdogMain.cpp +190 -206
  94. data/src/apache2_module/Bucket.cpp +4 -0
  95. data/src/apache2_module/Bucket.h +7 -3
  96. data/src/apache2_module/CBindings.cpp +49 -0
  97. data/src/apache2_module/Config.cpp +242 -0
  98. data/src/apache2_module/Config.h +109 -0
  99. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +485 -0
  100. data/src/apache2_module/{ConfigurationCommands.cpp.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder} +29 -15
  101. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +298 -0
  102. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +171 -0
  103. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +854 -0
  104. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +188 -0
  105. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +610 -0
  106. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +65 -0
  107. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +174 -0
  108. data/src/apache2_module/{MergeDirConfig.cpp.cxxcodebuilder → DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder} +54 -32
  109. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +113 -0
  110. data/src/apache2_module/{SetHeaders.cpp.cxxcodebuilder → DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder} +34 -23
  111. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +426 -0
  112. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +165 -0
  113. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +269 -0
  114. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +148 -0
  115. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +534 -0
  116. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +230 -0
  117. data/src/apache2_module/DirectoryMapper.h +19 -16
  118. data/src/apache2_module/Hooks.cpp +124 -138
  119. data/src/apache2_module/Hooks.h +9 -14
  120. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +263 -0
  121. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +152 -0
  122. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +299 -0
  123. data/src/apache2_module/{ConfigurationFields.hpp.cxxcodebuilder → ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder} +105 -18
  124. data/src/apache2_module/Utils.h +215 -0
  125. data/src/apache2_module/mod_passenger.c +16 -8
  126. data/src/cxx_supportlib/AppTypes.h +2 -0
  127. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
  128. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +8 -8
  129. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +7 -41
  130. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +12 -66
  131. data/src/cxx_supportlib/ConfigKit/Schema.h +62 -11
  132. data/src/cxx_supportlib/ConfigKit/{ValidationUtils.h → SchemaUtils.h} +12 -3
  133. data/src/cxx_supportlib/ConfigKit/Store.h +17 -9
  134. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -1
  135. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +13 -70
  136. data/src/cxx_supportlib/ConfigKit/Translator.h +125 -0
  137. data/src/cxx_supportlib/Constants.h +1 -3
  138. data/src/cxx_supportlib/FileTools/FileManip.cpp +297 -0
  139. data/src/cxx_supportlib/FileTools/FileManip.h +162 -0
  140. data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.cpp +6 -3
  141. data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.h +7 -5
  142. data/src/cxx_supportlib/FileTools/PathManip.cpp +240 -0
  143. data/src/cxx_supportlib/FileTools/PathManip.h +91 -0
  144. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +62 -0
  145. data/src/{apache2_module/Configuration.h → cxx_supportlib/FileTools/PathManipCBindings.h} +12 -19
  146. data/src/cxx_supportlib/Hooks.h +19 -16
  147. data/src/cxx_supportlib/InstanceDirectory.h +11 -0
  148. data/src/cxx_supportlib/JsonTools/Autocast.h +79 -0
  149. data/src/cxx_supportlib/JsonTools/CBindings.cpp +364 -0
  150. data/src/cxx_supportlib/JsonTools/CBindings.h +101 -0
  151. data/src/cxx_supportlib/LoggingKit/Config.h +13 -0
  152. data/src/cxx_supportlib/LoggingKit/Context.h +5 -2
  153. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -1
  154. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +12 -4
  155. data/src/cxx_supportlib/ResourceLocator.h +15 -0
  156. data/src/cxx_supportlib/ServerKit/Config.h +156 -0
  157. data/src/cxx_supportlib/ServerKit/Context.h +59 -38
  158. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
  159. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -2
  160. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -2
  161. data/src/cxx_supportlib/ServerKit/Server.h +32 -15
  162. data/src/cxx_supportlib/Utils.cpp +0 -441
  163. data/src/cxx_supportlib/Utils.h +0 -158
  164. data/src/cxx_supportlib/Utils/Curl.h +1 -0
  165. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +1 -0
  166. data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +2 -0
  167. data/src/cxx_supportlib/Utils/VariantMap.h +31 -0
  168. data/src/cxx_supportlib/WatchdogLauncher.cpp +7 -79
  169. data/src/cxx_supportlib/WatchdogLauncher.h +50 -53
  170. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +981 -0
  171. data/src/cxx_supportlib/oxt/macros.hpp +9 -0
  172. data/src/cxx_supportlib/vendor-copy/websocketpp/COPYING +145 -0
  173. data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +342 -0
  174. data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +49 -0
  175. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/base64/base64.hpp +178 -0
  176. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/client.hpp +33 -0
  177. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +342 -0
  178. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +131 -0
  179. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio_ssl.hpp +39 -0
  180. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/chrono.hpp +68 -0
  181. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/connection_hdl.hpp +52 -0
  182. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/cpp11.hpp +162 -0
  183. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp +105 -0
  184. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/md5.hpp +448 -0
  185. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +89 -0
  186. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/network.hpp +106 -0
  187. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/platforms.hpp +46 -0
  188. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/random.hpp +82 -0
  189. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/regex.hpp +59 -0
  190. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/stdint.hpp +73 -0
  191. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/system_error.hpp +84 -0
  192. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +84 -0
  193. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/time.hpp +56 -0
  194. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/type_traits.hpp +65 -0
  195. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/basic.hpp +46 -0
  196. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/none.hpp +80 -0
  197. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio.hpp +77 -0
  198. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_client.hpp +77 -0
  199. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls.hpp +73 -0
  200. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls_client.hpp +73 -0
  201. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/boost_config.hpp +72 -0
  202. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +285 -0
  203. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core_client.hpp +294 -0
  204. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug.hpp +286 -0
  205. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio.hpp +77 -0
  206. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +73 -0
  207. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_client.hpp +72 -0
  208. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_server.hpp +312 -0
  209. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +1651 -0
  210. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection_base.hpp +38 -0
  211. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +700 -0
  212. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint_base.hpp +38 -0
  213. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/error.hpp +277 -0
  214. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/extension.hpp +102 -0
  215. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +128 -0
  216. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +752 -0
  217. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +861 -0
  218. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/constants.hpp +308 -0
  219. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +196 -0
  220. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/request.hpp +191 -0
  221. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/response.hpp +266 -0
  222. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +619 -0
  223. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/request.hpp +124 -0
  224. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/response.hpp +188 -0
  225. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +2372 -0
  226. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +269 -0
  227. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/utilities_impl.hpp +87 -0
  228. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/basic.hpp +199 -0
  229. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/levels.hpp +203 -0
  230. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/stub.hpp +119 -0
  231. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/syslog.hpp +146 -0
  232. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/alloc.hpp +105 -0
  233. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/message.hpp +340 -0
  234. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/pool.hpp +229 -0
  235. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +299 -0
  236. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi00.hpp +462 -0
  237. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi07.hpp +78 -0
  238. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi08.hpp +83 -0
  239. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +1056 -0
  240. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/processor.hpp +407 -0
  241. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/none.hpp +60 -0
  242. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/random_device.hpp +80 -0
  243. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +173 -0
  244. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +190 -0
  245. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/server.hpp +33 -0
  246. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -0
  247. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/base.hpp +232 -0
  248. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +1204 -0
  249. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +1147 -0
  250. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/base.hpp +159 -0
  251. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +370 -0
  252. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +484 -0
  253. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/connection.hpp +238 -0
  254. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +77 -0
  255. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/base.hpp +104 -0
  256. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +412 -0
  257. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +140 -0
  258. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/base.hpp +133 -0
  259. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +714 -0
  260. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +222 -0
  261. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/base.hpp +95 -0
  262. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +286 -0
  263. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/endpoint.hpp +140 -0
  264. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +355 -0
  265. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utf8_validator.hpp +154 -0
  266. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +182 -0
  267. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +61 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +121 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +96 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +951 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +520 -0
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +258 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +942 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +567 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +697 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +386 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +1519 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +1137 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +288 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +569 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +854 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +371 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +35 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +521 -0
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2241 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +246 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +27 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +260 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +27 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +238 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +27 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +483 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +220 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +825 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +330 -0
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +438 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +40 -0
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +173 -0
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +40 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +40 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +34 -0
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +32 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +47 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +70 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +491 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +68 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +385 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +128 -0
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +127 -0
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +192 -0
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +83 -0
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +1050 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +294 -0
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +48 -0
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +34 -0
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +229 -0
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +38 -0
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +119 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +121 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +121 -0
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +208 -0
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +244 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +50 -0
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +85 -0
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +41 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +82 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/function.hpp +40 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +91 -0
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +65 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +99 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +82 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +45 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +57 -0
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +161 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +480 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +333 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +120 -0
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +453 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +80 -0
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +432 -0
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +78 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +688 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +167 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +307 -0
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +82 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +498 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +126 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +49 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +48 -0
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +76 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +48 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +210 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +153 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +269 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +132 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +89 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +315 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +90 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +190 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +649 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +3470 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +178 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +120 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +178 -0
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +80 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.ipp +476 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +47 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +86 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +103 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +136 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +72 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +222 -0
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +26 -0
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +61 -0
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +63 -0
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +31 -0
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +50 -0
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +45 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +90 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +47 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +66 -0
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +69 -0
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +71 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +500 -0
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +62 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +63 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +70 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +148 -0
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +216 -0
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +158 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +40 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +91 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +131 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +128 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +120 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +78 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +87 -0
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +66 -0
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +107 -0
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +81 -0
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +166 -0
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +324 -0
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +90 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +236 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +138 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +108 -0
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +125 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +135 -0
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +127 -0
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +122 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +125 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +460 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +452 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +32 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +42 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +63 -0
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +170 -0
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +35 -0
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +123 -0
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +133 -0
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +131 -0
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +131 -0
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +103 -0
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +81 -0
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +48 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +221 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +146 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +40 -0
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +46 -0
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +84 -0
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +49 -0
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +51 -0
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +218 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +100 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +336 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +318 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +93 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +410 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +63 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +54 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +178 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +64 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +75 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +83 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +67 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +144 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service.hpp +203 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_operation.hpp +78 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_thread_info.hpp +42 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +58 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +93 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +55 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +53 -0
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +333 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +70 -0
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +95 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +68 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +35 -0
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +42 -0
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +71 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +60 -0
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +63 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +85 -0
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +47 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +40 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +230 -0
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +130 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +293 -0
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +345 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +195 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +125 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +135 -0
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +111 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +123 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +124 -0
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +129 -0
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +83 -0
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +56 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +87 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +114 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +65 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +360 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +340 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +432 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +130 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +79 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +156 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +157 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +755 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +812 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +1149 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +61 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +556 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +355 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +25 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +73 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +179 -0
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +767 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +827 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +772 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +202 -0
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +243 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +248 -0
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +265 -0
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +270 -0
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +96 -0
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +262 -0
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +246 -0
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +141 -0
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +206 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +571 -0
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +44 -0
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +117 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +55 -0
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +228 -0
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +55 -0
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +180 -0
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +55 -0
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +300 -0
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +57 -0
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +56 -0
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +193 -0
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +132 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +178 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +157 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +113 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +72 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +71 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +61 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +61 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +241 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +106 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +82 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +135 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +130 -0
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +92 -0
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +125 -0
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +492 -0
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +364 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +99 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +39 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +262 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +438 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +633 -0
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +666 -0
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +925 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +386 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +38 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +169 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +255 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +30 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +136 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +308 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +522 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +267 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +30 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +42 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +789 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +194 -0
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +42 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +112 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +166 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +70 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +327 -0
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +166 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +351 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +103 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +30 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +74 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +75 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +62 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +128 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +70 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +75 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +115 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +73 -0
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +1177 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +102 -0
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +168 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +28 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +436 -0
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +176 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +396 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +526 -0
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +573 -0
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +503 -0
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +186 -0
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +102 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +758 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +54 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +42 -0
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +75 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +65 -0
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +63 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +254 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +382 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +35 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +59 -0
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +88 -0
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +21 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +94 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +23 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +43 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +170 -0
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +283 -0
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +180 -0
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +378 -0
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +361 -0
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +40 -0
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +179 -0
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +118 -0
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +39 -0
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +222 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +39 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +220 -0
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +620 -0
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +672 -0
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +23 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/chrono.hpp +20 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono.hpp +15 -0
  622. data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono_io.hpp +34 -0
  623. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/chrono.hpp +46 -0
  624. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +242 -0
  625. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +356 -0
  626. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +92 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +121 -0
  628. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +354 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +92 -0
  630. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/process_cpu_clocks.hpp +46 -0
  631. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/thread_clock.hpp +46 -0
  632. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp +54 -0
  633. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +163 -0
  634. data/src/cxx_supportlib/vendor-modified/boost/chrono/floor.hpp +36 -0
  635. data/src/cxx_supportlib/vendor-modified/boost/chrono/include.hpp +23 -0
  636. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +593 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +295 -0
  638. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +317 -0
  639. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +35 -0
  640. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1003 -0
  641. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/ios_base_state.hpp +152 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_get.hpp +330 -0
  643. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1243 -0
  644. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_put.hpp +261 -0
  645. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +260 -0
  646. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +30 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +437 -0
  648. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/manip_base.hpp +101 -0
  649. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/to_string.hpp +50 -0
  650. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +637 -0
  651. data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +525 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/chrono/round.hpp +59 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/chrono/thread_clock.hpp +75 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/chrono/chrono.hpp +32 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/ratio.hpp +24 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
  657. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +16 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +460 -0
  659. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +112 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +126 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +51 -0
  662. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +15 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +18 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +19 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +250 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +121 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +91 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +283 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/random/bernoulli_distribution.hpp +197 -0
  670. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +184 -0
  671. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +434 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/random/cauchy_distribution.hpp +214 -0
  673. data/src/cxx_supportlib/vendor-modified/boost/random/chi_squared_distribution.hpp +209 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/random/detail/auto_link.hpp +40 -0
  675. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +18 -0
  676. data/src/cxx_supportlib/vendor-modified/boost/random/detail/const_mod.hpp +216 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/random/detail/disable_warnings.hpp +29 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/random/detail/enable_warnings.hpp +22 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_bits.hpp +36 -0
  680. data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_seed_seq.hpp +40 -0
  681. data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +121 -0
  682. data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +84 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/random/detail/iterator_mixin.hpp +45 -0
  684. data/src/cxx_supportlib/vendor-modified/boost/random/detail/large_arithmetic.hpp +122 -0
  685. data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +84 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/random/detail/polynomial.hpp +384 -0
  687. data/src/cxx_supportlib/vendor-modified/boost/random/detail/ptr_helper.hpp +67 -0
  688. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +115 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +398 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/random/detail/signed_unsigned_tools.hpp +89 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/random/detail/uniform_int_float.hpp +76 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +75 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +241 -0
  694. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +636 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/random/exponential_distribution.hpp +386 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/random/extreme_value_distribution.hpp +177 -0
  697. data/src/cxx_supportlib/vendor-modified/boost/random/fisher_f_distribution.hpp +183 -0
  698. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +292 -0
  699. data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +96 -0
  700. data/src/cxx_supportlib/vendor-modified/boost/random/geometric_distribution.hpp +267 -0
  701. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +883 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +271 -0
  703. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +267 -0
  704. data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +537 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/random/laplace_distribution.hpp +175 -0
  706. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +466 -0
  707. data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +217 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/random/lognormal_distribution.hpp +254 -0
  709. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +682 -0
  710. data/src/cxx_supportlib/vendor-modified/boost/random/negative_binomial_distribution.hpp +220 -0
  711. data/src/cxx_supportlib/vendor-modified/boost/random/non_central_chi_squared_distribution.hpp +221 -0
  712. data/src/cxx_supportlib/vendor-modified/boost/random/normal_distribution.hpp +374 -0
  713. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +466 -0
  714. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +531 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +360 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +143 -0
  717. data/src/cxx_supportlib/vendor-modified/boost/random/random_number_generator.hpp +73 -0
  718. data/src/cxx_supportlib/vendor-modified/boost/random/ranlux.hpp +99 -0
  719. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +118 -0
  720. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +269 -0
  721. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_output.hpp +51 -0
  722. data/src/cxx_supportlib/vendor-modified/boost/random/student_t_distribution.hpp +180 -0
  723. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +613 -0
  724. data/src/cxx_supportlib/vendor-modified/boost/random/taus88.hpp +45 -0
  725. data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +107 -0
  726. data/src/cxx_supportlib/vendor-modified/boost/random/triangle_distribution.hpp +232 -0
  727. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_01.hpp +257 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int.hpp +99 -0
  729. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +419 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +284 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real.hpp +82 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +241 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +307 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/random/variate_generator.hpp +122 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/random/weibull_distribution.hpp +177 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +208 -0
  737. data/src/cxx_supportlib/vendor-modified/boost/ratio.hpp +14 -0
  738. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +1342 -0
  739. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +16 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +30 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +22 -0
  742. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +19 -0
  743. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +30 -0
  744. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +30 -0
  745. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +30 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +30 -0
  747. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +30 -0
  748. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +30 -0
  749. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +30 -0
  750. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +30 -0
  751. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +30 -0
  752. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +30 -0
  753. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +30 -0
  754. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +31 -0
  755. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +30 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +25 -0
  757. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +15 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +30 -0
  759. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +30 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +1076 -0
  761. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1002 -0
  762. data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +11 -0
  763. data/src/helper-scripts/rack-preloader.rb +1 -1
  764. data/src/nginx_module/{ConfigurationCommands.c → ConfigGeneral/AutoGeneratedDefinitions.c} +351 -134
  765. data/src/nginx_module/{ConfigurationCommands.c.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder} +14 -25
  766. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +396 -0
  767. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +160 -0
  768. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +831 -0
  769. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +168 -0
  770. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +887 -0
  771. data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +100 -0
  772. data/src/nginx_module/Configuration.c +165 -621
  773. data/src/nginx_module/Configuration.h +43 -33
  774. data/src/nginx_module/ContentHandler.c +46 -40
  775. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +282 -0
  776. data/src/nginx_module/{CreateLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder} +43 -17
  777. data/src/nginx_module/{CacheLocationConfig.c → LocationConfig/AutoGeneratedHeaderSerialization.c} +148 -180
  778. data/src/nginx_module/{CacheLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder} +13 -11
  779. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +595 -0
  780. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +190 -0
  781. data/src/nginx_module/{MergeLocationConfig.c → LocationConfig/AutoGeneratedMergeFunction.c} +32 -42
  782. data/src/nginx_module/{MergeLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder} +18 -11
  783. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +220 -0
  784. data/src/nginx_module/{LocationConfig.h.cxxcodebuilder → LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder} +70 -48
  785. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +163 -0
  786. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +125 -0
  787. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +303 -0
  788. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +173 -0
  789. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +133 -0
  790. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +154 -0
  791. data/src/nginx_module/config +13 -4
  792. data/src/nginx_module/ngx_http_passenger_module.c +154 -84
  793. data/src/ruby_supportlib/phusion_passenger.rb +2 -2
  794. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +613 -131
  795. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +52 -0
  796. data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -4
  797. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -0
  798. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +104 -0
  799. data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -2
  800. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +470 -138
  801. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  802. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +17 -0
  803. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -1
  804. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +7 -7
  805. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +293 -0
  806. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -54
  807. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -5
  808. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -7
  809. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  810. data/src/schema_printer/SchemaPrinterMain.cpp +78 -0
  811. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +116 -0
  812. metadata +671 -30
  813. data/src/apache2_module/Configuration.cpp +0 -737
  814. data/src/apache2_module/Configuration.hpp +0 -274
  815. data/src/apache2_module/ConfigurationCommands.cpp +0 -199
  816. data/src/apache2_module/ConfigurationFields.hpp +0 -187
  817. data/src/apache2_module/ConfigurationSetters.cpp +0 -436
  818. data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +0 -144
  819. data/src/apache2_module/CreateDirConfig.cpp +0 -68
  820. data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +0 -81
  821. data/src/apache2_module/MergeDirConfig.cpp +0 -155
  822. data/src/apache2_module/SetHeaders.cpp +0 -111
  823. data/src/nginx_module/CreateLocationConfig.c +0 -100
  824. data/src/nginx_module/LocationConfig.h +0 -95
@@ -0,0 +1,1050 @@
1
+ //
2
+ // detail/config.hpp
3
+ // ~~~~~~~~~~~~~~~~~
4
+ //
5
+ // Copyright (c) 2003-2017 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_DETAIL_CONFIG_HPP
12
+ #define BOOST_ASIO_DETAIL_CONFIG_HPP
13
+
14
+ #if defined(BOOST_ASIO_STANDALONE)
15
+ # define BOOST_ASIO_DISABLE_BOOST_ARRAY 1
16
+ # define BOOST_ASIO_DISABLE_BOOST_ASSERT 1
17
+ # define BOOST_ASIO_DISABLE_BOOST_BIND 1
18
+ # define BOOST_ASIO_DISABLE_BOOST_CHRONO 1
19
+ # define BOOST_ASIO_DISABLE_BOOST_DATE_TIME 1
20
+ # define BOOST_ASIO_DISABLE_BOOST_LIMITS 1
21
+ # define BOOST_ASIO_DISABLE_BOOST_REGEX 1
22
+ # define BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT 1
23
+ # define BOOST_ASIO_DISABLE_BOOST_THROW_EXCEPTION 1
24
+ # define BOOST_ASIO_DISABLE_BOOST_WORKAROUND 1
25
+ #else // defined(BOOST_ASIO_STANDALONE)
26
+ # include <boost/config.hpp>
27
+ # include <boost/version.hpp>
28
+ # define BOOST_ASIO_HAS_BOOST_CONFIG 1
29
+ #endif // defined(BOOST_ASIO_STANDALONE)
30
+
31
+ // Default to a header-only implementation. The user must specifically request
32
+ // separate compilation by defining either BOOST_ASIO_SEPARATE_COMPILATION or
33
+ // BOOST_ASIO_DYN_LINK (as a DLL/shared library implies separate compilation).
34
+ #if !defined(BOOST_ASIO_HEADER_ONLY)
35
+ # if !defined(BOOST_ASIO_SEPARATE_COMPILATION)
36
+ # if !defined(BOOST_ASIO_DYN_LINK)
37
+ # define BOOST_ASIO_HEADER_ONLY 1
38
+ # endif // !defined(BOOST_ASIO_DYN_LINK)
39
+ # endif // !defined(BOOST_ASIO_SEPARATE_COMPILATION)
40
+ #endif // !defined(BOOST_ASIO_HEADER_ONLY)
41
+
42
+ #if defined(BOOST_ASIO_HEADER_ONLY)
43
+ # define BOOST_ASIO_DECL inline
44
+ #else // defined(BOOST_ASIO_HEADER_ONLY)
45
+ # if defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__)
46
+ // We need to import/export our code only if the user has specifically asked
47
+ // for it by defining BOOST_ASIO_DYN_LINK.
48
+ # if defined(BOOST_ASIO_DYN_LINK)
49
+ // Export if this is our own source, otherwise import.
50
+ # if defined(BOOST_ASIO_SOURCE)
51
+ # define BOOST_ASIO_DECL __declspec(dllexport)
52
+ # else // defined(BOOST_ASIO_SOURCE)
53
+ # define BOOST_ASIO_DECL __declspec(dllimport)
54
+ # endif // defined(BOOST_ASIO_SOURCE)
55
+ # endif // defined(BOOST_ASIO_DYN_LINK)
56
+ # endif // defined(_MSC_VER) || defined(__BORLANDC__) || defined(__CODEGEARC__)
57
+ #endif // defined(BOOST_ASIO_HEADER_ONLY)
58
+
59
+ // If BOOST_ASIO_DECL isn't defined yet define it now.
60
+ #if !defined(BOOST_ASIO_DECL)
61
+ # define BOOST_ASIO_DECL
62
+ #endif // !defined(BOOST_ASIO_DECL)
63
+
64
+ // Microsoft Visual C++ detection.
65
+ #if !defined(BOOST_ASIO_MSVC)
66
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC)
67
+ # define BOOST_ASIO_MSVC BOOST_MSVC
68
+ # elif defined(_MSC_VER) && !defined(__MWERKS__) && !defined(__EDG_VERSION__)
69
+ # define BOOST_ASIO_MSVC _MSC_VER
70
+ # endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_MSVC)
71
+ #endif // defined(BOOST_ASIO_MSVC)
72
+
73
+ // Clang / libc++ detection.
74
+ #if defined(__clang__)
75
+ # if (__cplusplus >= 201103)
76
+ # if __has_include(<__config>)
77
+ # include <__config>
78
+ # if defined(_LIBCPP_VERSION)
79
+ # define BOOST_ASIO_HAS_CLANG_LIBCXX 1
80
+ # endif // defined(_LIBCPP_VERSION)
81
+ # endif // __has_include(<__config>)
82
+ # endif // (__cplusplus >= 201103)
83
+ #endif // defined(__clang__)
84
+
85
+ // Support move construction and assignment on compilers known to allow it.
86
+ #if !defined(BOOST_ASIO_HAS_MOVE)
87
+ # if !defined(BOOST_ASIO_DISABLE_MOVE)
88
+ # if defined(__clang__)
89
+ # if __has_feature(__cxx_rvalue_references__)
90
+ # define BOOST_ASIO_HAS_MOVE 1
91
+ # endif // __has_feature(__cxx_rvalue_references__)
92
+ # endif // defined(__clang__)
93
+ # if defined(__GNUC__)
94
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
95
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
96
+ # define BOOST_ASIO_HAS_MOVE 1
97
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
98
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
99
+ # endif // defined(__GNUC__)
100
+ # if defined(BOOST_ASIO_MSVC)
101
+ # if (_MSC_VER >= 1700)
102
+ # define BOOST_ASIO_HAS_MOVE 1
103
+ # endif // (_MSC_VER >= 1700)
104
+ # endif // defined(BOOST_ASIO_MSVC)
105
+ # endif // !defined(BOOST_ASIO_DISABLE_MOVE)
106
+ #endif // !defined(BOOST_ASIO_HAS_MOVE)
107
+
108
+ // If BOOST_ASIO_MOVE_CAST isn't defined, and move support is available, define
109
+ // BOOST_ASIO_MOVE_ARG and BOOST_ASIO_MOVE_CAST to take advantage of rvalue
110
+ // references and perfect forwarding.
111
+ #if defined(BOOST_ASIO_HAS_MOVE) && !defined(BOOST_ASIO_MOVE_CAST)
112
+ # define BOOST_ASIO_MOVE_ARG(type) type&&
113
+ # define BOOST_ASIO_MOVE_CAST(type) static_cast<type&&>
114
+ # define BOOST_ASIO_MOVE_CAST2(type1, type2) static_cast<type1, type2&&>
115
+ #endif // defined(BOOST_ASIO_HAS_MOVE) && !defined(BOOST_ASIO_MOVE_CAST)
116
+
117
+ // If BOOST_ASIO_MOVE_CAST still isn't defined, default to a C++03-compatible
118
+ // implementation. Note that older g++ and MSVC versions don't like it when you
119
+ // pass a non-member function through a const reference, so for most compilers
120
+ // we'll play it safe and stick with the old approach of passing the handler by
121
+ // value.
122
+ #if !defined(BOOST_ASIO_MOVE_CAST)
123
+ # if defined(__GNUC__)
124
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4)
125
+ # define BOOST_ASIO_MOVE_ARG(type) const type&
126
+ # else // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4)
127
+ # define BOOST_ASIO_MOVE_ARG(type) type
128
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)) || (__GNUC__ > 4)
129
+ # elif defined(BOOST_ASIO_MSVC)
130
+ # if (_MSC_VER >= 1400)
131
+ # define BOOST_ASIO_MOVE_ARG(type) const type&
132
+ # else // (_MSC_VER >= 1400)
133
+ # define BOOST_ASIO_MOVE_ARG(type) type
134
+ # endif // (_MSC_VER >= 1400)
135
+ # else
136
+ # define BOOST_ASIO_MOVE_ARG(type) type
137
+ # endif
138
+ # define BOOST_ASIO_MOVE_CAST(type) static_cast<const type&>
139
+ # define BOOST_ASIO_MOVE_CAST2(type1, type2) static_cast<const type1, type2&>
140
+ #endif // !defined(BOOST_ASIO_MOVE_CAST)
141
+
142
+ // Support variadic templates on compilers known to allow it.
143
+ #if !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
144
+ # if !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES)
145
+ # if defined(__clang__)
146
+ # if __has_feature(__cxx_variadic_templates__)
147
+ # define BOOST_ASIO_HAS_VARIADIC_TEMPLATES 1
148
+ # endif // __has_feature(__cxx_variadic_templates__)
149
+ # endif // defined(__clang__)
150
+ # if defined(__GNUC__)
151
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
152
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
153
+ # define BOOST_ASIO_HAS_VARIADIC_TEMPLATES 1
154
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
155
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
156
+ # endif // defined(__GNUC__)
157
+ # endif // !defined(BOOST_ASIO_DISABLE_VARIADIC_TEMPLATES)
158
+ #endif // !defined(BOOST_ASIO_HAS_VARIADIC_TEMPLATES)
159
+
160
+ // Support constexpr on compilers known to allow it.
161
+ #if !defined(BOOST_ASIO_HAS_CONSTEXPR)
162
+ # if !defined(BOOST_ASIO_DISABLE_CONSTEXPR)
163
+ # if defined(__clang__)
164
+ # if __has_feature(__cxx_constexpr__)
165
+ # define BOOST_ASIO_HAS_CONSTEXPR 1
166
+ # endif // __has_feature(__cxx_constexr__)
167
+ # endif // defined(__clang__)
168
+ # if defined(__GNUC__)
169
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
170
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
171
+ # define BOOST_ASIO_HAS_CONSTEXPR 1
172
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
173
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
174
+ # endif // defined(__GNUC__)
175
+ # endif // !defined(BOOST_ASIO_DISABLE_CONSTEXPR)
176
+ #endif // !defined(BOOST_ASIO_HAS_CONSTEXPR)
177
+ #if !defined(BOOST_ASIO_CONSTEXPR)
178
+ # if defined(BOOST_ASIO_HAS_CONSTEXPR)
179
+ # define BOOST_ASIO_CONSTEXPR constexpr
180
+ # else // defined(BOOST_ASIO_HAS_CONSTEXPR)
181
+ # define BOOST_ASIO_CONSTEXPR
182
+ # endif // defined(BOOST_ASIO_HAS_CONSTEXPR)
183
+ #endif // !defined(BOOST_ASIO_CONSTEXPR)
184
+
185
+ // Standard library support for system errors.
186
+ # if !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR)
187
+ # if defined(__clang__)
188
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
189
+ # define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1
190
+ # elif (__cplusplus >= 201103)
191
+ # if __has_include(<system_error>)
192
+ # define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1
193
+ # endif // __has_include(<system_error>)
194
+ # endif // (__cplusplus >= 201103)
195
+ # endif // defined(__clang__)
196
+ # if defined(__GNUC__)
197
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
198
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
199
+ # define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1
200
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
201
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
202
+ # endif // defined(__GNUC__)
203
+ # if defined(BOOST_ASIO_MSVC)
204
+ # if (_MSC_VER >= 1700)
205
+ # define BOOST_ASIO_HAS_STD_SYSTEM_ERROR 1
206
+ # endif // (_MSC_VER >= 1700)
207
+ # endif // defined(BOOST_ASIO_MSVC)
208
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_SYSTEM_ERROR)
209
+
210
+ // Compliant C++11 compilers put noexcept specifiers on error_category members.
211
+ #if !defined(BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT)
212
+ # if (BOOST_VERSION >= 105300)
213
+ # define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT BOOST_NOEXCEPT
214
+ # elif defined(__clang__)
215
+ # if __has_feature(__cxx_noexcept__)
216
+ # define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true)
217
+ # endif // __has_feature(__cxx_noexcept__)
218
+ # elif defined(__GNUC__)
219
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
220
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
221
+ # define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true)
222
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
223
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
224
+ # elif defined(BOOST_ASIO_MSVC)
225
+ # if (_MSC_VER >= 1900)
226
+ # define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT noexcept(true)
227
+ # endif // (_MSC_VER >= 1900)
228
+ # endif // defined(BOOST_ASIO_MSVC)
229
+ # if !defined(BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT)
230
+ # define BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT
231
+ # endif // !defined(BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT)
232
+ #endif // !defined(BOOST_ASIO_ERROR_CATEGORY_NOEXCEPT)
233
+
234
+ // Standard library support for arrays.
235
+ #if !defined(BOOST_ASIO_HAS_STD_ARRAY)
236
+ # if !defined(BOOST_ASIO_DISABLE_STD_ARRAY)
237
+ # if defined(__clang__)
238
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
239
+ # define BOOST_ASIO_HAS_STD_ARRAY 1
240
+ # elif (__cplusplus >= 201103)
241
+ # if __has_include(<array>)
242
+ # define BOOST_ASIO_HAS_STD_ARRAY 1
243
+ # endif // __has_include(<array>)
244
+ # endif // (__cplusplus >= 201103)
245
+ # endif // defined(__clang__)
246
+ # if defined(__GNUC__)
247
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
248
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
249
+ # define BOOST_ASIO_HAS_STD_ARRAY 1
250
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
251
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
252
+ # endif // defined(__GNUC__)
253
+ # if defined(BOOST_ASIO_MSVC)
254
+ # if (_MSC_VER >= 1600)
255
+ # define BOOST_ASIO_HAS_STD_ARRAY 1
256
+ # endif // (_MSC_VER >= 1600)
257
+ # endif // defined(BOOST_ASIO_MSVC)
258
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_ARRAY)
259
+ #endif // !defined(BOOST_ASIO_HAS_STD_ARRAY)
260
+
261
+ // Standard library support for shared_ptr and weak_ptr.
262
+ #if !defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
263
+ # if !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR)
264
+ # if defined(__clang__)
265
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
266
+ # define BOOST_ASIO_HAS_STD_SHARED_PTR 1
267
+ # elif (__cplusplus >= 201103)
268
+ # define BOOST_ASIO_HAS_STD_SHARED_PTR 1
269
+ # endif // (__cplusplus >= 201103)
270
+ # endif // defined(__clang__)
271
+ # if defined(__GNUC__)
272
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
273
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
274
+ # define BOOST_ASIO_HAS_STD_SHARED_PTR 1
275
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
276
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 4)
277
+ # endif // defined(__GNUC__)
278
+ # if defined(BOOST_ASIO_MSVC)
279
+ # if (_MSC_VER >= 1600)
280
+ # define BOOST_ASIO_HAS_STD_SHARED_PTR 1
281
+ # endif // (_MSC_VER >= 1600)
282
+ # endif // defined(BOOST_ASIO_MSVC)
283
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_SHARED_PTR)
284
+ #endif // !defined(BOOST_ASIO_HAS_STD_SHARED_PTR)
285
+
286
+ // Standard library support for atomic operations.
287
+ #if !defined(BOOST_ASIO_HAS_STD_ATOMIC)
288
+ # if !defined(BOOST_ASIO_DISABLE_STD_ATOMIC)
289
+ # if defined(__clang__)
290
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
291
+ # define BOOST_ASIO_HAS_STD_ATOMIC 1
292
+ # elif (__cplusplus >= 201103)
293
+ # if __has_include(<atomic>)
294
+ # define BOOST_ASIO_HAS_STD_ATOMIC 1
295
+ # endif // __has_include(<atomic>)
296
+ # endif // (__cplusplus >= 201103)
297
+ # endif // defined(__clang__)
298
+ # if defined(__GNUC__)
299
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
300
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
301
+ # define BOOST_ASIO_HAS_STD_ATOMIC 1
302
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
303
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
304
+ # endif // defined(__GNUC__)
305
+ # if defined(BOOST_ASIO_MSVC)
306
+ # if (_MSC_VER >= 1700)
307
+ # define BOOST_ASIO_HAS_STD_ATOMIC 1
308
+ # endif // (_MSC_VER >= 1700)
309
+ # endif // defined(BOOST_ASIO_MSVC)
310
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_ATOMIC)
311
+ #endif // !defined(BOOST_ASIO_HAS_STD_ATOMIC)
312
+
313
+ // Standard library support for chrono. Some standard libraries (such as the
314
+ // libstdc++ shipped with gcc 4.6) provide monotonic_clock as per early C++0x
315
+ // drafts, rather than the eventually standardised name of steady_clock.
316
+ #if !defined(BOOST_ASIO_HAS_STD_CHRONO)
317
+ # if !defined(BOOST_ASIO_DISABLE_STD_CHRONO)
318
+ # if defined(__clang__)
319
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
320
+ # define BOOST_ASIO_HAS_STD_CHRONO 1
321
+ # elif (__cplusplus >= 201103)
322
+ # if __has_include(<chrono>)
323
+ # define BOOST_ASIO_HAS_STD_CHRONO 1
324
+ # endif // __has_include(<chrono>)
325
+ # endif // (__cplusplus >= 201103)
326
+ # endif // defined(__clang__)
327
+ # if defined(__GNUC__)
328
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
329
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
330
+ # define BOOST_ASIO_HAS_STD_CHRONO 1
331
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
332
+ # define BOOST_ASIO_HAS_STD_CHRONO_MONOTONIC_CLOCK 1
333
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ == 6))
334
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
335
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
336
+ # endif // defined(__GNUC__)
337
+ # if defined(BOOST_ASIO_MSVC)
338
+ # if (_MSC_VER >= 1700)
339
+ # define BOOST_ASIO_HAS_STD_CHRONO 1
340
+ # endif // (_MSC_VER >= 1700)
341
+ # endif // defined(BOOST_ASIO_MSVC)
342
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_CHRONO)
343
+ #endif // !defined(BOOST_ASIO_HAS_STD_CHRONO)
344
+
345
+ // Boost support for chrono.
346
+ #if !defined(BOOST_ASIO_HAS_BOOST_CHRONO)
347
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO)
348
+ # if (BOOST_VERSION >= 104700)
349
+ # define BOOST_ASIO_HAS_BOOST_CHRONO 1
350
+ # endif // (BOOST_VERSION >= 104700)
351
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_CHRONO)
352
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_CHRONO)
353
+
354
+ // Boost support for the DateTime library.
355
+ #if !defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
356
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_DATE_TIME)
357
+ # define BOOST_ASIO_HAS_BOOST_DATE_TIME 1
358
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_DATE_TIME)
359
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_DATE_TIME)
360
+
361
+ // Standard library support for addressof.
362
+ #if !defined(BOOST_ASIO_HAS_STD_ADDRESSOF)
363
+ # if !defined(BOOST_ASIO_DISABLE_STD_ADDRESSOF)
364
+ # if defined(__clang__)
365
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
366
+ # define BOOST_ASIO_HAS_STD_ADDRESSOF 1
367
+ # elif (__cplusplus >= 201103)
368
+ # define BOOST_ASIO_HAS_STD_ADDRESSOF 1
369
+ # endif // (__cplusplus >= 201103)
370
+ # endif // defined(__clang__)
371
+ # if defined(__GNUC__)
372
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
373
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
374
+ # define BOOST_ASIO_HAS_STD_ADDRESSOF 1
375
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
376
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
377
+ # endif // defined(__GNUC__)
378
+ # if defined(BOOST_ASIO_MSVC)
379
+ # if (_MSC_VER >= 1700)
380
+ # define BOOST_ASIO_HAS_STD_ADDRESSOF 1
381
+ # endif // (_MSC_VER >= 1700)
382
+ # endif // defined(BOOST_ASIO_MSVC)
383
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_ADDRESSOF)
384
+ #endif // !defined(BOOST_ASIO_HAS_STD_ADDRESSOF)
385
+
386
+ // Standard library support for the function class.
387
+ #if !defined(BOOST_ASIO_HAS_STD_FUNCTION)
388
+ # if !defined(BOOST_ASIO_DISABLE_STD_FUNCTION)
389
+ # if defined(__clang__)
390
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
391
+ # define BOOST_ASIO_HAS_STD_FUNCTION 1
392
+ # elif (__cplusplus >= 201103)
393
+ # define BOOST_ASIO_HAS_STD_FUNCTION 1
394
+ # endif // (__cplusplus >= 201103)
395
+ # endif // defined(__clang__)
396
+ # if defined(__GNUC__)
397
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
398
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
399
+ # define BOOST_ASIO_HAS_STD_FUNCTION 1
400
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
401
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
402
+ # endif // defined(__GNUC__)
403
+ # if defined(BOOST_ASIO_MSVC)
404
+ # if (_MSC_VER >= 1700)
405
+ # define BOOST_ASIO_HAS_STD_FUNCTION 1
406
+ # endif // (_MSC_VER >= 1700)
407
+ # endif // defined(BOOST_ASIO_MSVC)
408
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_FUNCTION)
409
+ #endif // !defined(BOOST_ASIO_HAS_STD_FUNCTION)
410
+
411
+ // Standard library support for type traits.
412
+ #if !defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS)
413
+ # if !defined(BOOST_ASIO_DISABLE_STD_TYPE_TRAITS)
414
+ # if defined(__clang__)
415
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
416
+ # define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1
417
+ # elif (__cplusplus >= 201103)
418
+ # if __has_include(<type_traits>)
419
+ # define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1
420
+ # endif // __has_include(<type_traits>)
421
+ # endif // (__cplusplus >= 201103)
422
+ # endif // defined(__clang__)
423
+ # if defined(__GNUC__)
424
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
425
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
426
+ # define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1
427
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
428
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
429
+ # endif // defined(__GNUC__)
430
+ # if defined(BOOST_ASIO_MSVC)
431
+ # if (_MSC_VER >= 1700)
432
+ # define BOOST_ASIO_HAS_STD_TYPE_TRAITS 1
433
+ # endif // (_MSC_VER >= 1700)
434
+ # endif // defined(BOOST_ASIO_MSVC)
435
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_TYPE_TRAITS)
436
+ #endif // !defined(BOOST_ASIO_HAS_STD_TYPE_TRAITS)
437
+
438
+ // Standard library support for the C++11 allocator additions.
439
+ #if !defined(BOOST_ASIO_HAS_CXX11_ALLOCATORS)
440
+ # if !defined(BOOST_ASIO_DISABLE_CXX11_ALLOCATORS)
441
+ # if defined(__clang__)
442
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
443
+ # define BOOST_ASIO_HAS_CXX11_ALLOCATORS 1
444
+ # elif (__cplusplus >= 201103)
445
+ # define BOOST_ASIO_HAS_CXX11_ALLOCATORS 1
446
+ # endif // (__cplusplus >= 201103)
447
+ # elif defined(__GNUC__)
448
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
449
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
450
+ # define BOOST_ASIO_HAS_CXX11_ALLOCATORS 1
451
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
452
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 6)) || (__GNUC__ > 4)
453
+ # endif // defined(__GNUC__)
454
+ # if defined(BOOST_ASIO_MSVC)
455
+ # if (_MSC_VER >= 1700)
456
+ # define BOOST_ASIO_HAS_CXX11_ALLOCATORS 1
457
+ # endif // (_MSC_VER >= 1700)
458
+ # endif // defined(BOOST_ASIO_MSVC)
459
+ # endif // !defined(BOOST_ASIO_DISABLE_CXX11_ALLOCATORS)
460
+ #endif // !defined(BOOST_ASIO_HAS_CXX11_ALLOCATORS)
461
+
462
+ // Standard library support for the cstdint header.
463
+ #if !defined(BOOST_ASIO_HAS_CSTDINT)
464
+ # if !defined(BOOST_ASIO_DISABLE_CSTDINT)
465
+ # if defined(__clang__)
466
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
467
+ # define BOOST_ASIO_HAS_CSTDINT 1
468
+ # elif (__cplusplus >= 201103)
469
+ # define BOOST_ASIO_HAS_CSTDINT 1
470
+ # endif // (__cplusplus >= 201103)
471
+ # endif // defined(__clang__)
472
+ # if defined(__GNUC__)
473
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
474
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
475
+ # define BOOST_ASIO_HAS_CSTDINT 1
476
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
477
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 5)) || (__GNUC__ > 4)
478
+ # endif // defined(__GNUC__)
479
+ # if defined(BOOST_ASIO_MSVC)
480
+ # if (_MSC_VER >= 1700)
481
+ # define BOOST_ASIO_HAS_CSTDINT 1
482
+ # endif // (_MSC_VER >= 1700)
483
+ # endif // defined(BOOST_ASIO_MSVC)
484
+ # endif // !defined(BOOST_ASIO_DISABLE_CSTDINT)
485
+ #endif // !defined(BOOST_ASIO_HAS_CSTDINT)
486
+
487
+ // Standard library support for the thread class.
488
+ #if !defined(BOOST_ASIO_HAS_STD_THREAD)
489
+ # if !defined(BOOST_ASIO_DISABLE_STD_THREAD)
490
+ # if defined(__clang__)
491
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
492
+ # define BOOST_ASIO_HAS_STD_THREAD 1
493
+ # elif (__cplusplus >= 201103)
494
+ # if __has_include(<thread>)
495
+ # define BOOST_ASIO_HAS_STD_THREAD 1
496
+ # endif // __has_include(<thread>)
497
+ # endif // (__cplusplus >= 201103)
498
+ # endif // defined(__clang__)
499
+ # if defined(__GNUC__)
500
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
501
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
502
+ # define BOOST_ASIO_HAS_STD_THREAD 1
503
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
504
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
505
+ # endif // defined(__GNUC__)
506
+ # if defined(BOOST_ASIO_MSVC)
507
+ # if (_MSC_VER >= 1700)
508
+ # define BOOST_ASIO_HAS_STD_THREAD 1
509
+ # endif // (_MSC_VER >= 1700)
510
+ # endif // defined(BOOST_ASIO_MSVC)
511
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_THREAD)
512
+ #endif // !defined(BOOST_ASIO_HAS_STD_THREAD)
513
+
514
+ // Standard library support for the mutex and condition variable classes.
515
+ #if !defined(BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR)
516
+ # if !defined(BOOST_ASIO_DISABLE_STD_MUTEX_AND_CONDVAR)
517
+ # if defined(__clang__)
518
+ # if defined(BOOST_ASIO_HAS_CLANG_LIBCXX)
519
+ # define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1
520
+ # elif (__cplusplus >= 201103)
521
+ # if __has_include(<mutex>)
522
+ # define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1
523
+ # endif // __has_include(<mutex>)
524
+ # endif // (__cplusplus >= 201103)
525
+ # endif // defined(__clang__)
526
+ # if defined(__GNUC__)
527
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
528
+ # if defined(__GXX_EXPERIMENTAL_CXX0X__)
529
+ # define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1
530
+ # endif // defined(__GXX_EXPERIMENTAL_CXX0X__)
531
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 7)) || (__GNUC__ > 4)
532
+ # endif // defined(__GNUC__)
533
+ # if defined(BOOST_ASIO_MSVC)
534
+ # if (_MSC_VER >= 1700)
535
+ # define BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR 1
536
+ # endif // (_MSC_VER >= 1700)
537
+ # endif // defined(BOOST_ASIO_MSVC)
538
+ # endif // !defined(BOOST_ASIO_DISABLE_STD_MUTEX_AND_CONDVAR)
539
+ #endif // !defined(BOOST_ASIO_HAS_STD_MUTEX_AND_CONDVAR)
540
+
541
+ // Windows App target. Windows but with a limited API.
542
+ #if !defined(BOOST_ASIO_WINDOWS_APP)
543
+ # if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603)
544
+ # include <winapifamily.h>
545
+ # if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) \
546
+ && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
547
+ # define BOOST_ASIO_WINDOWS_APP 1
548
+ # endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
549
+ // && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
550
+ # endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0603)
551
+ #endif // !defined(BOOST_ASIO_WINDOWS_APP)
552
+
553
+ // Legacy WinRT target. Windows App is preferred.
554
+ #if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
555
+ # if !defined(BOOST_ASIO_WINDOWS_APP)
556
+ # if defined(__cplusplus_winrt)
557
+ # include <winapifamily.h>
558
+ # if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) \
559
+ && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
560
+ # define BOOST_ASIO_WINDOWS_RUNTIME 1
561
+ # endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP)
562
+ // && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
563
+ # endif // defined(__cplusplus_winrt)
564
+ # endif // !defined(BOOST_ASIO_WINDOWS_APP)
565
+ #endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
566
+
567
+ // Windows target. Excludes WinRT but includes Windows App targets.
568
+ #if !defined(BOOST_ASIO_WINDOWS)
569
+ # if !defined(BOOST_ASIO_WINDOWS_RUNTIME)
570
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS)
571
+ # define BOOST_ASIO_WINDOWS 1
572
+ # elif defined(WIN32) || defined(_WIN32) || defined(__WIN32__)
573
+ # define BOOST_ASIO_WINDOWS 1
574
+ # elif defined(BOOST_ASIO_WINDOWS_APP)
575
+ # define BOOST_ASIO_WINDOWS 1
576
+ # endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_WINDOWS)
577
+ # endif // !defined(BOOST_ASIO_WINDOWS_RUNTIME)
578
+ #endif // !defined(BOOST_ASIO_WINDOWS)
579
+
580
+ // Windows: target OS version.
581
+ #if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
582
+ # if !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
583
+ # if defined(_MSC_VER) || defined(__BORLANDC__)
584
+ # pragma message( \
585
+ "Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately. For example:\n"\
586
+ "- add -D_WIN32_WINNT=0x0501 to the compiler command line; or\n"\
587
+ "- add _WIN32_WINNT=0x0501 to your project's Preprocessor Definitions.\n"\
588
+ "Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).")
589
+ # else // defined(_MSC_VER) || defined(__BORLANDC__)
590
+ # warning Please define _WIN32_WINNT or _WIN32_WINDOWS appropriately.
591
+ # warning For example, add -D_WIN32_WINNT=0x0501 to the compiler command line.
592
+ # warning Assuming _WIN32_WINNT=0x0501 (i.e. Windows XP target).
593
+ # endif // defined(_MSC_VER) || defined(__BORLANDC__)
594
+ # define _WIN32_WINNT 0x0501
595
+ # endif // !defined(_WIN32_WINNT) && !defined(_WIN32_WINDOWS)
596
+ # if defined(_MSC_VER)
597
+ # if defined(_WIN32) && !defined(WIN32)
598
+ # if !defined(_WINSOCK2API_)
599
+ # define WIN32 // Needed for correct types in winsock2.h
600
+ # else // !defined(_WINSOCK2API_)
601
+ # error Please define the macro WIN32 in your compiler options
602
+ # endif // !defined(_WINSOCK2API_)
603
+ # endif // defined(_WIN32) && !defined(WIN32)
604
+ # endif // defined(_MSC_VER)
605
+ # if defined(__BORLANDC__)
606
+ # if defined(__WIN32__) && !defined(WIN32)
607
+ # if !defined(_WINSOCK2API_)
608
+ # define WIN32 // Needed for correct types in winsock2.h
609
+ # else // !defined(_WINSOCK2API_)
610
+ # error Please define the macro WIN32 in your compiler options
611
+ # endif // !defined(_WINSOCK2API_)
612
+ # endif // defined(__WIN32__) && !defined(WIN32)
613
+ # endif // defined(__BORLANDC__)
614
+ # if defined(__CYGWIN__)
615
+ # if !defined(__USE_W32_SOCKETS)
616
+ # error You must add -D__USE_W32_SOCKETS to your compiler options.
617
+ # endif // !defined(__USE_W32_SOCKETS)
618
+ # endif // defined(__CYGWIN__)
619
+ #endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
620
+
621
+ // Windows: minimise header inclusion.
622
+ #if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
623
+ # if !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN)
624
+ # if !defined(WIN32_LEAN_AND_MEAN)
625
+ # define WIN32_LEAN_AND_MEAN
626
+ # endif // !defined(WIN32_LEAN_AND_MEAN)
627
+ # endif // !defined(BOOST_ASIO_NO_WIN32_LEAN_AND_MEAN)
628
+ #endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
629
+
630
+ // Windows: suppress definition of "min" and "max" macros.
631
+ #if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
632
+ # if !defined(BOOST_ASIO_NO_NOMINMAX)
633
+ # if !defined(NOMINMAX)
634
+ # define NOMINMAX 1
635
+ # endif // !defined(NOMINMAX)
636
+ # endif // !defined(BOOST_ASIO_NO_NOMINMAX)
637
+ #endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
638
+
639
+ // Windows: IO Completion Ports.
640
+ #if !defined(BOOST_ASIO_HAS_IOCP)
641
+ # if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
642
+ # if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400)
643
+ # if !defined(UNDER_CE) && !defined(BOOST_ASIO_WINDOWS_APP)
644
+ # if !defined(BOOST_ASIO_DISABLE_IOCP)
645
+ # define BOOST_ASIO_HAS_IOCP 1
646
+ # endif // !defined(BOOST_ASIO_DISABLE_IOCP)
647
+ # endif // !defined(UNDER_CE) && !defined(BOOST_ASIO_WINDOWS_APP)
648
+ # endif // defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0400)
649
+ # endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
650
+ #endif // !defined(BOOST_ASIO_HAS_IOCP)
651
+
652
+ // On POSIX (and POSIX-like) platforms we need to include unistd.h in order to
653
+ // get access to the various platform feature macros, e.g. to be able to test
654
+ // for threads support.
655
+ #if !defined(BOOST_ASIO_HAS_UNISTD_H)
656
+ # if !defined(BOOST_ASIO_HAS_BOOST_CONFIG)
657
+ # if defined(unix) \
658
+ || defined(__unix) \
659
+ || defined(_XOPEN_SOURCE) \
660
+ || defined(_POSIX_SOURCE) \
661
+ || (defined(__MACH__) && defined(__APPLE__)) \
662
+ || defined(__FreeBSD__) \
663
+ || defined(__NetBSD__) \
664
+ || defined(__OpenBSD__) \
665
+ || defined(__linux__)
666
+ # define BOOST_ASIO_HAS_UNISTD_H 1
667
+ # endif
668
+ # endif // !defined(BOOST_ASIO_HAS_BOOST_CONFIG)
669
+ #endif // !defined(BOOST_ASIO_HAS_UNISTD_H)
670
+ #if defined(BOOST_ASIO_HAS_UNISTD_H)
671
+ # include <unistd.h>
672
+ #endif // defined(BOOST_ASIO_HAS_UNISTD_H)
673
+
674
+ // Linux: epoll, eventfd and timerfd.
675
+ #if defined(__linux__)
676
+ # include <linux/version.h>
677
+ # if !defined(BOOST_ASIO_HAS_EPOLL)
678
+ # if !defined(BOOST_ASIO_DISABLE_EPOLL)
679
+ # if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45)
680
+ # define BOOST_ASIO_HAS_EPOLL 1
681
+ # endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,45)
682
+ # endif // !defined(BOOST_ASIO_DISABLE_EPOLL)
683
+ # endif // !defined(BOOST_ASIO_HAS_EPOLL)
684
+ # if !defined(BOOST_ASIO_HAS_EVENTFD)
685
+ # if !defined(BOOST_ASIO_DISABLE_EVENTFD)
686
+ # if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
687
+ # define BOOST_ASIO_HAS_EVENTFD 1
688
+ # endif // LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,22)
689
+ # endif // !defined(BOOST_ASIO_DISABLE_EVENTFD)
690
+ # endif // !defined(BOOST_ASIO_HAS_EVENTFD)
691
+ # if !defined(BOOST_ASIO_HAS_TIMERFD)
692
+ # if defined(BOOST_ASIO_HAS_EPOLL)
693
+ # if (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8)
694
+ # define BOOST_ASIO_HAS_TIMERFD 1
695
+ # endif // (__GLIBC__ > 2) || (__GLIBC__ == 2 && __GLIBC_MINOR__ >= 8)
696
+ # endif // defined(BOOST_ASIO_HAS_EPOLL)
697
+ # endif // !defined(BOOST_ASIO_HAS_TIMERFD)
698
+ #endif // defined(__linux__)
699
+
700
+ // Mac OS X, FreeBSD, NetBSD, OpenBSD: kqueue.
701
+ #if (defined(__MACH__) && defined(__APPLE__)) \
702
+ || defined(__FreeBSD__) \
703
+ || defined(__NetBSD__) \
704
+ || defined(__OpenBSD__)
705
+ # if !defined(BOOST_ASIO_HAS_KQUEUE)
706
+ # if !defined(BOOST_ASIO_DISABLE_KQUEUE)
707
+ # define BOOST_ASIO_HAS_KQUEUE 1
708
+ # endif // !defined(BOOST_ASIO_DISABLE_KQUEUE)
709
+ # endif // !defined(BOOST_ASIO_HAS_KQUEUE)
710
+ #endif // (defined(__MACH__) && defined(__APPLE__))
711
+ // || defined(__FreeBSD__)
712
+ // || defined(__NetBSD__)
713
+ // || defined(__OpenBSD__)
714
+
715
+ // Solaris: /dev/poll.
716
+ #if defined(__sun)
717
+ # if !defined(BOOST_ASIO_HAS_DEV_POLL)
718
+ # if !defined(BOOST_ASIO_DISABLE_DEV_POLL)
719
+ # define BOOST_ASIO_HAS_DEV_POLL 1
720
+ # endif // !defined(BOOST_ASIO_DISABLE_DEV_POLL)
721
+ # endif // !defined(BOOST_ASIO_HAS_DEV_POLL)
722
+ #endif // defined(__sun)
723
+
724
+ // Serial ports.
725
+ #if !defined(BOOST_ASIO_HAS_SERIAL_PORT)
726
+ # if defined(BOOST_ASIO_HAS_IOCP) \
727
+ || !defined(BOOST_ASIO_WINDOWS) \
728
+ && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
729
+ && !defined(__CYGWIN__)
730
+ # if !defined(__SYMBIAN32__)
731
+ # if !defined(BOOST_ASIO_DISABLE_SERIAL_PORT)
732
+ # define BOOST_ASIO_HAS_SERIAL_PORT 1
733
+ # endif // !defined(BOOST_ASIO_DISABLE_SERIAL_PORT)
734
+ # endif // !defined(__SYMBIAN32__)
735
+ # endif // defined(BOOST_ASIO_HAS_IOCP)
736
+ // || !defined(BOOST_ASIO_WINDOWS)
737
+ // && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
738
+ // && !defined(__CYGWIN__)
739
+ #endif // !defined(BOOST_ASIO_HAS_SERIAL_PORT)
740
+
741
+ // Windows: stream handles.
742
+ #if !defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE)
743
+ # if !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE)
744
+ # if defined(BOOST_ASIO_HAS_IOCP)
745
+ # define BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE 1
746
+ # endif // defined(BOOST_ASIO_HAS_IOCP)
747
+ # endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_STREAM_HANDLE)
748
+ #endif // !defined(BOOST_ASIO_HAS_WINDOWS_STREAM_HANDLE)
749
+
750
+ // Windows: random access handles.
751
+ #if !defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)
752
+ # if !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE)
753
+ # if defined(BOOST_ASIO_HAS_IOCP)
754
+ # define BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE 1
755
+ # endif // defined(BOOST_ASIO_HAS_IOCP)
756
+ # endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_RANDOM_ACCESS_HANDLE)
757
+ #endif // !defined(BOOST_ASIO_HAS_WINDOWS_RANDOM_ACCESS_HANDLE)
758
+
759
+ // Windows: object handles.
760
+ #if !defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE)
761
+ # if !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE)
762
+ # if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
763
+ # if !defined(UNDER_CE) && !defined(BOOST_ASIO_WINDOWS_APP)
764
+ # define BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE 1
765
+ # endif // !defined(UNDER_CE) && !defined(BOOST_ASIO_WINDOWS_APP)
766
+ # endif // defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
767
+ # endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OBJECT_HANDLE)
768
+ #endif // !defined(BOOST_ASIO_HAS_WINDOWS_OBJECT_HANDLE)
769
+
770
+ // Windows: OVERLAPPED wrapper.
771
+ #if !defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR)
772
+ # if !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR)
773
+ # if defined(BOOST_ASIO_HAS_IOCP)
774
+ # define BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR 1
775
+ # endif // defined(BOOST_ASIO_HAS_IOCP)
776
+ # endif // !defined(BOOST_ASIO_DISABLE_WINDOWS_OVERLAPPED_PTR)
777
+ #endif // !defined(BOOST_ASIO_HAS_WINDOWS_OVERLAPPED_PTR)
778
+
779
+ // POSIX: stream-oriented file descriptors.
780
+ #if !defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR)
781
+ # if !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR)
782
+ # if !defined(BOOST_ASIO_WINDOWS) \
783
+ && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
784
+ && !defined(__CYGWIN__)
785
+ # define BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR 1
786
+ # endif // !defined(BOOST_ASIO_WINDOWS)
787
+ // && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
788
+ // && !defined(__CYGWIN__)
789
+ # endif // !defined(BOOST_ASIO_DISABLE_POSIX_STREAM_DESCRIPTOR)
790
+ #endif // !defined(BOOST_ASIO_HAS_POSIX_STREAM_DESCRIPTOR)
791
+
792
+ // UNIX domain sockets.
793
+ #if !defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
794
+ # if !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS)
795
+ # if !defined(BOOST_ASIO_WINDOWS) \
796
+ && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
797
+ && !defined(__CYGWIN__)
798
+ # define BOOST_ASIO_HAS_LOCAL_SOCKETS 1
799
+ # endif // !defined(BOOST_ASIO_WINDOWS)
800
+ // && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
801
+ // && !defined(__CYGWIN__)
802
+ # endif // !defined(BOOST_ASIO_DISABLE_LOCAL_SOCKETS)
803
+ #endif // !defined(BOOST_ASIO_HAS_LOCAL_SOCKETS)
804
+
805
+ // Can use sigaction() instead of signal().
806
+ #if !defined(BOOST_ASIO_HAS_SIGACTION)
807
+ # if !defined(BOOST_ASIO_DISABLE_SIGACTION)
808
+ # if !defined(BOOST_ASIO_WINDOWS) \
809
+ && !defined(BOOST_ASIO_WINDOWS_RUNTIME) \
810
+ && !defined(__CYGWIN__)
811
+ # define BOOST_ASIO_HAS_SIGACTION 1
812
+ # endif // !defined(BOOST_ASIO_WINDOWS)
813
+ // && !defined(BOOST_ASIO_WINDOWS_RUNTIME)
814
+ // && !defined(__CYGWIN__)
815
+ # endif // !defined(BOOST_ASIO_DISABLE_SIGACTION)
816
+ #endif // !defined(BOOST_ASIO_HAS_SIGACTION)
817
+
818
+ // Can use signal().
819
+ #if !defined(BOOST_ASIO_HAS_SIGNAL)
820
+ # if !defined(BOOST_ASIO_DISABLE_SIGNAL)
821
+ # if !defined(UNDER_CE)
822
+ # define BOOST_ASIO_HAS_SIGNAL 1
823
+ # endif // !defined(UNDER_CE)
824
+ # endif // !defined(BOOST_ASIO_DISABLE_SIGNAL)
825
+ #endif // !defined(BOOST_ASIO_HAS_SIGNAL)
826
+
827
+ // Can use getaddrinfo() and getnameinfo().
828
+ #if !defined(BOOST_ASIO_HAS_GETADDRINFO)
829
+ # if !defined(BOOST_ASIO_DISABLE_GETADDRINFO)
830
+ # if defined(BOOST_ASIO_WINDOWS) || defined(__CYGWIN__)
831
+ # if defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501)
832
+ # define BOOST_ASIO_HAS_GETADDRINFO 1
833
+ # elif defined(UNDER_CE)
834
+ # define BOOST_ASIO_HAS_GETADDRINFO 1
835
+ # endif // defined(UNDER_CE)
836
+ # elif defined(__MACH__) && defined(__APPLE__)
837
+ # if defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
838
+ # if (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)
839
+ # define BOOST_ASIO_HAS_GETADDRINFO 1
840
+ # endif // (__MAC_OS_X_VERSION_MIN_REQUIRED >= 1050)
841
+ # else // defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
842
+ # define BOOST_ASIO_HAS_GETADDRINFO 1
843
+ # endif // defined(__MAC_OS_X_VERSION_MIN_REQUIRED)
844
+ # else // defined(__MACH__) && defined(__APPLE__)
845
+ # define BOOST_ASIO_HAS_GETADDRINFO 1
846
+ # endif // defined(__MACH__) && defined(__APPLE__)
847
+ # endif // !defined(BOOST_ASIO_DISABLE_GETADDRINFO)
848
+ #endif // !defined(BOOST_ASIO_HAS_GETADDRINFO)
849
+
850
+ // Whether standard iostreams are disabled.
851
+ #if !defined(BOOST_ASIO_NO_IOSTREAM)
852
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_IOSTREAM)
853
+ # define BOOST_ASIO_NO_IOSTREAM 1
854
+ # endif // !defined(BOOST_NO_IOSTREAM)
855
+ #endif // !defined(BOOST_ASIO_NO_IOSTREAM)
856
+
857
+ // Whether exception handling is disabled.
858
+ #if !defined(BOOST_ASIO_NO_EXCEPTIONS)
859
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_EXCEPTIONS)
860
+ # define BOOST_ASIO_NO_EXCEPTIONS 1
861
+ # endif // !defined(BOOST_NO_EXCEPTIONS)
862
+ #endif // !defined(BOOST_ASIO_NO_EXCEPTIONS)
863
+
864
+ // Whether the typeid operator is supported.
865
+ #if !defined(BOOST_ASIO_NO_TYPEID)
866
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_NO_TYPEID)
867
+ # define BOOST_ASIO_NO_TYPEID 1
868
+ # endif // !defined(BOOST_NO_TYPEID)
869
+ #endif // !defined(BOOST_ASIO_NO_TYPEID)
870
+
871
+ // Threads.
872
+ #if !defined(BOOST_ASIO_HAS_THREADS)
873
+ # if !defined(BOOST_ASIO_DISABLE_THREADS)
874
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS)
875
+ # define BOOST_ASIO_HAS_THREADS 1
876
+ # elif defined(_MSC_VER) && defined(_MT)
877
+ # define BOOST_ASIO_HAS_THREADS 1
878
+ # elif defined(__BORLANDC__) && defined(__MT__)
879
+ # define BOOST_ASIO_HAS_THREADS 1
880
+ # elif defined(_POSIX_THREADS)
881
+ # define BOOST_ASIO_HAS_THREADS 1
882
+ # endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_THREADS)
883
+ # endif // !defined(BOOST_ASIO_DISABLE_THREADS)
884
+ #endif // !defined(BOOST_ASIO_HAS_THREADS)
885
+
886
+ // POSIX threads.
887
+ #if !defined(BOOST_ASIO_HAS_PTHREADS)
888
+ # if defined(BOOST_ASIO_HAS_THREADS)
889
+ # if defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS)
890
+ # define BOOST_ASIO_HAS_PTHREADS 1
891
+ # elif defined(_POSIX_THREADS)
892
+ # define BOOST_ASIO_HAS_PTHREADS 1
893
+ # endif // defined(BOOST_ASIO_HAS_BOOST_CONFIG) && defined(BOOST_HAS_PTHREADS)
894
+ # endif // defined(BOOST_ASIO_HAS_THREADS)
895
+ #endif // !defined(BOOST_ASIO_HAS_PTHREADS)
896
+
897
+ // Helper to prevent macro expansion.
898
+ #define BOOST_ASIO_PREVENT_MACRO_SUBSTITUTION
899
+
900
+ // Helper to define in-class constants.
901
+ #if !defined(BOOST_ASIO_STATIC_CONSTANT)
902
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT)
903
+ # define BOOST_ASIO_STATIC_CONSTANT(type, assignment) \
904
+ BOOST_STATIC_CONSTANT(type, assignment)
905
+ # else // !defined(BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT)
906
+ # define BOOST_ASIO_STATIC_CONSTANT(type, assignment) \
907
+ static const type assignment
908
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_STATIC_CONSTANT)
909
+ #endif // !defined(BOOST_ASIO_STATIC_CONSTANT)
910
+
911
+ // Boost array library.
912
+ #if !defined(BOOST_ASIO_HAS_BOOST_ARRAY)
913
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_ARRAY)
914
+ # define BOOST_ASIO_HAS_BOOST_ARRAY 1
915
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_ARRAY)
916
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_ARRAY)
917
+
918
+ // Boost assert macro.
919
+ #if !defined(BOOST_ASIO_HAS_BOOST_ASSERT)
920
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_ASSERT)
921
+ # define BOOST_ASIO_HAS_BOOST_ASSERT 1
922
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_ASSERT)
923
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_ASSERT)
924
+
925
+ // Boost limits header.
926
+ #if !defined(BOOST_ASIO_HAS_BOOST_LIMITS)
927
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_LIMITS)
928
+ # define BOOST_ASIO_HAS_BOOST_LIMITS 1
929
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_LIMITS)
930
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_LIMITS)
931
+
932
+ // Boost throw_exception function.
933
+ #if !defined(BOOST_ASIO_HAS_BOOST_THROW_EXCEPTION)
934
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_THROW_EXCEPTION)
935
+ # define BOOST_ASIO_HAS_BOOST_THROW_EXCEPTION 1
936
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_THROW_EXCEPTION)
937
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_THROW_EXCEPTION)
938
+
939
+ // Boost regex library.
940
+ #if !defined(BOOST_ASIO_HAS_BOOST_REGEX)
941
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_REGEX)
942
+ # define BOOST_ASIO_HAS_BOOST_REGEX 1
943
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_REGEX)
944
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_REGEX)
945
+
946
+ // Boost bind function.
947
+ #if !defined(BOOST_ASIO_HAS_BOOST_BIND)
948
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_BIND)
949
+ # define BOOST_ASIO_HAS_BOOST_BIND 1
950
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_BIND)
951
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_BIND)
952
+
953
+ // Boost's BOOST_WORKAROUND macro.
954
+ #if !defined(BOOST_ASIO_HAS_BOOST_WORKAROUND)
955
+ # if !defined(BOOST_ASIO_DISABLE_BOOST_WORKAROUND)
956
+ # define BOOST_ASIO_HAS_BOOST_WORKAROUND 1
957
+ # endif // !defined(BOOST_ASIO_DISABLE_BOOST_WORKAROUND)
958
+ #endif // !defined(BOOST_ASIO_HAS_BOOST_WORKAROUND)
959
+
960
+ // Microsoft Visual C++'s secure C runtime library.
961
+ #if !defined(BOOST_ASIO_HAS_SECURE_RTL)
962
+ # if !defined(BOOST_ASIO_DISABLE_SECURE_RTL)
963
+ # if defined(BOOST_ASIO_MSVC) \
964
+ && (BOOST_ASIO_MSVC >= 1400) \
965
+ && !defined(UNDER_CE)
966
+ # define BOOST_ASIO_HAS_SECURE_RTL 1
967
+ # endif // defined(BOOST_ASIO_MSVC)
968
+ // && (BOOST_ASIO_MSVC >= 1400)
969
+ // && !defined(UNDER_CE)
970
+ # endif // !defined(BOOST_ASIO_DISABLE_SECURE_RTL)
971
+ #endif // !defined(BOOST_ASIO_HAS_SECURE_RTL)
972
+
973
+ // Handler hooking. Disabled for ancient Borland C++ and gcc compilers.
974
+ #if !defined(BOOST_ASIO_HAS_HANDLER_HOOKS)
975
+ # if !defined(BOOST_ASIO_DISABLE_HANDLER_HOOKS)
976
+ # if defined(__GNUC__)
977
+ # if (__GNUC__ >= 3)
978
+ # define BOOST_ASIO_HAS_HANDLER_HOOKS 1
979
+ # endif // (__GNUC__ >= 3)
980
+ # elif !defined(__BORLANDC__)
981
+ # define BOOST_ASIO_HAS_HANDLER_HOOKS 1
982
+ # endif // !defined(__BORLANDC__)
983
+ # endif // !defined(BOOST_ASIO_DISABLE_HANDLER_HOOKS)
984
+ #endif // !defined(BOOST_ASIO_HAS_HANDLER_HOOKS)
985
+
986
+ // Support for the __thread keyword extension.
987
+ #if !defined(BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION)
988
+ # if defined(__linux__)
989
+ # if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
990
+ # if ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)
991
+ # if !defined(__INTEL_COMPILER) && !defined(__ICL)
992
+ # define BOOST_ASIO_HAS_THREAD_KEYWORD_EXTENSION 1
993
+ # define BOOST_ASIO_THREAD_KEYWORD __thread
994
+ # elif defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100)
995
+ # define BOOST_ASIO_HAS_THREAD_KEYWORD_EXTENSION 1
996
+ # endif // defined(__INTEL_COMPILER) && (__INTEL_COMPILER >= 1100)
997
+ # endif // ((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)
998
+ # endif // defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
999
+ # endif // defined(__linux__)
1000
+ # if defined(BOOST_ASIO_MSVC) && defined(BOOST_ASIO_WINDOWS_RUNTIME)
1001
+ # if (_MSC_VER >= 1700)
1002
+ # define BOOST_ASIO_HAS_THREAD_KEYWORD_EXTENSION 1
1003
+ # define BOOST_ASIO_THREAD_KEYWORD __declspec(thread)
1004
+ # endif // (_MSC_VER >= 1700)
1005
+ # endif // defined(BOOST_ASIO_MSVC) && defined(BOOST_ASIO_WINDOWS_RUNTIME)
1006
+ #endif // !defined(BOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION)
1007
+ #if !defined(BOOST_ASIO_THREAD_KEYWORD)
1008
+ # define BOOST_ASIO_THREAD_KEYWORD __thread
1009
+ #endif // !defined(BOOST_ASIO_THREAD_KEYWORD)
1010
+
1011
+ // Support for POSIX ssize_t typedef.
1012
+ #if !defined(BOOST_ASIO_DISABLE_SSIZE_T)
1013
+ # if defined(__linux__) \
1014
+ || (defined(__MACH__) && defined(__APPLE__))
1015
+ # define BOOST_ASIO_HAS_SSIZE_T 1
1016
+ # endif // defined(__linux__)
1017
+ // || (defined(__MACH__) && defined(__APPLE__))
1018
+ #endif // !defined(BOOST_ASIO_DISABLE_SSIZE_T)
1019
+
1020
+ // Newer gcc, clang need special treatment to suppress unused typedef warnings.
1021
+ #if defined(__clang__)
1022
+ # if defined(__apple_build_version__)
1023
+ # if (__clang_major__ >= 7)
1024
+ # define BOOST_ASIO_UNUSED_TYPEDEF __attribute__((__unused__))
1025
+ # endif // (__clang_major__ >= 7)
1026
+ # elif ((__clang_major__ == 3) && (__clang_minor__ >= 6)) \
1027
+ || (__clang_major__ > 3)
1028
+ # define BOOST_ASIO_UNUSED_TYPEDEF __attribute__((__unused__))
1029
+ # endif // ((__clang_major__ == 3) && (__clang_minor__ >= 6))
1030
+ // || (__clang_major__ > 3)
1031
+ #elif defined(__GNUC__)
1032
+ # if ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
1033
+ # define BOOST_ASIO_UNUSED_TYPEDEF __attribute__((__unused__))
1034
+ # endif // ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 8)) || (__GNUC__ > 4)
1035
+ #endif // defined(__GNUC__)
1036
+ #if !defined(BOOST_ASIO_UNUSED_TYPEDEF)
1037
+ # define BOOST_ASIO_UNUSED_TYPEDEF
1038
+ #endif // !defined(BOOST_ASIO_UNUSED_TYPEDEF)
1039
+
1040
+ // Some versions of gcc generate spurious warnings about unused variables.
1041
+ #if defined(__GNUC__)
1042
+ # if (__GNUC__ >= 4)
1043
+ # define BOOST_ASIO_UNUSED_VARIABLE __attribute__((__unused__))
1044
+ # endif // (__GNUC__ >= 4)
1045
+ #endif // defined(__GNUC__)
1046
+ #if !defined(BOOST_ASIO_UNUSED_VARIABLE)
1047
+ # define BOOST_ASIO_UNUSED_VARIABLE
1048
+ #endif // !defined(BOOST_ASIO_UNUSED_VARIABLE)
1049
+
1050
+ #endif // BOOST_ASIO_DETAIL_CONFIG_HPP