passenger 6.0.14 → 6.0.27

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1978) hide show
  1. checksums.yaml +5 -5
  2. data/CHANGELOG +380 -85
  3. data/CONTRIBUTING.md +2 -2
  4. data/CONTRIBUTORS +8 -0
  5. data/LICENSE +1 -1
  6. data/README.md +3 -3
  7. data/Rakefile +15 -4
  8. data/bin/passenger +2 -2
  9. data/bin/passenger-config +2 -2
  10. data/bin/passenger-install-apache2-module +7 -2
  11. data/bin/passenger-install-nginx-module +24 -8
  12. data/bin/passenger-memory-stats +2 -2
  13. data/bin/passenger-status +2 -2
  14. data/build/agent.rb +2 -4
  15. data/build/apache2.rb +3 -3
  16. data/build/basics.rb +14 -6
  17. data/build/common_library.rb +3 -8
  18. data/build/cxx_tests.rb +20 -9
  19. data/build/integration_tests.rb +10 -9
  20. data/build/misc.rb +2 -4
  21. data/build/nginx.rb +2 -2
  22. data/build/node_tests.rb +2 -2
  23. data/build/oxt_tests.rb +2 -2
  24. data/build/packaging.rb +2 -2
  25. data/build/ruby_extension.rb +2 -2
  26. data/build/ruby_tests.rb +3 -3
  27. data/build/schema_printer.rb +2 -4
  28. data/build/support/cplusplus.rb +2 -2
  29. data/build/support/cxx_dependency_map.rb +249 -311
  30. data/build/support/general.rb +2 -2
  31. data/build/support/vendor/cxx_hinted_parser/LICENSE.md +1 -1
  32. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser/parser.rb +2 -2
  33. data/build/support/vendor/cxx_hinted_parser/lib/cxx_hinted_parser.rb +2 -2
  34. data/build/support/vendor/cxxcodebuilder/LICENSE.md +1 -1
  35. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/builder.rb +2 -2
  36. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder/initializer_builder.rb +2 -2
  37. data/build/support/vendor/cxxcodebuilder/lib/cxxcodebuilder.rb +2 -2
  38. data/build/test_basics.rb +27 -13
  39. data/dev/copy_boost_headers +96 -77
  40. data/dev/index_cxx_dependencies.rb +1 -1
  41. data/dev/nginx_version_sha256 +72 -0
  42. data/doc/AiInstructions.md +112 -0
  43. data/doc/CxxMockingStrategy.md +42 -0
  44. data/doc/CxxTestingGuide.md +110 -0
  45. data/doc/DesignAspects/LimitedGemDependencies.md +47 -0
  46. data/doc/DesignAspects/NoGemActivationDuringRubyLoaderInitialization.md +27 -0
  47. data/doc/TempFileHandling.md +15 -0
  48. data/package.json +15 -15
  49. data/passenger.gemspec +8 -2
  50. data/resources/templates/apache2/deployment_example.txt.erb +1 -1
  51. data/resources/templates/nginx/deployment_example.txt.erb +1 -1
  52. data/resources/templates/standalone/http.erb +1 -0
  53. data/resources/templates/standalone/server.erb +2 -0
  54. data/src/agent/AgentMain.cpp +4 -10
  55. data/src/agent/Core/ApiServer.h +3 -4
  56. data/src/agent/Core/ApplicationPool/AbstractSession.h +12 -3
  57. data/src/agent/Core/ApplicationPool/BasicGroupInfo.h +2 -2
  58. data/src/agent/Core/ApplicationPool/BasicProcessInfo.h +2 -2
  59. data/src/agent/Core/ApplicationPool/Common.h +2 -2
  60. data/src/agent/Core/ApplicationPool/Context.h +7 -4
  61. data/src/agent/Core/ApplicationPool/Group/InitializationAndShutdown.cpp +10 -2
  62. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +12 -4
  63. data/src/agent/Core/ApplicationPool/Group/LifetimeAndBasics.cpp +10 -2
  64. data/src/agent/Core/ApplicationPool/Group/Miscellaneous.cpp +11 -2
  65. data/src/agent/Core/ApplicationPool/Group/OutOfBandWork.cpp +11 -2
  66. data/src/agent/Core/ApplicationPool/Group/ProcessListManagement.cpp +85 -5
  67. data/src/agent/Core/ApplicationPool/Group/SessionManagement.cpp +66 -21
  68. data/src/agent/Core/ApplicationPool/Group/SpawningAndRestarting.cpp +10 -2
  69. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +11 -3
  70. data/src/agent/Core/ApplicationPool/Group/Verification.cpp +10 -2
  71. data/src/agent/Core/ApplicationPool/Group.h +18 -8
  72. data/src/agent/Core/ApplicationPool/Implementation.cpp +2 -5
  73. data/src/agent/Core/ApplicationPool/Options.h +3 -4
  74. data/src/agent/Core/ApplicationPool/Pool/AnalyticsCollection.cpp +7 -2
  75. data/src/agent/Core/ApplicationPool/Pool/GarbageCollection.cpp +7 -2
  76. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +7 -2
  77. data/src/agent/Core/ApplicationPool/Pool/GroupUtils.cpp +7 -2
  78. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +7 -2
  79. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +7 -2
  80. data/src/agent/Core/ApplicationPool/Pool/ProcessUtils.cpp +7 -2
  81. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +17 -3
  82. data/src/agent/Core/ApplicationPool/Pool.h +2 -4
  83. data/src/agent/Core/ApplicationPool/Process.cpp +2 -2
  84. data/src/agent/Core/ApplicationPool/Process.h +24 -8
  85. data/src/agent/Core/ApplicationPool/Session.h +22 -22
  86. data/src/agent/Core/ApplicationPool/Socket.h +17 -7
  87. data/src/agent/Core/ApplicationPool/TestSession.h +76 -17
  88. data/src/agent/Core/Config.h +17 -40
  89. data/src/agent/Core/ConfigChange.cpp +3 -43
  90. data/src/agent/Core/ConfigChange.h +2 -2
  91. data/src/agent/Core/Controller/AppResponse.h +2 -3
  92. data/src/agent/Core/Controller/BufferBody.cpp +2 -2
  93. data/src/agent/Core/Controller/CheckoutSession.cpp +125 -16
  94. data/src/agent/Core/Controller/Client.h +2 -3
  95. data/src/agent/Core/Controller/Config.cpp +2 -2
  96. data/src/agent/Core/Controller/Config.h +14 -5
  97. data/src/agent/Core/Controller/ForwardResponse.cpp +2 -2
  98. data/src/agent/Core/Controller/Hooks.cpp +15 -2
  99. data/src/agent/Core/Controller/Implementation.cpp +2 -2
  100. data/src/agent/Core/Controller/InitRequest.cpp +4 -3
  101. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +2 -2
  102. data/src/agent/Core/Controller/InternalUtils.cpp +14 -2
  103. data/src/agent/Core/Controller/Miscellaneous.cpp +2 -2
  104. data/src/agent/Core/Controller/Request.h +5 -4
  105. data/src/agent/Core/Controller/SendRequest.cpp +4 -4
  106. data/src/agent/Core/Controller/StateInspection.cpp +2 -2
  107. data/src/agent/Core/Controller/TurboCaching.h +2 -2
  108. data/src/agent/Core/Controller.h +15 -15
  109. data/src/agent/Core/CoreMain.cpp +14 -75
  110. data/src/agent/Core/OptionParser.h +11 -9
  111. data/src/agent/Core/ResponseCache.h +5 -4
  112. data/src/agent/Core/SecurityUpdateChecker.h +7 -8
  113. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h +2 -2
  114. data/src/agent/Core/SpawningKit/Config/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  115. data/src/agent/Core/SpawningKit/Config.h +2 -2
  116. data/src/agent/Core/SpawningKit/Context.h +2 -2
  117. data/src/agent/Core/SpawningKit/DirectSpawner.h +2 -2
  118. data/src/agent/Core/SpawningKit/DummySpawner.h +2 -2
  119. data/src/agent/Core/SpawningKit/ErrorRenderer.h +7 -2
  120. data/src/agent/Core/SpawningKit/Exceptions.h +2 -2
  121. data/src/agent/Core/SpawningKit/Factory.h +2 -2
  122. data/src/agent/Core/SpawningKit/Handshake/BackgroundIOCapturer.h +2 -2
  123. data/src/agent/Core/SpawningKit/Handshake/Perform.h +6 -6
  124. data/src/agent/Core/SpawningKit/Handshake/Prepare.h +3 -55
  125. data/src/agent/Core/SpawningKit/Handshake/Session.h +5 -2
  126. data/src/agent/Core/SpawningKit/Handshake/WorkDir.h +7 -4
  127. data/src/agent/Core/SpawningKit/Journey.h +2 -2
  128. data/src/agent/Core/SpawningKit/PipeWatcher.h +20 -5
  129. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h +2 -2
  130. data/src/agent/Core/SpawningKit/Result/AutoGeneratedCode.h.cxxcodebuilder +2 -2
  131. data/src/agent/Core/SpawningKit/Result.h +2 -2
  132. data/src/agent/Core/SpawningKit/SmartSpawner.h +8 -4
  133. data/src/agent/Core/SpawningKit/Spawner.h +6 -2
  134. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +4 -4
  135. data/src/agent/Core/TelemetryCollector.h +2 -2
  136. data/src/agent/ExecHelper/ExecHelperMain.cpp +12 -14
  137. data/src/agent/FileReadHelper/FileReadHelperMain.cpp +9 -12
  138. data/src/{cxx_supportlib/FileTools/LargeFiles.h → agent/MainFunctions.h} +12 -17
  139. data/src/agent/Shared/ApiAccountUtils.h +2 -2
  140. data/src/agent/Shared/ApiServerUtils.h +5 -4
  141. data/src/agent/Shared/ApplicationPoolApiKey.h +2 -2
  142. data/src/agent/Shared/Fundamentals/AbortHandler.cpp +90 -11
  143. data/src/agent/Shared/Fundamentals/AbortHandler.h +4 -2
  144. data/src/agent/Shared/Fundamentals/Initialization.cpp +12 -6
  145. data/src/agent/Shared/Fundamentals/Initialization.h +5 -5
  146. data/src/agent/Shared/Fundamentals/Utils.cpp +2 -2
  147. data/src/agent/Shared/Fundamentals/Utils.h +2 -2
  148. data/src/agent/SpawnEnvSetupper/SpawnEnvSetupperMain.cpp +33 -13
  149. data/src/agent/SystemMetrics/SystemMetricsMain.cpp +3 -2
  150. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +8 -6
  151. data/src/agent/Watchdog/AgentWatcher.cpp +2 -2
  152. data/src/agent/Watchdog/ApiServer.h +3 -3
  153. data/src/agent/Watchdog/Config.h +6 -23
  154. data/src/agent/Watchdog/CoreWatcher.cpp +2 -2
  155. data/src/agent/Watchdog/InstanceDirToucher.cpp +2 -2
  156. data/src/agent/Watchdog/WatchdogMain.cpp +15 -23
  157. data/src/apache2_module/Bucket.cpp +2 -2
  158. data/src/apache2_module/Bucket.h +2 -2
  159. data/src/apache2_module/CBindings.cpp +2 -2
  160. data/src/apache2_module/Config.cpp +2 -2
  161. data/src/apache2_module/Config.h +2 -2
  162. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +12 -22
  163. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder +2 -2
  164. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +7 -2
  165. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +2 -2
  166. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +32 -62
  167. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +2 -2
  168. data/src/apache2_module/ConfigGeneral/Common.h +2 -2
  169. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +7 -5
  170. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +2 -2
  171. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +7 -2
  172. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder +2 -2
  173. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +5 -2
  174. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder +2 -2
  175. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +15 -2
  176. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  177. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +9 -2
  178. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +2 -2
  179. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +18 -2
  180. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +5 -2
  181. data/src/apache2_module/DirectoryMapper.h +2 -2
  182. data/src/apache2_module/Hooks.cpp +29 -7
  183. data/src/apache2_module/Hooks.h +2 -2
  184. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +11 -46
  185. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +2 -2
  186. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +15 -55
  187. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder +4 -3
  188. data/src/apache2_module/Utils.h +2 -2
  189. data/src/apache2_module/mod_passenger.c +2 -2
  190. data/src/cxx_supportlib/Algorithms/Hasher.cpp +3 -3
  191. data/src/cxx_supportlib/Algorithms/Hasher.h +6 -9
  192. data/src/cxx_supportlib/Algorithms/MovingAverage.h +3 -168
  193. data/src/cxx_supportlib/AppLocalConfigFileUtils.h +2 -2
  194. data/src/cxx_supportlib/AppTypeDetector/CBindings.cpp +2 -2
  195. data/src/cxx_supportlib/AppTypeDetector/CBindings.h +2 -2
  196. data/src/cxx_supportlib/AppTypeDetector/Detector.h +2 -2
  197. data/src/cxx_supportlib/BackgroundEventLoop.cpp +6 -2
  198. data/src/cxx_supportlib/BackgroundEventLoop.h +2 -2
  199. data/src/cxx_supportlib/ConfigKit/AsyncUtils.h +2 -2
  200. data/src/cxx_supportlib/ConfigKit/Common.h +3 -3
  201. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +2 -2
  202. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +2 -2
  203. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +2 -2
  204. data/src/cxx_supportlib/ConfigKit/Schema.h +2 -2
  205. data/src/cxx_supportlib/ConfigKit/SchemaUtils.h +2 -2
  206. data/src/cxx_supportlib/ConfigKit/Store.h +2 -2
  207. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -2
  208. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +2 -2
  209. data/src/cxx_supportlib/ConfigKit/Translator.h +2 -2
  210. data/src/cxx_supportlib/ConfigKit/Utils.h +2 -2
  211. data/src/cxx_supportlib/Constants.h +4 -3
  212. data/src/cxx_supportlib/Constants.h.cxxcodebuilder +2 -2
  213. data/src/cxx_supportlib/DataStructures/HashedStaticString.h +2 -2
  214. data/src/cxx_supportlib/DataStructures/LString.cpp +2 -2
  215. data/src/cxx_supportlib/DataStructures/LString.h +6 -2
  216. data/src/cxx_supportlib/DataStructures/StringKeyTable.h +3 -3
  217. data/src/cxx_supportlib/DataStructures/StringMap.h +4 -6
  218. data/src/cxx_supportlib/Exceptions.cpp +2 -2
  219. data/src/cxx_supportlib/Exceptions.h +2 -2
  220. data/src/cxx_supportlib/FileDescriptor.h +2 -2
  221. data/src/cxx_supportlib/FileTools/FileManip.cpp +2 -2
  222. data/src/cxx_supportlib/FileTools/FileManip.h +4 -2
  223. data/src/cxx_supportlib/FileTools/PathManip.cpp +13 -4
  224. data/src/cxx_supportlib/FileTools/PathManip.h +2 -2
  225. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +2 -2
  226. data/src/cxx_supportlib/FileTools/PathManipCBindings.h +2 -2
  227. data/src/cxx_supportlib/FileTools/PathSecurityCheck.cpp +2 -2
  228. data/src/cxx_supportlib/FileTools/PathSecurityCheck.h +2 -2
  229. data/src/cxx_supportlib/Hooks.h +2 -3
  230. data/src/cxx_supportlib/IOTools/BufferedIO.h +2 -2
  231. data/src/cxx_supportlib/IOTools/IOUtils.cpp +53 -68
  232. data/src/cxx_supportlib/IOTools/IOUtils.h +67 -75
  233. data/src/cxx_supportlib/IOTools/MessageIO.h +2 -2
  234. data/src/cxx_supportlib/IOTools/MessageSerialization.h +2 -2
  235. data/src/cxx_supportlib/InstanceDirectory.h +2 -2
  236. data/src/cxx_supportlib/Integrations/LibevJsonUtils.h +5 -5
  237. data/src/cxx_supportlib/JsonTools/Autocast.h +2 -2
  238. data/src/cxx_supportlib/JsonTools/CBindings.cpp +2 -4
  239. data/src/cxx_supportlib/JsonTools/CBindings.h +2 -2
  240. data/src/cxx_supportlib/JsonTools/JsonUtils.h +6 -6
  241. data/src/cxx_supportlib/LoggingKit/Assert.h +2 -2
  242. data/src/cxx_supportlib/LoggingKit/Config.h +2 -2
  243. data/src/cxx_supportlib/LoggingKit/Context.h +18 -23
  244. data/src/cxx_supportlib/LoggingKit/Forward.h +2 -4
  245. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +38 -74
  246. data/src/cxx_supportlib/LoggingKit/Logging.h +2 -2
  247. data/src/cxx_supportlib/LoggingKit/LoggingKit.h +2 -2
  248. data/src/cxx_supportlib/LveLoggingDecorator.h +2 -2
  249. data/src/cxx_supportlib/MemoryKit/mbuf.cpp +14 -6
  250. data/src/cxx_supportlib/MemoryKit/mbuf.h +3 -3
  251. data/src/cxx_supportlib/MemoryKit/palloc.cpp +1 -1
  252. data/src/cxx_supportlib/MemoryKit/palloc.h +1 -1
  253. data/src/cxx_supportlib/ProcessManagement/Ruby.cpp +2 -2
  254. data/src/cxx_supportlib/ProcessManagement/Ruby.h +2 -2
  255. data/src/cxx_supportlib/ProcessManagement/Spawn.cpp +2 -2
  256. data/src/cxx_supportlib/ProcessManagement/Spawn.h +2 -2
  257. data/src/cxx_supportlib/ProcessManagement/Utils.cpp +3 -3
  258. data/src/cxx_supportlib/ProcessManagement/Utils.h +2 -2
  259. data/src/cxx_supportlib/RandomGenerator.h +2 -2
  260. data/src/cxx_supportlib/ResourceLocator.h +3 -3
  261. data/src/cxx_supportlib/SafeLibev.h +5 -5
  262. data/src/cxx_supportlib/SecurityKit/Crypto.cpp +5 -96
  263. data/src/cxx_supportlib/SecurityKit/Crypto.h +2 -10
  264. data/src/cxx_supportlib/SecurityKit/MemZeroGuard.h +2 -2
  265. data/src/cxx_supportlib/ServerKit/AcceptLoadBalancer.h +4 -2
  266. data/src/cxx_supportlib/ServerKit/Channel.h +2 -2
  267. data/src/cxx_supportlib/ServerKit/Client.h +2 -2
  268. data/src/cxx_supportlib/ServerKit/ClientRef.h +2 -2
  269. data/src/cxx_supportlib/ServerKit/Config.h +2 -2
  270. data/src/cxx_supportlib/ServerKit/Context.h +8 -2
  271. data/src/cxx_supportlib/ServerKit/CookieUtils.h +2 -2
  272. data/src/cxx_supportlib/ServerKit/Errors.h +5 -4
  273. data/src/cxx_supportlib/ServerKit/FdSinkChannel.h +2 -2
  274. data/src/cxx_supportlib/ServerKit/FdSourceChannel.h +2 -2
  275. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +2 -2
  276. data/src/cxx_supportlib/ServerKit/FileBufferedFdSinkChannel.h +2 -2
  277. data/src/cxx_supportlib/ServerKit/HeaderTable.h +2 -2
  278. data/src/cxx_supportlib/ServerKit/Hooks.h +4 -4
  279. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParser.h +2 -2
  280. data/src/cxx_supportlib/ServerKit/HttpChunkedBodyParserState.h +2 -2
  281. data/src/cxx_supportlib/ServerKit/HttpClient.h +2 -2
  282. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +105 -71
  283. data/src/cxx_supportlib/ServerKit/HttpHeaderParserState.h +6 -3
  284. data/src/cxx_supportlib/ServerKit/HttpRequest.h +4 -4
  285. data/src/cxx_supportlib/ServerKit/HttpRequestRef.h +2 -2
  286. data/src/cxx_supportlib/ServerKit/HttpServer.h +20 -14
  287. data/src/cxx_supportlib/ServerKit/Implementation.cpp +2 -2
  288. data/src/cxx_supportlib/ServerKit/Server.h +2 -8
  289. data/src/cxx_supportlib/ServerKit/llerrors.h +84 -0
  290. data/src/cxx_supportlib/ServerKit/llhttp.c +10168 -0
  291. data/src/cxx_supportlib/ServerKit/llhttp.h +903 -0
  292. data/src/cxx_supportlib/ServerKit/llhttp_api.c +510 -0
  293. data/src/cxx_supportlib/ServerKit/llhttp_http.c +170 -0
  294. data/src/cxx_supportlib/ServerKit/llversion.h +12 -0
  295. data/src/cxx_supportlib/ServerKit/url_parser.c +574 -0
  296. data/src/cxx_supportlib/ServerKit/url_parser.h +74 -0
  297. data/src/cxx_supportlib/StaticString.h +5 -3
  298. data/src/cxx_supportlib/StrIntTools/DateParsing.h +3 -3
  299. data/src/cxx_supportlib/StrIntTools/StrIntUtils.cpp +14 -5
  300. data/src/cxx_supportlib/StrIntTools/StrIntUtils.h +9 -4
  301. data/src/cxx_supportlib/StrIntTools/StrIntUtilsNoStrictAliasing.cpp +2 -2
  302. data/src/cxx_supportlib/StrIntTools/StringScanning.h +2 -2
  303. data/src/cxx_supportlib/StrIntTools/Template.h +2 -2
  304. data/src/cxx_supportlib/SystemTools/ContainerHelpers.h +2 -2
  305. data/src/cxx_supportlib/SystemTools/ProcessMetricsCollector.h +2 -2
  306. data/src/cxx_supportlib/SystemTools/SystemMetricsCollector.h +4 -6
  307. data/src/cxx_supportlib/SystemTools/SystemTime.cpp +2 -2
  308. data/src/cxx_supportlib/SystemTools/SystemTime.h +2 -2
  309. data/src/cxx_supportlib/SystemTools/UserDatabase.cpp +16 -16
  310. data/src/cxx_supportlib/SystemTools/UserDatabase.h +8 -12
  311. data/src/cxx_supportlib/Utils/AnsiColorConstants.h +13 -11
  312. data/src/cxx_supportlib/Utils/AsyncSignalSafeUtils.h +4 -2
  313. data/src/cxx_supportlib/Utils/BlockingQueue.h +2 -2
  314. data/src/cxx_supportlib/Utils/CachedFileStat.cpp +2 -2
  315. data/src/cxx_supportlib/Utils/CachedFileStat.h +2 -2
  316. data/src/cxx_supportlib/Utils/CachedFileStat.hpp +2 -2
  317. data/src/cxx_supportlib/Utils/ClassUtils.h +2 -2
  318. data/src/cxx_supportlib/Utils/Curl.h +2 -2
  319. data/src/cxx_supportlib/Utils/FastStringStream.h +9 -9
  320. data/src/cxx_supportlib/Utils/FileChangeChecker.h +2 -2
  321. data/src/cxx_supportlib/Utils/HttpConstants.h +2 -2
  322. data/src/cxx_supportlib/Utils/IniFile.h +26 -27
  323. data/src/cxx_supportlib/Utils/MessagePassing.h +2 -2
  324. data/src/cxx_supportlib/Utils/OptionParsing.h +2 -2
  325. data/src/cxx_supportlib/Utils/ReleaseableScopedPointer.h +2 -2
  326. data/src/cxx_supportlib/Utils/ScopeGuard.h +2 -2
  327. data/src/cxx_supportlib/Utils/SpeedMeter.h +2 -5
  328. data/src/cxx_supportlib/Utils/Timer.h +2 -2
  329. data/src/cxx_supportlib/Utils/VariantMap.h +2 -2
  330. data/src/cxx_supportlib/Utils.cpp +3 -3
  331. data/src/cxx_supportlib/Utils.h +2 -32
  332. data/src/cxx_supportlib/WatchdogLauncher.cpp +2 -2
  333. data/src/cxx_supportlib/WatchdogLauncher.h +3 -5
  334. data/src/cxx_supportlib/WrapperRegistry/CBindings.cpp +2 -2
  335. data/src/cxx_supportlib/WrapperRegistry/CBindings.h +2 -2
  336. data/src/cxx_supportlib/WrapperRegistry/Entry.h +2 -2
  337. data/src/cxx_supportlib/WrapperRegistry/Registry.h +2 -2
  338. data/src/cxx_supportlib/oxt/backtrace.hpp +1 -1
  339. data/src/cxx_supportlib/oxt/detail/backtrace_disabled.hpp +1 -1
  340. data/src/cxx_supportlib/oxt/detail/backtrace_enabled.hpp +1 -1
  341. data/src/cxx_supportlib/oxt/detail/context.hpp +1 -1
  342. data/src/cxx_supportlib/oxt/detail/spin_lock_darwin.hpp +1 -1
  343. data/src/cxx_supportlib/oxt/detail/spin_lock_gcc_x86.hpp +1 -1
  344. data/src/cxx_supportlib/oxt/detail/spin_lock_portable.hpp +1 -1
  345. data/src/cxx_supportlib/oxt/detail/spin_lock_pthreads.hpp +1 -1
  346. data/src/cxx_supportlib/oxt/detail/tracable_exception_disabled.hpp +5 -1
  347. data/src/cxx_supportlib/oxt/detail/tracable_exception_enabled.hpp +2 -1
  348. data/src/cxx_supportlib/oxt/dynamic_thread_group.hpp +1 -1
  349. data/src/cxx_supportlib/oxt/implementation.cpp +53 -4
  350. data/src/cxx_supportlib/oxt/initialize.hpp +1 -1
  351. data/src/cxx_supportlib/oxt/macros.hpp +1 -1
  352. data/src/cxx_supportlib/oxt/spin_lock.hpp +1 -1
  353. data/src/cxx_supportlib/oxt/system_calls.cpp +13 -5
  354. data/src/cxx_supportlib/oxt/system_calls.hpp +4 -5
  355. data/src/cxx_supportlib/oxt/thread.hpp +2 -2
  356. data/src/cxx_supportlib/oxt/tracable_exception.hpp +1 -1
  357. data/src/cxx_supportlib/vendor-copy/adhoc_lve.h +2 -2
  358. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/detail/find_iterator.hpp +11 -3
  359. data/src/cxx_supportlib/vendor-modified/boost/algorithm/string/find_iterator.hpp +27 -1
  360. data/src/cxx_supportlib/vendor-modified/boost/align/aligned_alloc.hpp +1 -1
  361. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc_sunos.hpp +34 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/assert/source_location.hpp +124 -26
  363. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic.hpp +10 -18
  364. data/src/cxx_supportlib/vendor-modified/boost/atomic/atomic_ref.hpp +4 -5
  365. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/addressof.hpp +5 -1
  366. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_impl.hpp +183 -64
  367. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/atomic_ref_impl.hpp +170 -68
  368. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_cast.hpp +83 -12
  369. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/bitwise_fp_cast.hpp +40 -11
  370. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch32.hpp +8 -1
  371. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_aarch64.hpp +8 -1
  372. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/caps_arch_gcc_arm.hpp +8 -1
  373. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/classify.hpp +19 -10
  374. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/config.hpp +19 -54
  375. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_ppc.hpp +105 -100
  376. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_gcc_x86.hpp +107 -40
  377. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_arch_ops_msvc_x86.hpp +32 -5
  378. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_operations_emulated.hpp +12 -13
  379. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_emulated.hpp +7 -8
  380. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_fp_ops_generic.hpp +1 -1
  381. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_emulated.hpp +26 -27
  382. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/extra_ops_gcc_ppc.hpp +73 -72
  383. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/float_sizes.hpp +122 -35
  384. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fp_ops_emulated.hpp +2 -3
  385. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/futex.hpp +50 -12
  386. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_arm_asm_common.hpp +4 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/gcc_ppc_asm_common.hpp +33 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/pause.hpp +7 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/platform.hpp +15 -6
  390. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/alignment_of.hpp +3 -3
  391. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/has_unique_object_representations.hpp +143 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_enum.hpp +42 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/is_nothrow_default_constructible.hpp +46 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/type_traits/remove_cv.hpp +42 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_darwin_ulock.hpp +58 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_on_address.hpp +64 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_darwin_ulock.hpp +158 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_emulated.hpp +3 -4
  399. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic.hpp +10 -5
  400. data/src/cxx_supportlib/vendor-modified/boost/atomic/ipc_atomic_ref.hpp +4 -5
  401. data/src/cxx_supportlib/vendor-modified/boost/bind/apply.hpp +2 -60
  402. data/src/cxx_supportlib/vendor-modified/boost/bind/bind.hpp +257 -1789
  403. data/src/cxx_supportlib/vendor-modified/boost/bind/{bind_cc.hpp → detail/bind_cc.hpp} +20 -20
  404. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf2_cc.hpp +210 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/bind_mf_cc.hpp +405 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/integer_sequence.hpp +111 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/result_traits.hpp +13 -2
  408. data/src/cxx_supportlib/vendor-modified/boost/bind/detail/tuple_for_each.hpp +64 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn.hpp +140 -290
  410. data/src/cxx_supportlib/vendor-modified/boost/bind/placeholders.hpp +3 -16
  411. data/src/cxx_supportlib/vendor-modified/boost/bind/protect.hpp +0 -279
  412. data/src/cxx_supportlib/vendor-modified/boost/bind/std_placeholders.hpp +0 -6
  413. data/src/cxx_supportlib/vendor-modified/boost/chrono/config.hpp +2 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +4 -4
  415. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/is_evenly_divisible_by.hpp +1 -7
  416. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/requires_cxx11.hpp +23 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +4 -2
  418. data/src/cxx_supportlib/vendor-modified/boost/chrono/duration.hpp +10 -6
  419. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +1 -1
  420. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +4 -4
  421. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +5 -5
  422. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +1 -1
  423. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +3 -2
  424. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +3 -3
  425. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +2 -1
  426. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +7 -7
  427. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +3 -3
  428. data/src/cxx_supportlib/vendor-modified/boost/chrono/system_clocks.hpp +1 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/chrono/time_point.hpp +1 -1
  430. data/src/cxx_supportlib/vendor-modified/boost/circular_buffer/details.hpp +5 -1
  431. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx03.hpp +1 -1
  432. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx11.hpp +4 -4
  433. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx14.hpp +1 -1
  434. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx17.hpp +7 -1
  435. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx20.hpp +4 -1
  436. data/src/cxx_supportlib/vendor-modified/boost/config/assert_cxx23.hpp +41 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/config/auto_link.hpp +6 -1
  438. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/borland.hpp +4 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang.hpp +20 -3
  440. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/clang_version.hpp +89 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/codegear.hpp +5 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/common_edg.hpp +4 -1
  443. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/cray.hpp +1 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/digitalmars.hpp +4 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc.hpp +16 -5
  446. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/gcc_xml.hpp +4 -2
  447. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/hp_acc.hpp +5 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/intel.hpp +1 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/metrowerks.hpp +4 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/mpw.hpp +4 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/nvcc.hpp +6 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/pathscale.hpp +4 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/sunpro_cc.hpp +10 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/vacpp.hpp +4 -0
  455. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/visualc.hpp +23 -3
  456. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp.hpp +13 -0
  457. data/src/cxx_supportlib/vendor-modified/boost/config/compiler/xlcpp_zos.hpp +2 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/config/detail/cxx_composite.hpp +19 -3
  459. data/src/cxx_supportlib/vendor-modified/boost/config/detail/suffix.hpp +139 -34
  460. data/src/cxx_supportlib/vendor-modified/boost/config/header_deprecated.hpp +1 -1
  461. data/src/cxx_supportlib/vendor-modified/boost/config/platform/wasm.hpp +6 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/dinkumware.hpp +45 -18
  463. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libcpp.hpp +11 -45
  464. data/src/cxx_supportlib/vendor-modified/boost/config/stdlib/libstdcpp3.hpp +42 -3
  465. data/src/cxx_supportlib/vendor-modified/boost/config/workaround.hpp +11 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/container/adaptive_pool.hpp +26 -21
  467. data/src/cxx_supportlib/vendor-modified/boost/container/allocator.hpp +30 -26
  468. data/src/cxx_supportlib/vendor-modified/boost/container/allocator_traits.hpp +178 -39
  469. data/src/cxx_supportlib/vendor-modified/boost/container/container_fwd.hpp +12 -12
  470. data/src/cxx_supportlib/vendor-modified/boost/container/deque.hpp +827 -303
  471. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool.hpp +1 -1
  472. data/src/cxx_supportlib/vendor-modified/boost/container/detail/adaptive_node_pool_impl.hpp +57 -57
  473. data/src/cxx_supportlib/vendor-modified/boost/container/detail/addressof.hpp +2 -10
  474. data/src/cxx_supportlib/vendor-modified/boost/container/detail/advanced_insert_int.hpp +155 -179
  475. data/src/cxx_supportlib/vendor-modified/boost/container/detail/alloc_helpers.hpp +6 -6
  476. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocation_type.hpp +7 -7
  477. data/src/cxx_supportlib/vendor-modified/boost/container/detail/allocator_version_traits.hpp +14 -15
  478. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_list.hpp +2 -2
  479. data/src/cxx_supportlib/vendor-modified/boost/container/detail/block_slist.hpp +2 -2
  480. data/src/cxx_supportlib/vendor-modified/boost/container/detail/compare_functors.hpp +24 -21
  481. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_begin.hpp +12 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/container/detail/config_end.hpp +3 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/container/detail/construct_in_place.hpp +52 -16
  484. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_or_allocator_rebind.hpp +1 -2
  485. data/src/cxx_supportlib/vendor-modified/boost/container/detail/container_rebind.hpp +23 -13
  486. data/src/cxx_supportlib/vendor-modified/boost/container/detail/copy_move_algo.hpp +891 -182
  487. data/src/cxx_supportlib/vendor-modified/boost/container/detail/destroyers.hpp +121 -66
  488. data/src/cxx_supportlib/vendor-modified/boost/container/detail/dispatch_uses_allocator.hpp +42 -42
  489. data/src/cxx_supportlib/vendor-modified/boost/container/detail/flat_tree.hpp +310 -231
  490. data/src/cxx_supportlib/vendor-modified/boost/container/detail/function_detector.hpp +1 -1
  491. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_container.hpp +2 -2
  492. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_contiguous_container.hpp +16 -12
  493. data/src/cxx_supportlib/vendor-modified/boost/container/detail/is_pair.hpp +91 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterator.hpp +8 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/container/detail/iterators.hpp +213 -195
  496. data/src/cxx_supportlib/vendor-modified/boost/container/detail/math_functions.hpp +10 -11
  497. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mpl.hpp +4 -4
  498. data/src/cxx_supportlib/vendor-modified/boost/container/detail/multiallocation_chain.hpp +98 -12
  499. data/src/cxx_supportlib/vendor-modified/boost/container/detail/mutex.hpp +48 -12
  500. data/src/cxx_supportlib/vendor-modified/boost/container/detail/next_capacity.hpp +8 -10
  501. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_alloc_holder.hpp +268 -120
  502. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool.hpp +1 -1
  503. data/src/cxx_supportlib/vendor-modified/boost/container/detail/node_pool_impl.hpp +12 -12
  504. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pair.hpp +49 -122
  505. data/src/cxx_supportlib/vendor-modified/boost/container/detail/placement_new.hpp +1 -7
  506. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common.hpp +1 -1
  507. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_common_alloc.hpp +2 -2
  508. data/src/cxx_supportlib/vendor-modified/boost/container/detail/pool_resource.hpp +7 -11
  509. data/src/cxx_supportlib/vendor-modified/boost/container/detail/transform_iterator.hpp +28 -28
  510. data/src/cxx_supportlib/vendor-modified/boost/container/detail/tree.hpp +265 -354
  511. data/src/cxx_supportlib/vendor-modified/boost/container/detail/type_traits.hpp +1 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/container/detail/value_init.hpp +3 -3
  513. data/src/cxx_supportlib/vendor-modified/boost/container/detail/version_type.hpp +4 -4
  514. data/src/cxx_supportlib/vendor-modified/boost/container/detail/workaround.hpp +93 -11
  515. data/src/cxx_supportlib/vendor-modified/boost/container/devector.hpp +1364 -1296
  516. data/src/cxx_supportlib/vendor-modified/boost/container/flat_map.hpp +367 -260
  517. data/src/cxx_supportlib/vendor-modified/boost/container/flat_set.hpp +112 -93
  518. data/src/cxx_supportlib/vendor-modified/boost/container/list.hpp +80 -125
  519. data/src/cxx_supportlib/vendor-modified/boost/container/map.hpp +136 -119
  520. data/src/cxx_supportlib/vendor-modified/boost/container/new_allocator.hpp +19 -14
  521. data/src/cxx_supportlib/vendor-modified/boost/container/node_allocator.hpp +27 -21
  522. data/src/cxx_supportlib/vendor-modified/boost/container/node_handle.hpp +35 -22
  523. data/src/cxx_supportlib/vendor-modified/boost/container/options.hpp +158 -45
  524. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/memory_resource.hpp +8 -3
  525. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/monotonic_buffer_resource.hpp +4 -4
  526. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/polymorphic_allocator.hpp +1 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/resource_adaptor.hpp +7 -7
  528. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/synchronized_pool_resource.hpp +3 -3
  529. data/src/cxx_supportlib/vendor-modified/boost/container/pmr/unsynchronized_pool_resource.hpp +3 -3
  530. data/src/cxx_supportlib/vendor-modified/boost/container/scoped_allocator.hpp +81 -83
  531. data/src/cxx_supportlib/vendor-modified/boost/container/set.hpp +93 -90
  532. data/src/cxx_supportlib/vendor-modified/boost/container/slist.hpp +82 -127
  533. data/src/cxx_supportlib/vendor-modified/boost/container/small_vector.hpp +229 -245
  534. data/src/cxx_supportlib/vendor-modified/boost/container/stable_vector.hpp +198 -175
  535. data/src/cxx_supportlib/vendor-modified/boost/container/static_vector.hpp +131 -87
  536. data/src/cxx_supportlib/vendor-modified/boost/container/string.hpp +373 -374
  537. data/src/cxx_supportlib/vendor-modified/boost/container/throw_exception.hpp +6 -7
  538. data/src/cxx_supportlib/vendor-modified/boost/container/uses_allocator.hpp +3 -3
  539. data/src/cxx_supportlib/vendor-modified/boost/container/vector.hpp +618 -631
  540. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_integral.hpp +146 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_mix.hpp +113 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_range.hpp +408 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_tuple_like.hpp +62 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/mulx.hpp +79 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash.hpp +395 -581
  546. data/src/cxx_supportlib/vendor-modified/boost/container_hash/hash_fwd.hpp +25 -24
  547. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_contiguous_range.hpp +98 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_described_class.hpp +37 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_range.hpp +41 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_tuple_like.hpp +36 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/container_hash/is_unordered_range.hpp +38 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/core/alignof.hpp +57 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/core/alloc_construct.hpp +7 -81
  554. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_access.hpp +448 -215
  555. data/src/cxx_supportlib/vendor-modified/boost/core/allocator_traits.hpp +112 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/core/bit.hpp +418 -45
  557. data/src/cxx_supportlib/vendor-modified/boost/core/checked_delete.hpp +29 -3
  558. data/src/cxx_supportlib/vendor-modified/boost/core/cmath.hpp +100 -1
  559. data/src/cxx_supportlib/vendor-modified/boost/core/data.hpp +46 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/core/default_allocator.hpp +19 -9
  561. data/src/cxx_supportlib/vendor-modified/boost/core/detail/is_same.hpp +39 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/core/detail/lwt_unattended.hpp +66 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/core/detail/minstd_rand.hpp +58 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_pause.hpp +71 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/{smart_ptr → core}/detail/sp_thread_sleep.hpp +39 -21
  566. data/src/cxx_supportlib/vendor-modified/boost/core/detail/sp_thread_yield.hpp +100 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/core/detail/splitmix64.hpp +3 -3
  568. data/src/cxx_supportlib/vendor-modified/boost/core/detail/string_view.hpp +1272 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/core/empty_value.hpp +78 -21
  570. data/src/cxx_supportlib/vendor-modified/boost/core/fclose_deleter.hpp +53 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/core/functor.hpp +41 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/core/identity.hpp +61 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/core/invoke_swap.hpp +93 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/core/is_same.hpp +10 -15
  575. data/src/cxx_supportlib/vendor-modified/boost/core/launder.hpp +69 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test.hpp +41 -37
  577. data/src/cxx_supportlib/vendor-modified/boost/core/lightweight_test_trait.hpp +8 -54
  578. data/src/cxx_supportlib/vendor-modified/boost/core/make_span.hpp +59 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/core/max_align.hpp +82 -0
  580. data/src/cxx_supportlib/vendor-modified/boost/core/memory_resource.hpp +108 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/core/noinit_adaptor.hpp +3 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/core/noncopyable.hpp +1 -1
  583. data/src/cxx_supportlib/vendor-modified/boost/core/null_deleter.hpp +7 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_in_range.hpp +49 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/core/pointer_traits.hpp +111 -60
  586. data/src/cxx_supportlib/vendor-modified/boost/core/quick_exit.hpp +1 -1
  587. data/src/cxx_supportlib/vendor-modified/boost/core/ref.hpp +23 -16
  588. data/src/cxx_supportlib/vendor-modified/boost/core/serialization.hpp +131 -0
  589. data/src/cxx_supportlib/vendor-modified/boost/core/size.hpp +31 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/core/snprintf.hpp +173 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/core/span.hpp +401 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/core/swap.hpp +10 -40
  593. data/src/cxx_supportlib/vendor-modified/boost/core/type_name.hpp +1186 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/core/verbose_terminate_handler.hpp +88 -0
  595. data/src/cxx_supportlib/vendor-modified/boost/core/yield_primitives.hpp +12 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/date_time/date.hpp +1 -1
  597. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters.hpp +3 -3
  598. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/formatters_limited.hpp +3 -3
  599. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/greg_date.hpp +12 -13
  600. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian/parsers.hpp +2 -2
  601. data/src/cxx_supportlib/vendor-modified/boost/date_time/gregorian_calendar.ipp +3 -3
  602. data/src/cxx_supportlib/vendor-modified/boost/date_time/iso_format.hpp +13 -13
  603. data/src/cxx_supportlib/vendor-modified/boost/date_time/local_time/local_date_time.hpp +2 -2
  604. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/conversion.hpp +1 -1
  605. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/posix_time_io.hpp +1 -1
  606. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters.hpp +4 -4
  607. data/src/cxx_supportlib/vendor-modified/boost/date_time/posix_time/time_formatters_limited.hpp +2 -2
  608. data/src/cxx_supportlib/vendor-modified/boost/date_time/special_values_parser.hpp +1 -1
  609. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_facet.hpp +1 -1
  610. data/src/cxx_supportlib/vendor-modified/boost/date_time/time_parsing.hpp +2 -2
  611. data/src/cxx_supportlib/vendor-modified/boost/describe/bases.hpp +50 -0
  612. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/config.hpp +40 -0
  613. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/cx_streq.hpp +30 -0
  614. data/src/cxx_supportlib/vendor-modified/boost/describe/detail/void_t.hpp +32 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/describe/members.hpp +161 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/describe/modifiers.hpp +33 -0
  617. data/src/cxx_supportlib/vendor-modified/boost/detail/basic_pointerbuf.hpp +3 -7
  618. data/src/cxx_supportlib/vendor-modified/boost/detail/lcast_precision.hpp +24 -126
  619. data/src/cxx_supportlib/vendor-modified/boost/detail/workaround.hpp +3 -3
  620. data/src/cxx_supportlib/vendor-modified/boost/exception/current_exception_cast.hpp +1 -1
  621. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/clone_current_exception.hpp +1 -1
  622. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/error_info_impl.hpp +1 -1
  623. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/exception_ptr.hpp +58 -30
  624. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/is_output_streamable.hpp +1 -1
  625. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/object_hex_dump.hpp +1 -1
  626. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/requires_cxx11.hpp +24 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/exception/detail/type_info.hpp +1 -1
  628. data/src/cxx_supportlib/vendor-modified/boost/exception/diagnostic_information.hpp +4 -4
  629. data/src/cxx_supportlib/vendor-modified/boost/exception/exception.hpp +85 -3
  630. data/src/cxx_supportlib/vendor-modified/boost/exception/get_error_info.hpp +1 -1
  631. data/src/cxx_supportlib/vendor-modified/boost/exception/info.hpp +2 -2
  632. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string.hpp +2 -2
  633. data/src/cxx_supportlib/vendor-modified/boost/exception/to_string_stub.hpp +1 -1
  634. data/src/cxx_supportlib/vendor-modified/boost/function/function0.hpp +1 -3
  635. data/src/cxx_supportlib/vendor-modified/boost/function/function1.hpp +1 -3
  636. data/src/cxx_supportlib/vendor-modified/boost/function/function10.hpp +1 -3
  637. data/src/cxx_supportlib/vendor-modified/boost/function/function2.hpp +1 -3
  638. data/src/cxx_supportlib/vendor-modified/boost/function/function3.hpp +1 -3
  639. data/src/cxx_supportlib/vendor-modified/boost/function/function4.hpp +1 -3
  640. data/src/cxx_supportlib/vendor-modified/boost/function/function5.hpp +1 -3
  641. data/src/cxx_supportlib/vendor-modified/boost/function/function6.hpp +1 -3
  642. data/src/cxx_supportlib/vendor-modified/boost/function/function7.hpp +1 -3
  643. data/src/cxx_supportlib/vendor-modified/boost/function/function8.hpp +1 -3
  644. data/src/cxx_supportlib/vendor-modified/boost/function/function9.hpp +1 -3
  645. data/src/cxx_supportlib/vendor-modified/boost/function/function_base.hpp +71 -223
  646. data/src/cxx_supportlib/vendor-modified/boost/function/function_fwd.hpp +36 -41
  647. data/src/cxx_supportlib/vendor-modified/boost/function/function_template.hpp +428 -452
  648. data/src/cxx_supportlib/vendor-modified/boost/function/function_typeof.hpp +1 -31
  649. data/src/cxx_supportlib/vendor-modified/boost/function.hpp +5 -61
  650. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +6 -10
  651. data/src/cxx_supportlib/vendor-modified/boost/integer/extended_euclidean.hpp +2 -2
  652. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +85 -80
  653. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avl_set.hpp +32 -25
  654. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree.hpp +16 -13
  655. data/src/cxx_supportlib/vendor-modified/boost/intrusive/avltree_algorithms.hpp +45 -45
  656. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bs_set.hpp +32 -25
  657. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree.hpp +104 -97
  658. data/src/cxx_supportlib/vendor-modified/boost/intrusive/bstree_algorithms.hpp +87 -90
  659. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_list_algorithms.hpp +29 -20
  660. data/src/cxx_supportlib/vendor-modified/boost/intrusive/circular_slist_algorithms.hpp +77 -8
  661. data/src/cxx_supportlib/vendor-modified/boost/intrusive/derivation_value_traits.hpp +2 -2
  662. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/algorithm.hpp +8 -8
  663. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/any_node_and_algorithms.hpp +30 -30
  664. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/array_initializer.hpp +8 -7
  665. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/avltree_node.hpp +14 -14
  666. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/bstree_algorithms_base.hpp +38 -39
  667. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/common_slist_algorithms.hpp +84 -15
  668. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/default_header_holder.hpp +3 -3
  669. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/ebo_functor_holder.hpp +24 -24
  670. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/empty_node_checker.hpp +1 -1
  671. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/equal_to_value.hpp +1 -1
  672. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/exception_disposer.hpp +1 -32
  673. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/function_detector.hpp +1 -1
  674. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/generic_hook.hpp +14 -15
  675. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash.hpp +277 -0
  676. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_combine.hpp +11 -49
  677. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_integral.hpp +119 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hash_mix.hpp +130 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hashtable_node.hpp +195 -115
  680. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/hook_traits.hpp +22 -26
  681. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iiterator.hpp +6 -6
  682. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/iterator.hpp +121 -75
  683. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/key_nodeptr_comp.hpp +7 -7
  684. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_iterator.hpp +20 -20
  685. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/list_node.hpp +4 -4
  686. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/math.hpp +3 -3
  687. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/mpl.hpp +7 -1
  688. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_cloner_disposer.hpp +3 -3
  689. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/node_to_value.hpp +1 -1
  690. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/parent_from_member.hpp +7 -17
  691. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/rbtree_node.hpp +18 -18
  692. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/reverse_iterator.hpp +3 -140
  693. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/simple_disposers.hpp +1 -1
  694. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/size_holder.hpp +14 -14
  695. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_iterator.hpp +26 -19
  696. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/slist_node.hpp +2 -2
  697. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/transform_iterator.hpp +22 -22
  698. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_iterator.hpp +21 -21
  699. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_node.hpp +6 -6
  700. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/tree_value_compare.hpp +28 -28
  701. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/value_functors.hpp +10 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/intrusive/detail/workaround.hpp +70 -3
  703. data/src/cxx_supportlib/vendor-modified/boost/intrusive/hashtable.hpp +1722 -995
  704. data/src/cxx_supportlib/vendor-modified/boost/intrusive/intrusive_fwd.hpp +2 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/intrusive/linear_slist_algorithms.hpp +84 -11
  706. data/src/cxx_supportlib/vendor-modified/boost/intrusive/list.hpp +68 -63
  707. data/src/cxx_supportlib/vendor-modified/boost/intrusive/member_value_traits.hpp +2 -2
  708. data/src/cxx_supportlib/vendor-modified/boost/intrusive/options.hpp +17 -3
  709. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pack_options.hpp +15 -11
  710. data/src/cxx_supportlib/vendor-modified/boost/intrusive/pointer_traits.hpp +12 -4
  711. data/src/cxx_supportlib/vendor-modified/boost/intrusive/priority_compare.hpp +11 -4
  712. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree.hpp +16 -13
  713. data/src/cxx_supportlib/vendor-modified/boost/intrusive/rbtree_algorithms.hpp +38 -38
  714. data/src/cxx_supportlib/vendor-modified/boost/intrusive/set.hpp +32 -25
  715. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sg_set.hpp +32 -25
  716. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree.hpp +18 -15
  717. data/src/cxx_supportlib/vendor-modified/boost/intrusive/sgtree_algorithms.hpp +22 -22
  718. data/src/cxx_supportlib/vendor-modified/boost/intrusive/slist.hpp +80 -79
  719. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splay_set.hpp +32 -25
  720. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree.hpp +16 -13
  721. data/src/cxx_supportlib/vendor-modified/boost/intrusive/splaytree_algorithms.hpp +38 -36
  722. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap.hpp +22 -19
  723. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_algorithms.hpp +25 -21
  724. data/src/cxx_supportlib/vendor-modified/boost/intrusive/treap_set.hpp +44 -37
  725. data/src/cxx_supportlib/vendor-modified/boost/intrusive/trivial_value_traits.hpp +2 -2
  726. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set.hpp +64 -54
  727. data/src/cxx_supportlib/vendor-modified/boost/intrusive/unordered_set_hook.hpp +11 -11
  728. data/src/cxx_supportlib/vendor-modified/boost/io/ios_state.hpp +2 -2
  729. data/src/cxx_supportlib/vendor-modified/boost/iterator/advance.hpp +11 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_def.hpp +6 -6
  731. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/config_undef.hpp +1 -1
  732. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/enable_if.hpp +5 -5
  733. data/src/cxx_supportlib/vendor-modified/boost/iterator/detail/facade_iterator_category.hpp +10 -11
  734. data/src/cxx_supportlib/vendor-modified/boost/iterator/is_iterator.hpp +148 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_concepts.hpp +2 -2
  736. data/src/cxx_supportlib/vendor-modified/boost/iterator/iterator_facade.hpp +106 -25
  737. data/src/cxx_supportlib/vendor-modified/boost/iterator/transform_iterator.hpp +8 -4
  738. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/bad_lexical_cast.hpp +7 -13
  739. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/buffer_view.hpp +59 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical.hpp +113 -131
  741. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_lexical_streams.hpp +618 -646
  742. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/converter_numeric.hpp +83 -74
  743. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/inf_nan.hpp +26 -33
  744. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/is_character.hpp +22 -29
  745. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_basic_unlockedbuf.hpp +73 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_char_constants.hpp +1 -1
  747. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/lcast_unsigned_converters.hpp +23 -18
  748. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/detail/widest_char.hpp +7 -9
  749. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast/try_lexical_convert.hpp +22 -161
  750. data/src/cxx_supportlib/vendor-modified/boost/lexical_cast.hpp +9 -12
  751. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +4 -2
  752. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +3 -1
  753. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +3 -1
  754. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +3 -1
  755. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/posix_api.cpp +10 -18
  756. data/src/cxx_supportlib/vendor-modified/boost/libs/regex/src/wide_posix_api.cpp +13 -14
  757. data/src/cxx_supportlib/vendor-modified/boost/libs/thread/src/pthread/thread.cpp +24 -14
  758. data/src/cxx_supportlib/vendor-modified/boost/limits.hpp +12 -12
  759. data/src/cxx_supportlib/vendor-modified/boost/move/adl_move_swap.hpp +7 -5
  760. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_merge.hpp +48 -33
  761. data/src/cxx_supportlib/vendor-modified/boost/move/algo/adaptive_sort.hpp +92 -75
  762. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/adaptive_sort_merge.hpp +216 -185
  763. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/basic_op.hpp +11 -10
  764. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/heap_sort.hpp +22 -11
  765. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/insertion_sort.hpp +9 -0
  766. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge.hpp +125 -165
  767. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/merge_sort.hpp +24 -15
  768. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/pdqsort.hpp +16 -5
  769. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/search.hpp +79 -0
  770. data/src/cxx_supportlib/vendor-modified/boost/move/algo/detail/set_difference.hpp +8 -2
  771. data/src/cxx_supportlib/vendor-modified/boost/move/algo/move.hpp +8 -5
  772. data/src/cxx_supportlib/vendor-modified/boost/move/algo/predicate.hpp +11 -11
  773. data/src/cxx_supportlib/vendor-modified/boost/move/algorithm.hpp +0 -1
  774. data/src/cxx_supportlib/vendor-modified/boost/move/core.hpp +22 -1
  775. data/src/cxx_supportlib/vendor-modified/boost/move/default_delete.hpp +5 -6
  776. data/src/cxx_supportlib/vendor-modified/boost/move/detail/addressof.hpp +61 -0
  777. data/src/cxx_supportlib/vendor-modified/boost/move/detail/config_begin.hpp +0 -1
  778. data/src/cxx_supportlib/vendor-modified/boost/move/detail/force_ptr.hpp +36 -0
  779. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_to_raw_pointer.hpp +3 -3
  780. data/src/cxx_supportlib/vendor-modified/boost/move/detail/iterator_traits.hpp +108 -9
  781. data/src/cxx_supportlib/vendor-modified/boost/move/detail/launder.hpp +53 -0
  782. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils.hpp +9 -52
  783. data/src/cxx_supportlib/vendor-modified/boost/move/detail/meta_utils_core.hpp +15 -0
  784. data/src/cxx_supportlib/vendor-modified/boost/move/detail/move_helpers.hpp +24 -24
  785. data/src/cxx_supportlib/vendor-modified/boost/move/detail/nsec_clock.hpp +70 -26
  786. data/src/cxx_supportlib/vendor-modified/boost/move/detail/placement_new.hpp +2 -0
  787. data/src/cxx_supportlib/vendor-modified/boost/move/detail/reverse_iterator.hpp +40 -33
  788. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_begin.hpp +7 -3
  789. data/src/cxx_supportlib/vendor-modified/boost/move/detail/std_ns_end.hpp +5 -0
  790. data/src/cxx_supportlib/vendor-modified/boost/move/detail/to_raw_pointer.hpp +1 -1
  791. data/src/cxx_supportlib/vendor-modified/boost/move/detail/type_traits.hpp +90 -30
  792. data/src/cxx_supportlib/vendor-modified/boost/move/detail/workaround.hpp +90 -3
  793. data/src/cxx_supportlib/vendor-modified/boost/move/iterator.hpp +22 -22
  794. data/src/cxx_supportlib/vendor-modified/boost/move/make_unique.hpp +10 -0
  795. data/src/cxx_supportlib/vendor-modified/boost/move/unique_ptr.hpp +65 -66
  796. data/src/cxx_supportlib/vendor-modified/boost/move/utility.hpp +2 -2
  797. data/src/cxx_supportlib/vendor-modified/boost/move/utility_core.hpp +38 -33
  798. data/src/cxx_supportlib/vendor-modified/boost/mp11/algorithm.hpp +1386 -0
  799. data/src/cxx_supportlib/vendor-modified/boost/mp11/bind.hpp +120 -0
  800. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/config.hpp +149 -0
  801. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_append.hpp +321 -0
  802. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_copy_if.hpp +48 -0
  803. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_count.hpp +147 -0
  804. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_defer.hpp +119 -0
  805. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_fold.hpp +166 -0
  806. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_front.hpp +50 -0
  807. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_list.hpp +39 -0
  808. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_is_value_list.hpp +41 -0
  809. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list.hpp +24 -0
  810. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_list_v.hpp +27 -0
  811. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_map_find.hpp +87 -0
  812. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_min_element.hpp +51 -0
  813. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_plus.hpp +84 -0
  814. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_remove_if.hpp +48 -0
  815. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_rename.hpp +54 -0
  816. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_value.hpp +25 -0
  817. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_void.hpp +32 -0
  818. data/src/cxx_supportlib/vendor-modified/boost/mp11/detail/mp_with_index.hpp +385 -0
  819. data/src/cxx_supportlib/vendor-modified/boost/mp11/function.hpp +222 -0
  820. data/src/cxx_supportlib/vendor-modified/boost/mp11/integer_sequence.hpp +121 -0
  821. data/src/cxx_supportlib/vendor-modified/boost/mp11/integral.hpp +51 -0
  822. data/src/cxx_supportlib/vendor-modified/boost/mp11/list.hpp +481 -0
  823. data/src/cxx_supportlib/vendor-modified/boost/mp11/set.hpp +188 -0
  824. data/src/cxx_supportlib/vendor-modified/boost/mp11/utility.hpp +169 -0
  825. data/src/cxx_supportlib/vendor-modified/boost/mp11/version.hpp +16 -0
  826. data/src/cxx_supportlib/vendor-modified/boost/mpl/and.hpp +1 -1
  827. data/src/cxx_supportlib/vendor-modified/boost/mpl/assert.hpp +6 -6
  828. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/integral_wrapper.hpp +2 -1
  829. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/preprocessed/gcc/template_arity.hpp +1 -1
  830. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/template_arity.hpp +1 -1
  831. data/src/cxx_supportlib/vendor-modified/boost/mpl/aux_/yes_no.hpp +2 -1
  832. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitand.hpp +1 -1
  833. data/src/cxx_supportlib/vendor-modified/boost/mpl/bitor.hpp +1 -1
  834. data/src/cxx_supportlib/vendor-modified/boost/mpl/or.hpp +1 -1
  835. data/src/cxx_supportlib/vendor-modified/boost/next_prior.hpp +3 -44
  836. data/src/cxx_supportlib/vendor-modified/boost/nondet_random.hpp +22 -0
  837. data/src/cxx_supportlib/vendor-modified/boost/none.hpp +1 -1
  838. data/src/cxx_supportlib/vendor-modified/boost/none_t.hpp +15 -1
  839. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/int_float_mixture.hpp +5 -5
  840. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/sign_mixture.hpp +5 -5
  841. data/src/cxx_supportlib/vendor-modified/boost/numeric/conversion/detail/udt_builtin_mixture.hpp +5 -5
  842. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/experimental_traits.hpp +4 -49
  843. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_aligned_storage.hpp +3 -4
  844. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_config.hpp +16 -7
  845. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_hash.hpp +49 -0
  846. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_reference_spec.hpp +49 -48
  847. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_relops.hpp +11 -11
  848. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_swap.hpp +9 -9
  849. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_trivially_copyable_base.hpp +31 -260
  850. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/optional_utility.hpp +41 -0
  851. data/src/cxx_supportlib/vendor-modified/boost/optional/optional.hpp +169 -599
  852. data/src/cxx_supportlib/vendor-modified/boost/optional/optional_io.hpp +4 -7
  853. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/tag_keyword_arg_ref.hpp +2 -2
  854. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/pack/unmatched_argument.hpp +1 -1
  855. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/preprocessor/overloads.hpp +1 -1
  856. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/tag.hpp +4 -4
  857. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/unwrap_cv_reference.hpp +1 -1
  858. data/src/cxx_supportlib/vendor-modified/boost/parameter/aux_/void.hpp +1 -1
  859. data/src/cxx_supportlib/vendor-modified/boost/parameter/binding.hpp +3 -3
  860. data/src/cxx_supportlib/vendor-modified/boost/parameter/match.hpp +1 -1
  861. data/src/cxx_supportlib/vendor-modified/boost/parameter/template_keyword.hpp +1 -1
  862. data/src/cxx_supportlib/vendor-modified/boost/parameter/value_type.hpp +3 -3
  863. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +12 -24
  864. data/src/cxx_supportlib/vendor-modified/boost/pool/pool.hpp +22 -9
  865. data/src/cxx_supportlib/vendor-modified/boost/pool/simple_segregated_storage.hpp +13 -0
  866. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/loongarch.h +41 -0
  867. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture/sparc.h +2 -2
  868. data/src/cxx_supportlib/vendor-modified/boost/predef/architecture.h +1 -0
  869. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdc.h +1 -1
  870. data/src/cxx_supportlib/vendor-modified/boost/predef/language/stdcpp.h +2 -2
  871. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std/msvc.h +53 -0
  872. data/src/cxx_supportlib/vendor-modified/boost/predef/library/std.h +1 -0
  873. data/src/cxx_supportlib/vendor-modified/boost/predef/make.h +4 -0
  874. data/src/cxx_supportlib/vendor-modified/boost/predef/os/vms.h +1 -1
  875. data/src/cxx_supportlib/vendor-modified/boost/predef/other/endian.h +1 -0
  876. data/src/cxx_supportlib/vendor-modified/boost/predef/version.h +1 -1
  877. data/src/cxx_supportlib/vendor-modified/boost/preprocessor/variadic/has_opt.hpp +8 -2
  878. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +5 -5
  879. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +15 -15
  880. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +1 -1
  881. data/src/cxx_supportlib/vendor-modified/boost/random/splitmix64.hpp +203 -0
  882. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +14 -14
  883. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +2 -2
  884. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +1 -0
  885. data/src/cxx_supportlib/vendor-modified/boost/ratio/config.hpp +4 -82
  886. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/gcd_lcm.hpp +53 -0
  887. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_evenly_divisible_by.hpp +32 -0
  888. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/is_ratio.hpp +28 -0
  889. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +1 -3
  890. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio.hpp +5 -249
  891. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_fwd.hpp +30 -56
  892. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +0 -533
  893. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/basic_regex_parser.hpp +8 -1
  894. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/icu.hpp +1 -1
  895. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/pattern_except.hpp +3 -2
  896. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/perl_matcher_non_recursive.hpp +1 -0
  897. data/src/cxx_supportlib/vendor-modified/boost/regex/v4/regex_workaround.hpp +7 -7
  898. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_creator.hpp +4 -3
  899. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/basic_regex_parser.hpp +23 -13
  900. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/icu.hpp +10 -10
  901. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/mem_block_cache.hpp +2 -0
  902. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/pattern_except.hpp +3 -2
  903. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_common.hpp +6 -0
  904. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/perl_matcher_non_recursive.hpp +3 -1
  905. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/regex_workaround.hpp +7 -7
  906. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/w32_regex_traits.hpp +235 -104
  907. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/allocate_shared_array.hpp +37 -43
  908. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/bad_weak_ptr.hpp +1 -23
  909. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/atomic_count.hpp +1 -0
  910. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/deprecated_macros.hpp +52 -0
  911. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_counted_base.hpp +14 -18
  912. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/local_sp_deleter.hpp +7 -15
  913. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/shared_count.hpp +40 -91
  914. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_convertible.hpp +0 -16
  915. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base.hpp +1 -0
  916. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_cw_ppc.hpp +4 -2
  917. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_gcc_atomic.hpp +1 -1
  918. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_nt.hpp +13 -14
  919. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_base_std_atomic.hpp +16 -17
  920. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_counted_impl.hpp +17 -56
  921. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_has_gcc_intrinsics.hpp +4 -1
  922. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_noexcept.hpp +5 -14
  923. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_type_traits.hpp +55 -0
  924. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock.hpp +1 -0
  925. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_gcc_atomic.hpp +11 -2
  926. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/spinlock_std_atomic.hpp +5 -6
  927. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/yield_k.hpp +4 -6
  928. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/enable_shared_from_this.hpp +7 -9
  929. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ptr.hpp +32 -119
  930. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/intrusive_ref_counter.hpp +17 -18
  931. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared.hpp +2 -5
  932. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_array.hpp +10 -8
  933. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_shared_object.hpp +28 -564
  934. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/make_unique.hpp +64 -0
  935. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_array.hpp +17 -20
  936. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/scoped_ptr.hpp +20 -21
  937. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_array.hpp +34 -66
  938. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/shared_ptr.hpp +79 -370
  939. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/weak_ptr.hpp +31 -88
  940. data/src/cxx_supportlib/vendor-modified/boost/static_assert.hpp +2 -1
  941. data/src/cxx_supportlib/vendor-modified/boost/system/detail/append_int.hpp +32 -0
  942. data/src/cxx_supportlib/vendor-modified/boost/system/detail/config.hpp +26 -8
  943. data/src/cxx_supportlib/vendor-modified/boost/system/detail/enable_if.hpp +3 -12
  944. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category.hpp +38 -50
  945. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_category_impl.hpp +76 -49
  946. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_code.hpp +261 -159
  947. data/src/cxx_supportlib/vendor-modified/boost/system/detail/error_condition.hpp +145 -58
  948. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category.hpp +7 -7
  949. data/src/cxx_supportlib/vendor-modified/boost/system/detail/generic_category_message.hpp +17 -5
  950. data/src/cxx_supportlib/vendor-modified/boost/system/detail/interop_category.hpp +7 -7
  951. data/src/cxx_supportlib/vendor-modified/boost/system/detail/is_same.hpp +3 -13
  952. data/src/cxx_supportlib/vendor-modified/boost/system/detail/mutex.hpp +128 -0
  953. data/src/cxx_supportlib/vendor-modified/boost/system/detail/snprintf.hpp +1 -43
  954. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category.hpp +20 -77
  955. data/src/cxx_supportlib/vendor-modified/boost/system/detail/std_category_impl.hpp +97 -0
  956. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category.hpp +7 -7
  957. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_impl.hpp +8 -20
  958. data/src/cxx_supportlib/vendor-modified/boost/system/detail/system_category_message.hpp +71 -0
  959. data/src/cxx_supportlib/vendor-modified/boost/system/errc.hpp +9 -2
  960. data/src/cxx_supportlib/vendor-modified/boost/system/system_error.hpp +30 -59
  961. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/deque.hpp +1 -24
  962. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/functional.hpp +1 -14
  963. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/list.hpp +1 -14
  964. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_arg.hpp +2 -12
  965. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/allocator_traits.hpp +0 -11
  966. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/config.hpp +0 -2
  967. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/default_delete.hpp +0 -16
  968. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/pointer_traits.hpp +0 -11
  969. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/scoped_allocator.hpp +0 -11
  970. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/shared_ptr.hpp +0 -19
  971. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/memory/unique_ptr.hpp +4 -6
  972. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/queue.hpp +2 -26
  973. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/tuple.hpp +1 -18
  974. data/src/cxx_supportlib/vendor-modified/boost/thread/csbl/vector.hpp +1 -14
  975. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/invoke.hpp +11 -4
  976. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_to_unsigned.hpp +55 -0
  977. data/src/cxx_supportlib/vendor-modified/boost/thread/detail/string_trim.hpp +29 -0
  978. data/src/cxx_supportlib/vendor-modified/boost/thread/externally_locked.hpp +5 -5
  979. data/src/cxx_supportlib/vendor-modified/boost/thread/future.hpp +0 -1
  980. data/src/cxx_supportlib/vendor-modified/boost/thread/futures/wait_for_any.hpp +3 -2
  981. data/src/cxx_supportlib/vendor-modified/boost/thread/pthread/thread_data.hpp +1 -1
  982. data/src/cxx_supportlib/vendor-modified/boost/thread/scoped_thread.hpp +9 -0
  983. data/src/cxx_supportlib/vendor-modified/boost/thread/synchronized_value.hpp +4 -4
  984. data/src/cxx_supportlib/vendor-modified/boost/thread/thread_guard.hpp +5 -0
  985. data/src/cxx_supportlib/vendor-modified/boost/throw_exception.hpp +104 -6
  986. data/src/cxx_supportlib/vendor-modified/boost/token_functions.hpp +2 -2
  987. data/src/cxx_supportlib/vendor-modified/boost/tuple/detail/tuple_basic.hpp +25 -24
  988. data/src/cxx_supportlib/vendor-modified/boost/tuple/tuple.hpp +1 -1
  989. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/config.hpp +4 -1
  990. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_function_ptr_helper.hpp +27 -27
  991. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_mem_fun_pointer_impl.hpp +27 -27
  992. data/src/cxx_supportlib/vendor-modified/boost/type_traits/detail/is_swappable_cxx_11.hpp +70 -0
  993. data/src/cxx_supportlib/vendor-modified/boost/type_traits/intrinsics.hpp +22 -8
  994. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_complete.hpp +2 -1
  995. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_floating_point.hpp +22 -0
  996. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_function.hpp +1 -1
  997. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_integral.hpp +3 -0
  998. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_member_function_pointer.hpp +1 -1
  999. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_nothrow_swappable.hpp +4 -24
  1000. data/src/cxx_supportlib/vendor-modified/boost/type_traits/is_swappable.hpp +92 -0
  1001. data/src/cxx_supportlib/vendor-modified/boost/typeof/decltype.hpp +2 -3
  1002. data/src/cxx_supportlib/vendor-modified/boost/typeof/incr_registration_group.hpp +1 -10
  1003. data/src/cxx_supportlib/vendor-modified/boost/typeof/msvc/typeof_impl.hpp +5 -6
  1004. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/bitset.hpp +2 -4
  1005. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/complex.hpp +2 -4
  1006. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/deque.hpp +2 -5
  1007. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/fstream.hpp +2 -15
  1008. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/functional.hpp +4 -51
  1009. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iostream.hpp +2 -6
  1010. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/istream.hpp +2 -9
  1011. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/iterator.hpp +2 -46
  1012. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/list.hpp +2 -5
  1013. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/locale.hpp +2 -29
  1014. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/map.hpp +2 -9
  1015. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/memory.hpp +4 -9
  1016. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/ostream.hpp +2 -6
  1017. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/queue.hpp +2 -5
  1018. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/set.hpp +2 -9
  1019. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/sstream.hpp +2 -19
  1020. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/stack.hpp +2 -5
  1021. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/streambuf.hpp +2 -5
  1022. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/string.hpp +2 -12
  1023. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/utility.hpp +2 -4
  1024. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/valarray.hpp +2 -10
  1025. data/src/cxx_supportlib/vendor-modified/boost/typeof/std/vector.hpp +2 -5
  1026. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof.hpp +8 -202
  1027. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map.hpp +1055 -0
  1028. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_map_fwd.hpp +66 -0
  1029. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set.hpp +917 -0
  1030. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_flat_set_fwd.hpp +67 -0
  1031. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map.hpp +1202 -0
  1032. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_map_fwd.hpp +67 -0
  1033. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set.hpp +1065 -0
  1034. data/src/cxx_supportlib/vendor-modified/boost/unordered/concurrent_node_set_fwd.hpp +67 -0
  1035. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/allocator_constructed.hpp +59 -0
  1036. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/archive_constructed.hpp +71 -0
  1037. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/bad_archive_exception.hpp +27 -0
  1038. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/concurrent_static_asserts.hpp +127 -0
  1039. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fca.hpp +900 -0
  1040. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/concurrent_table.hpp +1993 -0
  1041. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/core.hpp +2404 -0
  1042. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/cumulative_stats.hpp +177 -0
  1043. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/element_type.hpp +64 -0
  1044. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_map_types.hpp +94 -0
  1045. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/flat_set_types.hpp +50 -0
  1046. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/ignore_wshadow.hpp +35 -0
  1047. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_handle.hpp +319 -0
  1048. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_handle.hpp +56 -0
  1049. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_map_types.hpp +150 -0
  1050. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_handle.hpp +48 -0
  1051. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/node_set_types.hpp +101 -0
  1052. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/reentrancy_check.hpp +138 -0
  1053. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/restore_wshadow.hpp +11 -0
  1054. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/rw_spinlock.hpp +179 -0
  1055. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/table.hpp +661 -0
  1056. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/tuple_rotate_right.hpp +53 -0
  1057. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/foa/types_constructibility.hpp +172 -0
  1058. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/implementation.hpp +1463 -3502
  1059. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/map.hpp +10 -31
  1060. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/mulx.hpp +129 -0
  1061. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/narrow_cast.hpp +44 -0
  1062. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/opt_storage.hpp +30 -0
  1063. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/prime_fmod.hpp +214 -0
  1064. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialization_version.hpp +74 -0
  1065. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_container.hpp +204 -0
  1066. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_fca_container.hpp +156 -0
  1067. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/serialize_tracked_address.hpp +104 -0
  1068. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/set.hpp +8 -30
  1069. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/static_assert.hpp +16 -0
  1070. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/throw_exception.hpp +30 -0
  1071. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/type_traits.hpp +237 -0
  1072. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/xmx.hpp +75 -0
  1073. data/src/cxx_supportlib/vendor-modified/boost/unordered/hash_traits.hpp +70 -0
  1074. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map.hpp +821 -0
  1075. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_map_fwd.hpp +59 -0
  1076. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set.hpp +631 -0
  1077. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_flat_set_fwd.hpp +58 -0
  1078. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map.hpp +760 -994
  1079. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_map_fwd.hpp +35 -13
  1080. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map.hpp +895 -0
  1081. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_map_fwd.hpp +59 -0
  1082. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set.hpp +707 -0
  1083. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_node_set_fwd.hpp +58 -0
  1084. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_printers.hpp +414 -0
  1085. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set.hpp +539 -664
  1086. data/src/cxx_supportlib/vendor-modified/boost/unordered/unordered_set_fwd.hpp +35 -15
  1087. data/src/cxx_supportlib/vendor-modified/boost/utility/base_from_member.hpp +2 -1
  1088. data/src/cxx_supportlib/vendor-modified/boost/utility/binary.hpp +3 -2
  1089. data/src/cxx_supportlib/vendor-modified/boost/utility/detail/minstd_rand.hpp +1 -43
  1090. data/src/cxx_supportlib/vendor-modified/boost/utility/in_place_factory.hpp +6 -0
  1091. data/src/cxx_supportlib/vendor-modified/boost/utility/result_of.hpp +13 -2
  1092. data/src/cxx_supportlib/vendor-modified/boost/utility/string_ref.hpp +6 -2
  1093. data/src/cxx_supportlib/vendor-modified/boost/utility/string_view.hpp +24 -3
  1094. data/src/cxx_supportlib/vendor-modified/boost/utility/swap.hpp +4 -1
  1095. data/src/cxx_supportlib/vendor-modified/boost/utility/typed_in_place_factory.hpp +6 -1
  1096. data/src/cxx_supportlib/vendor-modified/boost/utility/value_init.hpp +12 -8
  1097. data/src/cxx_supportlib/vendor-modified/boost/version.hpp +2 -2
  1098. data/src/cxx_supportlib/vendor-modified/jsoncpp/jsoncpp.cpp +2 -9
  1099. data/src/cxx_supportlib/vendor-modified/modp_b64_strict_aliasing.cpp +3 -3
  1100. data/src/helper-scripts/backtrace-sanitizer.rb +2 -2
  1101. data/src/helper-scripts/crash-watch.rb +1 -1
  1102. data/src/helper-scripts/download_binaries/extconf.rb +2 -2
  1103. data/src/helper-scripts/meteor-loader.rb +9 -4
  1104. data/src/helper-scripts/node-loader.js +2 -2
  1105. data/src/helper-scripts/prespawn +2 -2
  1106. data/src/helper-scripts/rack-loader.rb +2 -2
  1107. data/src/helper-scripts/rack-preloader.rb +2 -2
  1108. data/src/helper-scripts/wsgi-loader.py +36 -19
  1109. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c +26 -34
  1110. data/src/nginx_module/ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder +2 -2
  1111. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +14 -2
  1112. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +2 -2
  1113. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +38 -50
  1114. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +2 -2
  1115. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +2 -2
  1116. data/src/nginx_module/Configuration.c +8 -3
  1117. data/src/nginx_module/Configuration.h +1 -1
  1118. data/src/nginx_module/ContentHandler.c +1 -1
  1119. data/src/nginx_module/ContentHandler.h +1 -1
  1120. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +13 -2
  1121. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  1122. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c +38 -2
  1123. data/src/nginx_module/LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder +2 -2
  1124. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +29 -2
  1125. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  1126. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c +8 -2
  1127. data/src/nginx_module/LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder +2 -2
  1128. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +10 -2
  1129. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  1130. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +7 -26
  1131. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +2 -2
  1132. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +13 -50
  1133. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +2 -2
  1134. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +6 -18
  1135. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +2 -2
  1136. data/src/nginx_module/StaticContentHandler.c +1 -1
  1137. data/src/nginx_module/StaticContentHandler.h +1 -1
  1138. data/src/nginx_module/ngx_http_passenger_module.c +2 -6
  1139. data/src/nginx_module/ngx_http_passenger_module.h +1 -1
  1140. data/src/nodejs_supportlib/phusion_passenger/line_reader.js +2 -2
  1141. data/src/ruby_native_extension/extconf.rb +3 -3
  1142. data/src/ruby_native_extension/passenger_native_support.c +22 -5
  1143. data/src/ruby_supportlib/phusion_passenger/abstract_installer.rb +2 -2
  1144. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance.rb +2 -2
  1145. data/src/ruby_supportlib/phusion_passenger/admin_tools/instance_registry.rb +2 -2
  1146. data/src/ruby_supportlib/phusion_passenger/admin_tools/memory_stats.rb +2 -2
  1147. data/src/ruby_supportlib/phusion_passenger/admin_tools.rb +2 -2
  1148. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +22 -26
  1149. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +2 -2
  1150. data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -10
  1151. data/src/ruby_supportlib/phusion_passenger/config/about_command.rb +2 -2
  1152. data/src/ruby_supportlib/phusion_passenger/config/agent_compiler.rb +2 -2
  1153. data/src/ruby_supportlib/phusion_passenger/config/api_call_command.rb +2 -2
  1154. data/src/ruby_supportlib/phusion_passenger/config/build_native_support_command.rb +2 -2
  1155. data/src/ruby_supportlib/phusion_passenger/config/command.rb +2 -2
  1156. data/src/ruby_supportlib/phusion_passenger/config/compile_agent_command.rb +2 -2
  1157. data/src/ruby_supportlib/phusion_passenger/config/compile_nginx_engine_command.rb +8 -4
  1158. data/src/ruby_supportlib/phusion_passenger/config/detach_process_command.rb +2 -2
  1159. data/src/ruby_supportlib/phusion_passenger/config/download_agent_command.rb +2 -2
  1160. data/src/ruby_supportlib/phusion_passenger/config/download_nginx_engine_command.rb +2 -2
  1161. data/src/ruby_supportlib/phusion_passenger/config/install_agent_command.rb +2 -2
  1162. data/src/ruby_supportlib/phusion_passenger/config/install_standalone_runtime_command.rb +12 -2
  1163. data/src/ruby_supportlib/phusion_passenger/config/installation_utils.rb +2 -2
  1164. data/src/ruby_supportlib/phusion_passenger/config/list_instances_command.rb +2 -2
  1165. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -2
  1166. data/src/ruby_supportlib/phusion_passenger/config/nginx_engine_compiler.rb +15 -7
  1167. data/src/ruby_supportlib/phusion_passenger/config/reopen_logs_command.rb +2 -2
  1168. data/src/ruby_supportlib/phusion_passenger/config/restart_app_command.rb +2 -2
  1169. data/src/ruby_supportlib/phusion_passenger/config/system_metrics_command.rb +2 -2
  1170. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +2 -2
  1171. data/src/ruby_supportlib/phusion_passenger/config/utils.rb +2 -2
  1172. data/src/ruby_supportlib/phusion_passenger/config/validate_install_command.rb +2 -2
  1173. data/src/ruby_supportlib/phusion_passenger/console_text_template.rb +2 -2
  1174. data/src/ruby_supportlib/phusion_passenger/constants.rb +3 -2
  1175. data/src/ruby_supportlib/phusion_passenger/debug_logging.rb +2 -2
  1176. data/src/ruby_supportlib/phusion_passenger/loader_shared_helpers.rb +15 -5
  1177. data/src/ruby_supportlib/phusion_passenger/message_channel.rb +2 -2
  1178. data/src/ruby_supportlib/phusion_passenger/message_client.rb +2 -2
  1179. data/src/ruby_supportlib/phusion_passenger/native_support.rb +12 -7
  1180. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +21 -30
  1181. data/src/ruby_supportlib/phusion_passenger/packaging.rb +3 -2
  1182. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -12
  1183. data/src/ruby_supportlib/phusion_passenger/platform_info/apache_detector.rb +2 -2
  1184. data/src/ruby_supportlib/phusion_passenger/platform_info/binary_compatibility.rb +3 -3
  1185. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +56 -14
  1186. data/src/ruby_supportlib/phusion_passenger/platform_info/crypto.rb +2 -2
  1187. data/src/ruby_supportlib/phusion_passenger/platform_info/curl.rb +2 -2
  1188. data/src/ruby_supportlib/phusion_passenger/platform_info/cxx_portability.rb +9 -31
  1189. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/gems.rb +10 -0
  1190. data/src/ruby_supportlib/phusion_passenger/platform_info/depcheck_specs/libs.rb +6 -6
  1191. data/src/ruby_supportlib/phusion_passenger/platform_info/linux.rb +2 -2
  1192. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +2 -2
  1193. data/src/ruby_supportlib/phusion_passenger/platform_info/openssl.rb +2 -2
  1194. data/src/ruby_supportlib/phusion_passenger/platform_info/operating_system.rb +7 -37
  1195. data/src/ruby_supportlib/phusion_passenger/platform_info/pcre.rb +13 -14
  1196. data/src/ruby_supportlib/phusion_passenger/platform_info/ruby.rb +4 -4
  1197. data/src/ruby_supportlib/phusion_passenger/platform_info/zlib.rb +2 -2
  1198. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +2 -2
  1199. data/src/ruby_supportlib/phusion_passenger/plugin.rb +2 -2
  1200. data/src/ruby_supportlib/phusion_passenger/preloader_shared_helpers.rb +14 -8
  1201. data/src/ruby_supportlib/phusion_passenger/public_api.rb +5 -2
  1202. data/src/ruby_supportlib/phusion_passenger/rack/handler.rb +73 -0
  1203. data/src/ruby_supportlib/phusion_passenger/rack/out_of_band_gc.rb +2 -2
  1204. data/src/ruby_supportlib/phusion_passenger/rack/thread_handler_extension.rb +14 -3
  1205. data/src/ruby_supportlib/phusion_passenger/rack_handler.rb +32 -58
  1206. data/src/ruby_supportlib/phusion_passenger/request_handler/thread_handler.rb +2 -2
  1207. data/src/ruby_supportlib/phusion_passenger/request_handler.rb +2 -2
  1208. data/src/ruby_supportlib/phusion_passenger/ruby_core_enhancements.rb +7 -2
  1209. data/src/ruby_supportlib/phusion_passenger/ruby_core_io_enhancements.rb +2 -2
  1210. data/src/ruby_supportlib/phusion_passenger/simple_benchmarking.rb +2 -2
  1211. data/src/ruby_supportlib/phusion_passenger/standalone/app_finder.rb +2 -2
  1212. data/src/ruby_supportlib/phusion_passenger/standalone/command.rb +2 -2
  1213. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +27 -23
  1214. data/src/ruby_supportlib/phusion_passenger/standalone/config_utils.rb +2 -2
  1215. data/src/ruby_supportlib/phusion_passenger/standalone/control_utils.rb +2 -2
  1216. data/src/ruby_supportlib/phusion_passenger/standalone/main.rb +2 -2
  1217. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +6 -3
  1218. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/nginx_engine.rb +3 -3
  1219. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +2 -6
  1220. data/src/ruby_supportlib/phusion_passenger/standalone/status_command.rb +3 -4
  1221. data/src/ruby_supportlib/phusion_passenger/standalone/stop_command.rb +9 -3
  1222. data/src/ruby_supportlib/phusion_passenger/standalone/version_command.rb +2 -2
  1223. data/src/ruby_supportlib/phusion_passenger/utils/ansi_colors.rb +2 -2
  1224. data/src/ruby_supportlib/phusion_passenger/utils/download.rb +2 -2
  1225. data/src/ruby_supportlib/phusion_passenger/utils/file_system_watcher.rb +2 -2
  1226. data/src/ruby_supportlib/phusion_passenger/utils/hosts_file_parser.rb +2 -2
  1227. data/src/ruby_supportlib/phusion_passenger/utils/json.rb +7 -198
  1228. data/src/ruby_supportlib/phusion_passenger/utils/lock.rb +2 -2
  1229. data/src/ruby_supportlib/phusion_passenger/utils/native_support_utils.rb +2 -2
  1230. data/src/ruby_supportlib/phusion_passenger/utils/progress_bar.rb +2 -2
  1231. data/src/ruby_supportlib/phusion_passenger/utils/strscan.rb +67 -0
  1232. data/src/ruby_supportlib/phusion_passenger/utils/terminal_choice_menu.rb +2 -2
  1233. data/src/ruby_supportlib/phusion_passenger/utils/unseekable_socket.rb +2 -2
  1234. data/src/ruby_supportlib/phusion_passenger/utils.rb +8 -17
  1235. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/app.rb +2 -2
  1236. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/base.rb +1 -1
  1237. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/gdb_controller.rb +5 -1
  1238. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/lldb_controller.rb +6 -2
  1239. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/utils.rb +1 -1
  1240. data/src/ruby_supportlib/phusion_passenger/vendor/crash_watch/version.rb +1 -1
  1241. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/lock_file.rb +1 -1
  1242. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/spawn.rb +1 -1
  1243. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller/version.rb +1 -1
  1244. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  1245. data/src/ruby_supportlib/phusion_passenger.rb +11 -11
  1246. data/src/schema_printer/SchemaPrinterMain.cpp +2 -6
  1247. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +2 -2
  1248. metadata +211 -741
  1249. data/dev/webpacketpp.patch +0 -39
  1250. data/src/agent/Core/AdminPanelConnector.h +0 -681
  1251. data/src/cxx_supportlib/DataStructures/HashMap.h +0 -60
  1252. data/src/cxx_supportlib/FileTools/LargeFiles.cpp +0 -41
  1253. data/src/cxx_supportlib/ServerKit/http_parser.cpp +0 -2265
  1254. data/src/cxx_supportlib/ServerKit/http_parser.h +0 -330
  1255. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +0 -975
  1256. data/src/cxx_supportlib/vendor-modified/boost/align/align.hpp +0 -19
  1257. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of.hpp +0 -54
  1258. data/src/cxx_supportlib/vendor-modified/boost/align/alignment_of_forward.hpp +0 -20
  1259. data/src/cxx_supportlib/vendor-modified/boost/align/detail/align_cxx11.hpp +0 -21
  1260. data/src/cxx_supportlib/vendor-modified/boost/align/detail/aligned_alloc.hpp +0 -52
  1261. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of.hpp +0 -31
  1262. data/src/cxx_supportlib/vendor-modified/boost/align/detail/alignment_of_cxx11.hpp +0 -23
  1263. data/src/cxx_supportlib/vendor-modified/boost/align/detail/element_type.hpp +0 -91
  1264. data/src/cxx_supportlib/vendor-modified/boost/align/detail/integral_constant.hpp +0 -53
  1265. data/src/cxx_supportlib/vendor-modified/boost/align/detail/min_size.hpp +0 -26
  1266. data/src/cxx_supportlib/vendor-modified/boost/array.hpp +0 -456
  1267. data/src/cxx_supportlib/vendor-modified/boost/asio/any_io_executor.hpp +0 -302
  1268. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_allocator.hpp +0 -179
  1269. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_cancellation_slot.hpp +0 -179
  1270. data/src/cxx_supportlib/vendor-modified/boost/asio/associated_executor.hpp +0 -224
  1271. data/src/cxx_supportlib/vendor-modified/boost/asio/associator.hpp +0 -37
  1272. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +0 -1267
  1273. data/src/cxx_supportlib/vendor-modified/boost/asio/awaitable.hpp +0 -135
  1274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +0 -1305
  1275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +0 -705
  1276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +0 -292
  1277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +0 -1296
  1278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +0 -800
  1279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +0 -909
  1280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +0 -578
  1281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +0 -1917
  1282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +0 -2600
  1283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +0 -409
  1284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +0 -689
  1285. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +0 -1122
  1286. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +0 -454
  1287. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +0 -38
  1288. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +0 -823
  1289. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_cancellation_slot.hpp +0 -723
  1290. data/src/cxx_supportlib/vendor-modified/boost/asio/bind_executor.hpp +0 -756
  1291. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +0 -2500
  1292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +0 -255
  1293. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +0 -27
  1294. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +0 -281
  1295. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +0 -27
  1296. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +0 -247
  1297. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +0 -27
  1298. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +0 -523
  1299. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_signal.hpp +0 -361
  1300. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_state.hpp +0 -237
  1301. data/src/cxx_supportlib/vendor-modified/boost/asio/cancellation_type.hpp +0 -176
  1302. data/src/cxx_supportlib/vendor-modified/boost/asio/co_spawn.hpp +0 -501
  1303. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +0 -220
  1304. data/src/cxx_supportlib/vendor-modified/boost/asio/compose.hpp +0 -138
  1305. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +0 -1138
  1306. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +0 -330
  1307. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +0 -40
  1308. data/src/cxx_supportlib/vendor-modified/boost/asio/defer.hpp +0 -132
  1309. data/src/cxx_supportlib/vendor-modified/boost/asio/detached.hpp +0 -114
  1310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +0 -40
  1311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +0 -34
  1312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +0 -32
  1313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +0 -66
  1314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_cancellation_state.hpp +0 -165
  1315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +0 -71
  1316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +0 -1073
  1317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/blocking_executor_op.hpp +0 -109
  1318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +0 -68
  1319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +0 -652
  1320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +0 -128
  1321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bulk_executor_op.hpp +0 -90
  1322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +0 -127
  1323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono.hpp +0 -68
  1324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +0 -192
  1325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +0 -90
  1326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/concurrency_hint.hpp +0 -94
  1327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_event.hpp +0 -122
  1328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/conditionally_enabled_mutex.hpp +0 -151
  1329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +0 -1938
  1330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +0 -416
  1331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstddef.hpp +0 -33
  1332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +0 -62
  1333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +0 -34
  1334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +0 -337
  1335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +0 -38
  1336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +0 -141
  1337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +0 -150
  1338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +0 -150
  1339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +0 -224
  1340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +0 -278
  1341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +0 -50
  1342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +0 -85
  1343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_function.hpp +0 -206
  1344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/executor_op.hpp +0 -86
  1345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +0 -41
  1346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +0 -82
  1347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/functional.hpp +0 -46
  1348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/future.hpp +0 -33
  1349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +0 -93
  1350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +0 -70
  1351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +0 -67
  1352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +0 -101
  1353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/global.hpp +0 -54
  1354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +0 -290
  1355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +0 -45
  1356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +0 -80
  1357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +0 -268
  1358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +0 -561
  1359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_work.hpp +0 -527
  1360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +0 -333
  1361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +0 -120
  1362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +0 -610
  1363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +0 -101
  1364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +0 -462
  1365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +0 -111
  1366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +0 -819
  1367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +0 -173
  1368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +0 -398
  1369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +0 -115
  1370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +0 -601
  1371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/null_event.ipp +0 -76
  1372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +0 -131
  1373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +0 -65
  1374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +0 -48
  1375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +0 -86
  1376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +0 -48
  1377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +0 -225
  1378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +0 -151
  1379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +0 -302
  1380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +0 -160
  1381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/scheduler.ipp +0 -661
  1382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +0 -126
  1383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +0 -359
  1384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +0 -96
  1385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +0 -199
  1386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +0 -670
  1387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +0 -3966
  1388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +0 -187
  1389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.hpp +0 -356
  1390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_executor_service.ipp +0 -160
  1391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +0 -89
  1392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +0 -204
  1393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/thread_context.ipp +0 -37
  1394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +0 -47
  1395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +0 -99
  1396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +0 -103
  1397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +0 -86
  1398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_object_impl.hpp +0 -174
  1399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_buffer_sequence.hpp +0 -314
  1400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/is_executor.hpp +0 -128
  1401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +0 -72
  1402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +0 -254
  1403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +0 -26
  1404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +0 -61
  1405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +0 -64
  1406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +0 -135
  1407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +0 -50
  1408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/non_const_lvalue.hpp +0 -56
  1409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +0 -45
  1410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +0 -108
  1411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +0 -49
  1412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_global.hpp +0 -61
  1413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +0 -66
  1414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +0 -70
  1415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +0 -71
  1416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +0 -521
  1417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +0 -62
  1418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +0 -69
  1419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +0 -70
  1420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +0 -173
  1421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +0 -216
  1422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +0 -164
  1423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +0 -40
  1424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +0 -91
  1425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +0 -149
  1426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +0 -177
  1427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +0 -120
  1428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_global.hpp +0 -82
  1429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +0 -78
  1430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +0 -87
  1431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +0 -66
  1432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +0 -111
  1433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +0 -81
  1434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +0 -218
  1435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +0 -511
  1436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +0 -100
  1437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +0 -239
  1438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +0 -244
  1439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +0 -125
  1440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +0 -161
  1441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +0 -166
  1442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +0 -147
  1443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +0 -164
  1444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +0 -158
  1445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +0 -607
  1446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +0 -654
  1447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_wait_op.hpp +0 -100
  1448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +0 -32
  1449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +0 -42
  1450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +0 -73
  1451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +0 -214
  1452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/recycling_allocator.hpp +0 -107
  1453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +0 -44
  1454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +0 -142
  1455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +0 -47
  1456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_query_op.hpp +0 -152
  1457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +0 -147
  1458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +0 -160
  1459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler.hpp +0 -231
  1460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_operation.hpp +0 -80
  1461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scheduler_thread_info.hpp +0 -42
  1462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +0 -103
  1463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +0 -89
  1464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +0 -48
  1465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +0 -250
  1466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +0 -166
  1467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +0 -46
  1468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +0 -92
  1469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +0 -49
  1470. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +0 -51
  1471. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +0 -231
  1472. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +0 -100
  1473. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +0 -385
  1474. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +0 -318
  1475. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +0 -93
  1476. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +0 -419
  1477. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +0 -64
  1478. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/source_location.hpp +0 -47
  1479. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +0 -54
  1480. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +0 -190
  1481. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +0 -64
  1482. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_global.hpp +0 -72
  1483. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +0 -75
  1484. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +0 -83
  1485. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +0 -73
  1486. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_executor_service.hpp +0 -175
  1487. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +0 -146
  1488. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/string_view.hpp +0 -49
  1489. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +0 -62
  1490. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_context.hpp +0 -53
  1491. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_group.hpp +0 -101
  1492. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +0 -258
  1493. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +0 -55
  1494. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +0 -53
  1495. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +0 -391
  1496. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +0 -70
  1497. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +0 -105
  1498. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +0 -68
  1499. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +0 -35
  1500. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +0 -42
  1501. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +0 -71
  1502. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +0 -158
  1503. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +0 -294
  1504. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +0 -92
  1505. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +0 -51
  1506. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +0 -130
  1507. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/work_dispatcher.hpp +0 -153
  1508. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +0 -329
  1509. data/src/cxx_supportlib/vendor-modified/boost/asio/dispatch.hpp +0 -123
  1510. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +0 -361
  1511. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/allocator.hpp +0 -339
  1512. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/any_executor.hpp +0 -2348
  1513. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bad_executor.hpp +0 -49
  1514. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking.hpp +0 -1553
  1515. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/blocking_adaptation.hpp +0 -1214
  1516. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_execute.hpp +0 -401
  1517. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/bulk_guarantee.hpp +0 -1217
  1518. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/connect.hpp +0 -493
  1519. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context.hpp +0 -235
  1520. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/context_as.hpp +0 -223
  1521. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_invocable.hpp +0 -154
  1522. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_operation.hpp +0 -107
  1523. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/as_receiver.hpp +0 -130
  1524. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/bulk_sender.hpp +0 -263
  1525. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/submit_receiver.hpp +0 -235
  1526. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/detail/void_receiver.hpp +0 -92
  1527. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/execute.hpp +0 -289
  1528. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/executor.hpp +0 -254
  1529. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/bad_executor.ipp +0 -42
  1530. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/impl/receiver_invocation_error.ipp +0 -38
  1531. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/invocable_archetype.hpp +0 -73
  1532. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/mapping.hpp +0 -1118
  1533. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/occupancy.hpp +0 -228
  1534. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/operation_state.hpp +0 -96
  1535. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/outstanding_work.hpp +0 -869
  1536. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/prefer_only.hpp +0 -333
  1537. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver.hpp +0 -282
  1538. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/receiver_invocation_error.hpp +0 -50
  1539. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/relationship.hpp +0 -867
  1540. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/schedule.hpp +0 -291
  1541. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/scheduler.hpp +0 -88
  1542. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/sender.hpp +0 -313
  1543. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_done.hpp +0 -254
  1544. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_error.hpp +0 -254
  1545. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/set_value.hpp +0 -487
  1546. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/start.hpp +0 -251
  1547. data/src/cxx_supportlib/vendor-modified/boost/asio/execution/submit.hpp +0 -454
  1548. data/src/cxx_supportlib/vendor-modified/boost/asio/execution.hpp +0 -48
  1549. data/src/cxx_supportlib/vendor-modified/boost/asio/execution_context.hpp +0 -414
  1550. data/src/cxx_supportlib/vendor-modified/boost/asio/executor.hpp +0 -349
  1551. data/src/cxx_supportlib/vendor-modified/boost/asio/executor_work_guard.hpp +0 -304
  1552. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/append.hpp +0 -73
  1553. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_single.hpp +0 -137
  1554. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/as_tuple.hpp +0 -133
  1555. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/awaitable_operators.hpp +0 -538
  1556. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/cancellation_condition.hpp +0 -157
  1557. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/coro.hpp +0 -1057
  1558. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/deferred.hpp +0 -607
  1559. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/completion_handler_erasure.hpp +0 -160
  1560. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_promise_allocator.hpp +0 -120
  1561. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/coro_traits.hpp +0 -185
  1562. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/detail/partial_promise.hpp +0 -181
  1563. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/append.hpp +0 -219
  1564. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_single.hpp +0 -231
  1565. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/as_tuple.hpp +0 -248
  1566. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/deferred.hpp +0 -106
  1567. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/parallel_group.hpp +0 -434
  1568. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/prepend.hpp +0 -219
  1569. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/impl/promise.hpp +0 -100
  1570. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/parallel_group.hpp +0 -217
  1571. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/prepend.hpp +0 -73
  1572. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/promise.hpp +0 -608
  1573. data/src/cxx_supportlib/vendor-modified/boost/asio/experimental/use_coro.hpp +0 -284
  1574. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +0 -195
  1575. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +0 -125
  1576. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +0 -135
  1577. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +0 -112
  1578. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +0 -123
  1579. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +0 -124
  1580. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +0 -129
  1581. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +0 -106
  1582. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +0 -56
  1583. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +0 -113
  1584. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +0 -46
  1585. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/awaitable.hpp +0 -762
  1586. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +0 -500
  1587. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +0 -480
  1588. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/co_spawn.hpp +0 -348
  1589. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/compose.hpp +0 -689
  1590. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +0 -906
  1591. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/defer.hpp +0 -258
  1592. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/detached.hpp +0 -132
  1593. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/dispatch.hpp +0 -253
  1594. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +0 -130
  1595. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.hpp +0 -111
  1596. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/execution_context.ipp +0 -84
  1597. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.hpp +0 -302
  1598. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/executor.ipp +0 -45
  1599. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +0 -64
  1600. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.hpp +0 -446
  1601. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_context.ipp +0 -177
  1602. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/multiple_exceptions.ipp +0 -51
  1603. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/post.hpp +0 -258
  1604. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +0 -1201
  1605. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +0 -735
  1606. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +0 -3317
  1607. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/redirect_error.hpp +0 -611
  1608. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +0 -61
  1609. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +0 -556
  1610. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +0 -519
  1611. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +0 -85
  1612. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.hpp +0 -36
  1613. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_context.ipp +0 -94
  1614. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/system_executor.hpp +0 -187
  1615. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.hpp +0 -356
  1616. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/thread_pool.ipp +0 -143
  1617. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_awaitable.hpp +0 -293
  1618. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +0 -1030
  1619. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +0 -1102
  1620. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +0 -646
  1621. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context.hpp +0 -1552
  1622. data/src/cxx_supportlib/vendor-modified/boost/asio/io_context_strand.hpp +0 -378
  1623. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +0 -35
  1624. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service_strand.hpp +0 -20
  1625. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +0 -292
  1626. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +0 -357
  1627. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_iterator.hpp +0 -164
  1628. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4_range.hpp +0 -136
  1629. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +0 -384
  1630. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_iterator.hpp +0 -185
  1631. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6_range.hpp +0 -131
  1632. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/bad_address_cast.hpp +0 -55
  1633. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +0 -293
  1634. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +0 -1078
  1635. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +0 -115
  1636. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +0 -194
  1637. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +0 -246
  1638. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_results.hpp +0 -313
  1639. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +0 -143
  1640. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +0 -201
  1641. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +0 -568
  1642. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +0 -44
  1643. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +0 -117
  1644. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +0 -69
  1645. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +0 -241
  1646. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +0 -69
  1647. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +0 -212
  1648. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +0 -69
  1649. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +0 -352
  1650. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +0 -45
  1651. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +0 -56
  1652. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.hpp +0 -56
  1653. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v4.ipp +0 -218
  1654. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.hpp +0 -55
  1655. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/network_v6.ipp +0 -187
  1656. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +0 -193
  1657. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v4.hpp +0 -263
  1658. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/network_v6.hpp +0 -237
  1659. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_base.hpp +0 -131
  1660. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +0 -45
  1661. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +0 -157
  1662. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +0 -113
  1663. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +0 -72
  1664. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +0 -71
  1665. data/src/cxx_supportlib/vendor-modified/boost/asio/is_applicable_property.hpp +0 -63
  1666. data/src/cxx_supportlib/vendor-modified/boost/asio/is_executor.hpp +0 -48
  1667. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +0 -61
  1668. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +0 -61
  1669. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +0 -249
  1670. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +0 -103
  1671. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +0 -82
  1672. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +0 -141
  1673. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +0 -133
  1674. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +0 -92
  1675. data/src/cxx_supportlib/vendor-modified/boost/asio/multiple_exceptions.hpp +0 -60
  1676. data/src/cxx_supportlib/vendor-modified/boost/asio/packaged_task.hpp +0 -128
  1677. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +0 -153
  1678. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +0 -710
  1679. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +0 -503
  1680. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor.hpp +0 -39
  1681. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +0 -92
  1682. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +0 -39
  1683. data/src/cxx_supportlib/vendor-modified/boost/asio/post.hpp +0 -128
  1684. data/src/cxx_supportlib/vendor-modified/boost/asio/prefer.hpp +0 -738
  1685. data/src/cxx_supportlib/vendor-modified/boost/asio/query.hpp +0 -328
  1686. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +0 -1390
  1687. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +0 -740
  1688. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +0 -3033
  1689. data/src/cxx_supportlib/vendor-modified/boost/asio/redirect_error.hpp +0 -68
  1690. data/src/cxx_supportlib/vendor-modified/boost/asio/require.hpp +0 -575
  1691. data/src/cxx_supportlib/vendor-modified/boost/asio/require_concept.hpp +0 -356
  1692. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +0 -38
  1693. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +0 -169
  1694. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +0 -30
  1695. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +0 -561
  1696. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +0 -346
  1697. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +0 -763
  1698. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +0 -211
  1699. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +0 -121
  1700. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +0 -172
  1701. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +0 -69
  1702. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +0 -365
  1703. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +0 -167
  1704. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +0 -427
  1705. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +0 -103
  1706. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +0 -34
  1707. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +0 -68
  1708. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +0 -74
  1709. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +0 -71
  1710. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +0 -208
  1711. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +0 -64
  1712. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +0 -78
  1713. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +0 -129
  1714. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/host_name_verification.hpp +0 -92
  1715. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +0 -69
  1716. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +0 -1247
  1717. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +0 -104
  1718. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/host_name_verification.ipp +0 -75
  1719. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +0 -166
  1720. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +0 -29
  1721. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +0 -100
  1722. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +0 -974
  1723. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +0 -54
  1724. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +0 -69
  1725. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +0 -65
  1726. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +0 -28
  1727. data/src/cxx_supportlib/vendor-modified/boost/asio/static_thread_pool.hpp +0 -33
  1728. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +0 -44
  1729. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +0 -571
  1730. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +0 -35
  1731. data/src/cxx_supportlib/vendor-modified/boost/asio/system_context.hpp +0 -92
  1732. data/src/cxx_supportlib/vendor-modified/boost/asio/system_executor.hpp +0 -686
  1733. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +0 -44
  1734. data/src/cxx_supportlib/vendor-modified/boost/asio/this_coro.hpp +0 -282
  1735. data/src/cxx_supportlib/vendor-modified/boost/asio/thread_pool.hpp +0 -1133
  1736. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +0 -88
  1737. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_free.hpp +0 -116
  1738. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/bulk_execute_member.hpp +0 -116
  1739. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_free.hpp +0 -114
  1740. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/connect_member.hpp +0 -114
  1741. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/equality_comparable.hpp +0 -106
  1742. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_free.hpp +0 -110
  1743. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/execute_member.hpp +0 -110
  1744. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_free.hpp +0 -110
  1745. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/prefer_member.hpp +0 -110
  1746. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_free.hpp +0 -110
  1747. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_member.hpp +0 -110
  1748. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/query_static_constexpr_member.hpp +0 -110
  1749. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_free.hpp +0 -110
  1750. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_concept_member.hpp +0 -110
  1751. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_free.hpp +0 -110
  1752. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/require_member.hpp +0 -110
  1753. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_free.hpp +0 -110
  1754. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/schedule_member.hpp +0 -110
  1755. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_free.hpp +0 -110
  1756. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_done_member.hpp +0 -110
  1757. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_free.hpp +0 -114
  1758. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_error_member.hpp +0 -114
  1759. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_free.hpp +0 -236
  1760. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/set_value_member.hpp +0 -236
  1761. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_free.hpp +0 -110
  1762. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/start_member.hpp +0 -110
  1763. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_query.hpp +0 -110
  1764. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require.hpp +0 -125
  1765. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/static_require_concept.hpp +0 -126
  1766. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_free.hpp +0 -114
  1767. data/src/cxx_supportlib/vendor-modified/boost/asio/traits/submit_member.hpp +0 -114
  1768. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/buffer.hpp +0 -24
  1769. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/executor.hpp +0 -35
  1770. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/internet.hpp +0 -40
  1771. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/io_context.hpp +0 -20
  1772. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/net.hpp +0 -26
  1773. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/netfwd.hpp +0 -256
  1774. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/socket.hpp +0 -27
  1775. data/src/cxx_supportlib/vendor-modified/boost/asio/ts/timer.hpp +0 -26
  1776. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +0 -21
  1777. data/src/cxx_supportlib/vendor-modified/boost/asio/use_awaitable.hpp +0 -168
  1778. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +0 -162
  1779. data/src/cxx_supportlib/vendor-modified/boost/asio/uses_executor.hpp +0 -73
  1780. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +0 -23
  1781. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +0 -58
  1782. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +0 -437
  1783. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_overlapped_handle.hpp +0 -363
  1784. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +0 -512
  1785. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +0 -496
  1786. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +0 -40
  1787. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_handle.hpp +0 -41
  1788. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +0 -147
  1789. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +0 -39
  1790. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +0 -39
  1791. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +0 -1348
  1792. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +0 -748
  1793. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +0 -23
  1794. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +0 -187
  1795. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/core_ops_windows.hpp +0 -201
  1796. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/fence_ops_windows.hpp +0 -67
  1797. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_caps_windows.hpp +0 -55
  1798. data/src/cxx_supportlib/vendor-modified/boost/atomic/detail/wait_ops_windows.hpp +0 -150
  1799. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf2_cc.hpp +0 -228
  1800. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_mf_cc.hpp +0 -441
  1801. data/src/cxx_supportlib/vendor-modified/boost/bind/bind_template.hpp +0 -345
  1802. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_cc.hpp +0 -103
  1803. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_template.hpp +0 -1047
  1804. data/src/cxx_supportlib/vendor-modified/boost/bind/mem_fn_vw.hpp +0 -130
  1805. data/src/cxx_supportlib/vendor-modified/boost/bind/storage.hpp +0 -475
  1806. data/src/cxx_supportlib/vendor-modified/boost/checked_delete.hpp +0 -17
  1807. data/src/cxx_supportlib/vendor-modified/boost/config/platform/cygwin.hpp +0 -71
  1808. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/float_functions.hpp +0 -336
  1809. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/hash_float.hpp +0 -271
  1810. data/src/cxx_supportlib/vendor-modified/boost/container_hash/detail/limits.hpp +0 -62
  1811. data/src/cxx_supportlib/vendor-modified/boost/container_hash/extensions.hpp +0 -361
  1812. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +0 -21
  1813. data/src/cxx_supportlib/vendor-modified/boost/detail/container_fwd.hpp +0 -157
  1814. data/src/cxx_supportlib/vendor-modified/boost/function/detail/function_iterate.hpp +0 -16
  1815. data/src/cxx_supportlib/vendor-modified/boost/function/detail/gen_maybe_include.pl +0 -39
  1816. data/src/cxx_supportlib/vendor-modified/boost/function/detail/maybe_include.hpp +0 -369
  1817. data/src/cxx_supportlib/vendor-modified/boost/function/detail/prologue.hpp +0 -26
  1818. data/src/cxx_supportlib/vendor-modified/boost/function/gen_function_N.pl +0 -26
  1819. data/src/cxx_supportlib/vendor-modified/boost/functional/hash_fwd.hpp +0 -6
  1820. data/src/cxx_supportlib/vendor-modified/boost/optional/detail/old_optional_implementation.hpp +0 -1058
  1821. data/src/cxx_supportlib/vendor-modified/boost/pointer_to_other.hpp +0 -55
  1822. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/abs.hpp +0 -89
  1823. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/gcd.hpp +0 -124
  1824. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/lcm.hpp +0 -126
  1825. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/mpl/sign.hpp +0 -89
  1826. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/overflow_helpers.hpp +0 -367
  1827. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +0 -1342
  1828. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +0 -30
  1829. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +0 -22
  1830. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +0 -19
  1831. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +0 -30
  1832. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +0 -30
  1833. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +0 -30
  1834. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +0 -30
  1835. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +0 -30
  1836. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +0 -30
  1837. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +0 -30
  1838. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +0 -30
  1839. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +0 -30
  1840. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +0 -30
  1841. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +0 -30
  1842. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +0 -31
  1843. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +0 -30
  1844. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +0 -25
  1845. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +0 -15
  1846. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +0 -30
  1847. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +0 -30
  1848. data/src/cxx_supportlib/vendor-modified/boost/regex/v5/indexed_bit_flag.hpp +0 -54
  1849. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/operator_bool.hpp +0 -64
  1850. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_forward.hpp +0 -52
  1851. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_nullptr_t.hpp +0 -45
  1852. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_obsolete.hpp +0 -32
  1853. data/src/cxx_supportlib/vendor-modified/boost/smart_ptr/detail/sp_thread_pause.hpp +0 -51
  1854. data/src/cxx_supportlib/vendor-modified/boost/swap.hpp +0 -17
  1855. data/src/cxx_supportlib/vendor-modified/boost/type_index/stl_type_index.hpp +0 -278
  1856. data/src/cxx_supportlib/vendor-modified/boost/type_index/type_index_facade.hpp +0 -297
  1857. data/src/cxx_supportlib/vendor-modified/boost/type_index.hpp +0 -265
  1858. data/src/cxx_supportlib/vendor-modified/boost/typeof/dmc/typeof_impl.hpp +0 -100
  1859. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode.hpp +0 -58
  1860. data/src/cxx_supportlib/vendor-modified/boost/typeof/encode_decode_params.hpp +0 -34
  1861. data/src/cxx_supportlib/vendor-modified/boost/typeof/int_encoding.hpp +0 -118
  1862. data/src/cxx_supportlib/vendor-modified/boost/typeof/integral_template_param.hpp +0 -80
  1863. data/src/cxx_supportlib/vendor-modified/boost/typeof/message.hpp +0 -8
  1864. data/src/cxx_supportlib/vendor-modified/boost/typeof/modifiers.hpp +0 -121
  1865. data/src/cxx_supportlib/vendor-modified/boost/typeof/native.hpp +0 -60
  1866. data/src/cxx_supportlib/vendor-modified/boost/typeof/pointers_data_members.hpp +0 -38
  1867. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions.hpp +0 -50
  1868. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_functions_iterate.hpp +0 -135
  1869. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_fundamental.hpp +0 -61
  1870. data/src/cxx_supportlib/vendor-modified/boost/typeof/register_mem_functions.hpp +0 -32
  1871. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_encoding.hpp +0 -160
  1872. data/src/cxx_supportlib/vendor-modified/boost/typeof/template_template_param.hpp +0 -149
  1873. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_encoding.hpp +0 -27
  1874. data/src/cxx_supportlib/vendor-modified/boost/typeof/type_template_param.hpp +0 -37
  1875. data/src/cxx_supportlib/vendor-modified/boost/typeof/typeof_impl.hpp +0 -187
  1876. data/src/cxx_supportlib/vendor-modified/boost/typeof/unsupported.hpp +0 -29
  1877. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector.hpp +0 -166
  1878. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector100.hpp +0 -321
  1879. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector150.hpp +0 -471
  1880. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector200.hpp +0 -621
  1881. data/src/cxx_supportlib/vendor-modified/boost/typeof/vector50.hpp +0 -171
  1882. data/src/cxx_supportlib/vendor-modified/boost/unordered/detail/fwd.hpp +0 -63
  1883. data/src/cxx_supportlib/vendor-modified/websocketpp/COPYING +0 -145
  1884. data/src/cxx_supportlib/vendor-modified/websocketpp/changelog.md +0 -444
  1885. data/src/cxx_supportlib/vendor-modified/websocketpp/readme.md +0 -49
  1886. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/base64/base64.hpp +0 -178
  1887. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/client.hpp +0 -33
  1888. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/close.hpp +0 -353
  1889. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio.hpp +0 -141
  1890. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/asio_ssl.hpp +0 -39
  1891. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/chrono.hpp +0 -68
  1892. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/connection_hdl.hpp +0 -52
  1893. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/cpp11.hpp +0 -162
  1894. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/functional.hpp +0 -100
  1895. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/md5.hpp +0 -448
  1896. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/memory.hpp +0 -88
  1897. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/network.hpp +0 -106
  1898. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/platforms.hpp +0 -46
  1899. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/random.hpp +0 -82
  1900. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/regex.hpp +0 -59
  1901. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/stdint.hpp +0 -73
  1902. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/system_error.hpp +0 -84
  1903. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/thread.hpp +0 -88
  1904. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/time.hpp +0 -56
  1905. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/common/type_traits.hpp +0 -65
  1906. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/basic.hpp +0 -46
  1907. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/concurrency/none.hpp +0 -80
  1908. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio.hpp +0 -77
  1909. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_client.hpp +0 -77
  1910. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls.hpp +0 -73
  1911. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/asio_no_tls_client.hpp +0 -73
  1912. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/boost_config.hpp +0 -72
  1913. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core.hpp +0 -297
  1914. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/core_client.hpp +0 -294
  1915. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug.hpp +0 -286
  1916. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio.hpp +0 -77
  1917. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +0 -73
  1918. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_client.hpp +0 -72
  1919. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/config/minimal_server.hpp +0 -312
  1920. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection.hpp +0 -1642
  1921. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/connection_base.hpp +0 -38
  1922. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint.hpp +0 -700
  1923. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/endpoint_base.hpp +0 -38
  1924. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/error.hpp +0 -277
  1925. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/extension.hpp +0 -102
  1926. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +0 -129
  1927. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +0 -817
  1928. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/frame.hpp +0 -864
  1929. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/constants.hpp +0 -308
  1930. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/parser.hpp +0 -200
  1931. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/request.hpp +0 -191
  1932. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/impl/response.hpp +0 -266
  1933. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/parser.hpp +0 -629
  1934. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/request.hpp +0 -124
  1935. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/http/response.hpp +0 -188
  1936. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/connection_impl.hpp +0 -2375
  1937. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/endpoint_impl.hpp +0 -269
  1938. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/impl/utilities_impl.hpp +0 -87
  1939. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/basic.hpp +0 -199
  1940. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/levels.hpp +0 -203
  1941. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/stub.hpp +0 -119
  1942. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/logger/syslog.hpp +0 -146
  1943. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/alloc.hpp +0 -105
  1944. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/message.hpp +0 -340
  1945. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/message_buffer/pool.hpp +0 -229
  1946. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/base.hpp +0 -299
  1947. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi00.hpp +0 -462
  1948. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi07.hpp +0 -78
  1949. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi08.hpp +0 -83
  1950. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/hybi13.hpp +0 -1078
  1951. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/processors/processor.hpp +0 -407
  1952. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/none.hpp +0 -60
  1953. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/random/random_device.hpp +0 -80
  1954. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/client_endpoint.hpp +0 -173
  1955. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/roles/server_endpoint.hpp +0 -195
  1956. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/server.hpp +0 -33
  1957. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/sha1/sha1.hpp +0 -189
  1958. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/base.hpp +0 -232
  1959. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/connection.hpp +0 -1197
  1960. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/endpoint.hpp +0 -1182
  1961. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/base.hpp +0 -159
  1962. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/none.hpp +0 -372
  1963. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/asio/security/tls.hpp +0 -474
  1964. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/connection.hpp +0 -238
  1965. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/base/endpoint.hpp +0 -77
  1966. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/base.hpp +0 -104
  1967. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/connection.hpp +0 -412
  1968. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/debug/endpoint.hpp +0 -140
  1969. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/base.hpp +0 -133
  1970. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/connection.hpp +0 -714
  1971. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/iostream/endpoint.hpp +0 -222
  1972. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/base.hpp +0 -95
  1973. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/connection.hpp +0 -286
  1974. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/transport/stub/endpoint.hpp +0 -140
  1975. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/uri.hpp +0 -356
  1976. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utf8_validator.hpp +0 -154
  1977. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/utilities.hpp +0 -180
  1978. data/src/cxx_supportlib/vendor-modified/websocketpp/websocketpp/version.hpp +0 -61
@@ -1,2500 +0,0 @@
1
- //
2
- // buffer.hpp
3
- // ~~~~~~~~~~
4
- //
5
- // Copyright (c) 2003-2021 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_BUFFER_HPP
12
- #define BOOST_ASIO_BUFFER_HPP
13
-
14
- #if defined(_MSC_VER) && (_MSC_VER >= 1200)
15
- # pragma once
16
- #endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
17
-
18
- #include <boost/asio/detail/config.hpp>
19
- #include <cstddef>
20
- #include <cstring>
21
- #include <limits>
22
- #include <stdexcept>
23
- #include <string>
24
- #include <vector>
25
- #include <boost/asio/detail/array_fwd.hpp>
26
- #include <boost/asio/detail/memory.hpp>
27
- #include <boost/asio/detail/string_view.hpp>
28
- #include <boost/asio/detail/throw_exception.hpp>
29
- #include <boost/asio/detail/type_traits.hpp>
30
-
31
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1700)
32
- # if defined(_HAS_ITERATOR_DEBUGGING) && (_HAS_ITERATOR_DEBUGGING != 0)
33
- # if !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING)
34
- # define BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
35
- # endif // !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING)
36
- # endif // defined(_HAS_ITERATOR_DEBUGGING)
37
- #endif // defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC >= 1700)
38
-
39
- #if defined(__GNUC__)
40
- # if defined(_GLIBCXX_DEBUG)
41
- # if !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING)
42
- # define BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
43
- # endif // !defined(BOOST_ASIO_DISABLE_BUFFER_DEBUGGING)
44
- # endif // defined(_GLIBCXX_DEBUG)
45
- #endif // defined(__GNUC__)
46
-
47
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
48
- # include <boost/asio/detail/functional.hpp>
49
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
50
-
51
- #if defined(BOOST_ASIO_HAS_BOOST_WORKAROUND)
52
- # include <boost/detail/workaround.hpp>
53
- # if !defined(__clang__)
54
- # if BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
55
- # define BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND
56
- # endif // BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x582))
57
- # elif BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
58
- # define BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND
59
- # endif // BOOST_WORKAROUND(__SUNPRO_CC, BOOST_TESTED_AT(0x590))
60
- #endif // defined(BOOST_ASIO_HAS_BOOST_WORKAROUND)
61
-
62
- #if defined(BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
63
- # include <boost/asio/detail/type_traits.hpp>
64
- #endif // defined(BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
65
-
66
- #include <boost/asio/detail/push_options.hpp>
67
-
68
- namespace boost {
69
- namespace asio {
70
-
71
- class mutable_buffer;
72
- class const_buffer;
73
-
74
- /// Holds a buffer that can be modified.
75
- /**
76
- * The mutable_buffer class provides a safe representation of a buffer that can
77
- * be modified. It does not own the underlying data, and so is cheap to copy or
78
- * assign.
79
- *
80
- * @par Accessing Buffer Contents
81
- *
82
- * The contents of a buffer may be accessed using the @c data() and @c size()
83
- * member functions:
84
- *
85
- * @code boost::asio::mutable_buffer b1 = ...;
86
- * std::size_t s1 = b1.size();
87
- * unsigned char* p1 = static_cast<unsigned char*>(b1.data());
88
- * @endcode
89
- *
90
- * The @c data() member function permits violations of type safety, so uses of
91
- * it in application code should be carefully considered.
92
- */
93
- class mutable_buffer
94
- {
95
- public:
96
- /// Construct an empty buffer.
97
- mutable_buffer() BOOST_ASIO_NOEXCEPT
98
- : data_(0),
99
- size_(0)
100
- {
101
- }
102
-
103
- /// Construct a buffer to represent a given memory range.
104
- mutable_buffer(void* data, std::size_t size) BOOST_ASIO_NOEXCEPT
105
- : data_(data),
106
- size_(size)
107
- {
108
- }
109
-
110
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
111
- mutable_buffer(void* data, std::size_t size,
112
- boost::asio::detail::function<void()> debug_check)
113
- : data_(data),
114
- size_(size),
115
- debug_check_(debug_check)
116
- {
117
- }
118
-
119
- const boost::asio::detail::function<void()>& get_debug_check() const
120
- {
121
- return debug_check_;
122
- }
123
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
124
-
125
- /// Get a pointer to the beginning of the memory range.
126
- void* data() const BOOST_ASIO_NOEXCEPT
127
- {
128
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
129
- if (size_ && debug_check_)
130
- debug_check_();
131
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
132
- return data_;
133
- }
134
-
135
- /// Get the size of the memory range.
136
- std::size_t size() const BOOST_ASIO_NOEXCEPT
137
- {
138
- return size_;
139
- }
140
-
141
- /// Move the start of the buffer by the specified number of bytes.
142
- mutable_buffer& operator+=(std::size_t n) BOOST_ASIO_NOEXCEPT
143
- {
144
- std::size_t offset = n < size_ ? n : size_;
145
- data_ = static_cast<char*>(data_) + offset;
146
- size_ -= offset;
147
- return *this;
148
- }
149
-
150
- private:
151
- void* data_;
152
- std::size_t size_;
153
-
154
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
155
- boost::asio::detail::function<void()> debug_check_;
156
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
157
- };
158
-
159
- #if !defined(BOOST_ASIO_NO_DEPRECATED)
160
-
161
- /// (Deprecated: Use mutable_buffer.) Adapts a single modifiable buffer so that
162
- /// it meets the requirements of the MutableBufferSequence concept.
163
- class mutable_buffers_1
164
- : public mutable_buffer
165
- {
166
- public:
167
- /// The type for each element in the list of buffers.
168
- typedef mutable_buffer value_type;
169
-
170
- /// A random-access iterator type that may be used to read elements.
171
- typedef const mutable_buffer* const_iterator;
172
-
173
- /// Construct to represent a given memory range.
174
- mutable_buffers_1(void* data, std::size_t size) BOOST_ASIO_NOEXCEPT
175
- : mutable_buffer(data, size)
176
- {
177
- }
178
-
179
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
180
- mutable_buffers_1(void* data, std::size_t size,
181
- boost::asio::detail::function<void()> debug_check)
182
- : mutable_buffer(data, size, debug_check)
183
- {
184
- }
185
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
186
-
187
- /// Construct to represent a single modifiable buffer.
188
- explicit mutable_buffers_1(const mutable_buffer& b) BOOST_ASIO_NOEXCEPT
189
- : mutable_buffer(b)
190
- {
191
- }
192
-
193
- /// Get a random-access iterator to the first element.
194
- const_iterator begin() const BOOST_ASIO_NOEXCEPT
195
- {
196
- return this;
197
- }
198
-
199
- /// Get a random-access iterator for one past the last element.
200
- const_iterator end() const BOOST_ASIO_NOEXCEPT
201
- {
202
- return begin() + 1;
203
- }
204
- };
205
-
206
- #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
207
-
208
- /// Holds a buffer that cannot be modified.
209
- /**
210
- * The const_buffer class provides a safe representation of a buffer that cannot
211
- * be modified. It does not own the underlying data, and so is cheap to copy or
212
- * assign.
213
- *
214
- * @par Accessing Buffer Contents
215
- *
216
- * The contents of a buffer may be accessed using the @c data() and @c size()
217
- * member functions:
218
- *
219
- * @code boost::asio::const_buffer b1 = ...;
220
- * std::size_t s1 = b1.size();
221
- * const unsigned char* p1 = static_cast<const unsigned char*>(b1.data());
222
- * @endcode
223
- *
224
- * The @c data() member function permits violations of type safety, so uses of
225
- * it in application code should be carefully considered.
226
- */
227
- class const_buffer
228
- {
229
- public:
230
- /// Construct an empty buffer.
231
- const_buffer() BOOST_ASIO_NOEXCEPT
232
- : data_(0),
233
- size_(0)
234
- {
235
- }
236
-
237
- /// Construct a buffer to represent a given memory range.
238
- const_buffer(const void* data, std::size_t size) BOOST_ASIO_NOEXCEPT
239
- : data_(data),
240
- size_(size)
241
- {
242
- }
243
-
244
- /// Construct a non-modifiable buffer from a modifiable one.
245
- const_buffer(const mutable_buffer& b) BOOST_ASIO_NOEXCEPT
246
- : data_(b.data()),
247
- size_(b.size())
248
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
249
- , debug_check_(b.get_debug_check())
250
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
251
- {
252
- }
253
-
254
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
255
- const_buffer(const void* data, std::size_t size,
256
- boost::asio::detail::function<void()> debug_check)
257
- : data_(data),
258
- size_(size),
259
- debug_check_(debug_check)
260
- {
261
- }
262
-
263
- const boost::asio::detail::function<void()>& get_debug_check() const
264
- {
265
- return debug_check_;
266
- }
267
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
268
-
269
- /// Get a pointer to the beginning of the memory range.
270
- const void* data() const BOOST_ASIO_NOEXCEPT
271
- {
272
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
273
- if (size_ && debug_check_)
274
- debug_check_();
275
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
276
- return data_;
277
- }
278
-
279
- /// Get the size of the memory range.
280
- std::size_t size() const BOOST_ASIO_NOEXCEPT
281
- {
282
- return size_;
283
- }
284
-
285
- /// Move the start of the buffer by the specified number of bytes.
286
- const_buffer& operator+=(std::size_t n) BOOST_ASIO_NOEXCEPT
287
- {
288
- std::size_t offset = n < size_ ? n : size_;
289
- data_ = static_cast<const char*>(data_) + offset;
290
- size_ -= offset;
291
- return *this;
292
- }
293
-
294
- private:
295
- const void* data_;
296
- std::size_t size_;
297
-
298
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
299
- boost::asio::detail::function<void()> debug_check_;
300
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
301
- };
302
-
303
- #if !defined(BOOST_ASIO_NO_DEPRECATED)
304
-
305
- /// (Deprecated: Use const_buffer.) Adapts a single non-modifiable buffer so
306
- /// that it meets the requirements of the ConstBufferSequence concept.
307
- class const_buffers_1
308
- : public const_buffer
309
- {
310
- public:
311
- /// The type for each element in the list of buffers.
312
- typedef const_buffer value_type;
313
-
314
- /// A random-access iterator type that may be used to read elements.
315
- typedef const const_buffer* const_iterator;
316
-
317
- /// Construct to represent a given memory range.
318
- const_buffers_1(const void* data, std::size_t size) BOOST_ASIO_NOEXCEPT
319
- : const_buffer(data, size)
320
- {
321
- }
322
-
323
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
324
- const_buffers_1(const void* data, std::size_t size,
325
- boost::asio::detail::function<void()> debug_check)
326
- : const_buffer(data, size, debug_check)
327
- {
328
- }
329
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
330
-
331
- /// Construct to represent a single non-modifiable buffer.
332
- explicit const_buffers_1(const const_buffer& b) BOOST_ASIO_NOEXCEPT
333
- : const_buffer(b)
334
- {
335
- }
336
-
337
- /// Get a random-access iterator to the first element.
338
- const_iterator begin() const BOOST_ASIO_NOEXCEPT
339
- {
340
- return this;
341
- }
342
-
343
- /// Get a random-access iterator for one past the last element.
344
- const_iterator end() const BOOST_ASIO_NOEXCEPT
345
- {
346
- return begin() + 1;
347
- }
348
- };
349
-
350
- #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
351
-
352
- /// (Deprecated: Use the socket/descriptor wait() and async_wait() member
353
- /// functions.) An implementation of both the ConstBufferSequence and
354
- /// MutableBufferSequence concepts to represent a null buffer sequence.
355
- class null_buffers
356
- {
357
- public:
358
- /// The type for each element in the list of buffers.
359
- typedef mutable_buffer value_type;
360
-
361
- /// A random-access iterator type that may be used to read elements.
362
- typedef const mutable_buffer* const_iterator;
363
-
364
- /// Get a random-access iterator to the first element.
365
- const_iterator begin() const BOOST_ASIO_NOEXCEPT
366
- {
367
- return &buf_;
368
- }
369
-
370
- /// Get a random-access iterator for one past the last element.
371
- const_iterator end() const BOOST_ASIO_NOEXCEPT
372
- {
373
- return &buf_;
374
- }
375
-
376
- private:
377
- mutable_buffer buf_;
378
- };
379
-
380
- /** @defgroup buffer_sequence_begin boost::asio::buffer_sequence_begin
381
- *
382
- * @brief The boost::asio::buffer_sequence_begin function returns an iterator
383
- * pointing to the first element in a buffer sequence.
384
- */
385
- /*@{*/
386
-
387
- /// Get an iterator to the first element in a buffer sequence.
388
- template <typename MutableBuffer>
389
- inline const mutable_buffer* buffer_sequence_begin(const MutableBuffer& b,
390
- typename constraint<
391
- is_convertible<const MutableBuffer*, const mutable_buffer*>::value
392
- >::type = 0) BOOST_ASIO_NOEXCEPT
393
- {
394
- return static_cast<const mutable_buffer*>(detail::addressof(b));
395
- }
396
-
397
- /// Get an iterator to the first element in a buffer sequence.
398
- template <typename ConstBuffer>
399
- inline const const_buffer* buffer_sequence_begin(const ConstBuffer& b,
400
- typename constraint<
401
- is_convertible<const ConstBuffer*, const const_buffer*>::value
402
- >::type = 0) BOOST_ASIO_NOEXCEPT
403
- {
404
- return static_cast<const const_buffer*>(detail::addressof(b));
405
- }
406
-
407
- #if defined(BOOST_ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
408
-
409
- /// Get an iterator to the first element in a buffer sequence.
410
- template <typename C>
411
- inline auto buffer_sequence_begin(C& c,
412
- typename constraint<
413
- !is_convertible<const C*, const mutable_buffer*>::value
414
- && !is_convertible<const C*, const const_buffer*>::value
415
- >::type = 0) BOOST_ASIO_NOEXCEPT -> decltype(c.begin())
416
- {
417
- return c.begin();
418
- }
419
-
420
- /// Get an iterator to the first element in a buffer sequence.
421
- template <typename C>
422
- inline auto buffer_sequence_begin(const C& c,
423
- typename constraint<
424
- !is_convertible<const C*, const mutable_buffer*>::value
425
- && !is_convertible<const C*, const const_buffer*>::value
426
- >::type = 0) BOOST_ASIO_NOEXCEPT -> decltype(c.begin())
427
- {
428
- return c.begin();
429
- }
430
-
431
- #else // defined(BOOST_ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
432
-
433
- template <typename C>
434
- inline typename C::iterator buffer_sequence_begin(C& c,
435
- typename constraint<
436
- !is_convertible<const C*, const mutable_buffer*>::value
437
- && !is_convertible<const C*, const const_buffer*>::value
438
- >::type = 0) BOOST_ASIO_NOEXCEPT
439
- {
440
- return c.begin();
441
- }
442
-
443
- template <typename C>
444
- inline typename C::const_iterator buffer_sequence_begin(const C& c,
445
- typename constraint<
446
- !is_convertible<const C*, const mutable_buffer*>::value
447
- && !is_convertible<const C*, const const_buffer*>::value
448
- >::type = 0) BOOST_ASIO_NOEXCEPT
449
- {
450
- return c.begin();
451
- }
452
-
453
- #endif // defined(BOOST_ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
454
-
455
- /*@}*/
456
-
457
- /** @defgroup buffer_sequence_end boost::asio::buffer_sequence_end
458
- *
459
- * @brief The boost::asio::buffer_sequence_end function returns an iterator
460
- * pointing to one past the end element in a buffer sequence.
461
- */
462
- /*@{*/
463
-
464
- /// Get an iterator to one past the end element in a buffer sequence.
465
- template <typename MutableBuffer>
466
- inline const mutable_buffer* buffer_sequence_end(const MutableBuffer& b,
467
- typename constraint<
468
- is_convertible<const MutableBuffer*, const mutable_buffer*>::value
469
- >::type = 0) BOOST_ASIO_NOEXCEPT
470
- {
471
- return static_cast<const mutable_buffer*>(detail::addressof(b)) + 1;
472
- }
473
-
474
- /// Get an iterator to one past the end element in a buffer sequence.
475
- template <typename ConstBuffer>
476
- inline const const_buffer* buffer_sequence_end(const ConstBuffer& b,
477
- typename constraint<
478
- is_convertible<const ConstBuffer*, const const_buffer*>::value
479
- >::type = 0) BOOST_ASIO_NOEXCEPT
480
- {
481
- return static_cast<const const_buffer*>(detail::addressof(b)) + 1;
482
- }
483
-
484
- #if defined(BOOST_ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
485
-
486
- /// Get an iterator to one past the end element in a buffer sequence.
487
- template <typename C>
488
- inline auto buffer_sequence_end(C& c,
489
- typename constraint<
490
- !is_convertible<const C*, const mutable_buffer*>::value
491
- && !is_convertible<const C*, const const_buffer*>::value
492
- >::type = 0) BOOST_ASIO_NOEXCEPT -> decltype(c.end())
493
- {
494
- return c.end();
495
- }
496
-
497
- /// Get an iterator to one past the end element in a buffer sequence.
498
- template <typename C>
499
- inline auto buffer_sequence_end(const C& c,
500
- typename constraint<
501
- !is_convertible<const C*, const mutable_buffer*>::value
502
- && !is_convertible<const C*, const const_buffer*>::value
503
- >::type = 0) BOOST_ASIO_NOEXCEPT -> decltype(c.end())
504
- {
505
- return c.end();
506
- }
507
-
508
- #else // defined(BOOST_ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
509
-
510
- template <typename C>
511
- inline typename C::iterator buffer_sequence_end(C& c,
512
- typename constraint<
513
- !is_convertible<const C*, const mutable_buffer*>::value
514
- && !is_convertible<const C*, const const_buffer*>::value
515
- >::type = 0) BOOST_ASIO_NOEXCEPT
516
- {
517
- return c.end();
518
- }
519
-
520
- template <typename C>
521
- inline typename C::const_iterator buffer_sequence_end(const C& c,
522
- typename constraint<
523
- !is_convertible<const C*, const mutable_buffer*>::value
524
- && !is_convertible<const C*, const const_buffer*>::value
525
- >::type = 0) BOOST_ASIO_NOEXCEPT
526
- {
527
- return c.end();
528
- }
529
-
530
- #endif // defined(BOOST_ASIO_HAS_DECLTYPE) || defined(GENERATING_DOCUMENTATION)
531
-
532
- /*@}*/
533
-
534
- namespace detail {
535
-
536
- // Tag types used to select appropriately optimised overloads.
537
- struct one_buffer {};
538
- struct multiple_buffers {};
539
-
540
- // Helper trait to detect single buffers.
541
- template <typename BufferSequence>
542
- struct buffer_sequence_cardinality :
543
- conditional<
544
- is_same<BufferSequence, mutable_buffer>::value
545
- #if !defined(BOOST_ASIO_NO_DEPRECATED)
546
- || is_same<BufferSequence, mutable_buffers_1>::value
547
- || is_same<BufferSequence, const_buffers_1>::value
548
- #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
549
- || is_same<BufferSequence, const_buffer>::value,
550
- one_buffer, multiple_buffers>::type {};
551
-
552
- template <typename Iterator>
553
- inline std::size_t buffer_size(one_buffer,
554
- Iterator begin, Iterator) BOOST_ASIO_NOEXCEPT
555
- {
556
- return const_buffer(*begin).size();
557
- }
558
-
559
- template <typename Iterator>
560
- inline std::size_t buffer_size(multiple_buffers,
561
- Iterator begin, Iterator end) BOOST_ASIO_NOEXCEPT
562
- {
563
- std::size_t total_buffer_size = 0;
564
-
565
- Iterator iter = begin;
566
- for (; iter != end; ++iter)
567
- {
568
- const_buffer b(*iter);
569
- total_buffer_size += b.size();
570
- }
571
-
572
- return total_buffer_size;
573
- }
574
-
575
- } // namespace detail
576
-
577
- /// Get the total number of bytes in a buffer sequence.
578
- /**
579
- * The @c buffer_size function determines the total size of all buffers in the
580
- * buffer sequence, as if computed as follows:
581
- *
582
- * @code size_t total_size = 0;
583
- * auto i = boost::asio::buffer_sequence_begin(buffers);
584
- * auto end = boost::asio::buffer_sequence_end(buffers);
585
- * for (; i != end; ++i)
586
- * {
587
- * const_buffer b(*i);
588
- * total_size += b.size();
589
- * }
590
- * return total_size; @endcode
591
- *
592
- * The @c BufferSequence template parameter may meet either of the @c
593
- * ConstBufferSequence or @c MutableBufferSequence type requirements.
594
- */
595
- template <typename BufferSequence>
596
- inline std::size_t buffer_size(const BufferSequence& b) BOOST_ASIO_NOEXCEPT
597
- {
598
- return detail::buffer_size(
599
- detail::buffer_sequence_cardinality<BufferSequence>(),
600
- boost::asio::buffer_sequence_begin(b),
601
- boost::asio::buffer_sequence_end(b));
602
- }
603
-
604
- #if !defined(BOOST_ASIO_NO_DEPRECATED)
605
-
606
- /** @defgroup buffer_cast boost::asio::buffer_cast
607
- *
608
- * @brief (Deprecated: Use the @c data() member function.) The
609
- * boost::asio::buffer_cast function is used to obtain a pointer to the
610
- * underlying memory region associated with a buffer.
611
- *
612
- * @par Examples:
613
- *
614
- * To access the memory of a non-modifiable buffer, use:
615
- * @code boost::asio::const_buffer b1 = ...;
616
- * const unsigned char* p1 = boost::asio::buffer_cast<const unsigned char*>(b1);
617
- * @endcode
618
- *
619
- * To access the memory of a modifiable buffer, use:
620
- * @code boost::asio::mutable_buffer b2 = ...;
621
- * unsigned char* p2 = boost::asio::buffer_cast<unsigned char*>(b2);
622
- * @endcode
623
- *
624
- * The boost::asio::buffer_cast function permits violations of type safety, so
625
- * uses of it in application code should be carefully considered.
626
- */
627
- /*@{*/
628
-
629
- /// Cast a non-modifiable buffer to a specified pointer to POD type.
630
- template <typename PointerToPodType>
631
- inline PointerToPodType buffer_cast(const mutable_buffer& b) BOOST_ASIO_NOEXCEPT
632
- {
633
- return static_cast<PointerToPodType>(b.data());
634
- }
635
-
636
- /// Cast a non-modifiable buffer to a specified pointer to POD type.
637
- template <typename PointerToPodType>
638
- inline PointerToPodType buffer_cast(const const_buffer& b) BOOST_ASIO_NOEXCEPT
639
- {
640
- return static_cast<PointerToPodType>(b.data());
641
- }
642
-
643
- /*@}*/
644
-
645
- #endif // !defined(BOOST_ASIO_NO_DEPRECATED)
646
-
647
- /// Create a new modifiable buffer that is offset from the start of another.
648
- /**
649
- * @relates mutable_buffer
650
- */
651
- inline mutable_buffer operator+(const mutable_buffer& b,
652
- std::size_t n) BOOST_ASIO_NOEXCEPT
653
- {
654
- std::size_t offset = n < b.size() ? n : b.size();
655
- char* new_data = static_cast<char*>(b.data()) + offset;
656
- std::size_t new_size = b.size() - offset;
657
- return mutable_buffer(new_data, new_size
658
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
659
- , b.get_debug_check()
660
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
661
- );
662
- }
663
-
664
- /// Create a new modifiable buffer that is offset from the start of another.
665
- /**
666
- * @relates mutable_buffer
667
- */
668
- inline mutable_buffer operator+(std::size_t n,
669
- const mutable_buffer& b) BOOST_ASIO_NOEXCEPT
670
- {
671
- return b + n;
672
- }
673
-
674
- /// Create a new non-modifiable buffer that is offset from the start of another.
675
- /**
676
- * @relates const_buffer
677
- */
678
- inline const_buffer operator+(const const_buffer& b,
679
- std::size_t n) BOOST_ASIO_NOEXCEPT
680
- {
681
- std::size_t offset = n < b.size() ? n : b.size();
682
- const char* new_data = static_cast<const char*>(b.data()) + offset;
683
- std::size_t new_size = b.size() - offset;
684
- return const_buffer(new_data, new_size
685
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
686
- , b.get_debug_check()
687
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
688
- );
689
- }
690
-
691
- /// Create a new non-modifiable buffer that is offset from the start of another.
692
- /**
693
- * @relates const_buffer
694
- */
695
- inline const_buffer operator+(std::size_t n,
696
- const const_buffer& b) BOOST_ASIO_NOEXCEPT
697
- {
698
- return b + n;
699
- }
700
-
701
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
702
- namespace detail {
703
-
704
- template <typename Iterator>
705
- class buffer_debug_check
706
- {
707
- public:
708
- buffer_debug_check(Iterator iter)
709
- : iter_(iter)
710
- {
711
- }
712
-
713
- ~buffer_debug_check()
714
- {
715
- #if defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC == 1400)
716
- // MSVC 8's string iterator checking may crash in a std::string::iterator
717
- // object's destructor when the iterator points to an already-destroyed
718
- // std::string object, unless the iterator is cleared first.
719
- iter_ = Iterator();
720
- #endif // defined(BOOST_ASIO_MSVC) && (BOOST_ASIO_MSVC == 1400)
721
- }
722
-
723
- void operator()()
724
- {
725
- (void)*iter_;
726
- }
727
-
728
- private:
729
- Iterator iter_;
730
- };
731
-
732
- } // namespace detail
733
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
734
-
735
- /** @defgroup buffer boost::asio::buffer
736
- *
737
- * @brief The boost::asio::buffer function is used to create a buffer object to
738
- * represent raw memory, an array of POD elements, a vector of POD elements,
739
- * or a std::string.
740
- *
741
- * A buffer object represents a contiguous region of memory as a 2-tuple
742
- * consisting of a pointer and size in bytes. A tuple of the form <tt>{void*,
743
- * size_t}</tt> specifies a mutable (modifiable) region of memory. Similarly, a
744
- * tuple of the form <tt>{const void*, size_t}</tt> specifies a const
745
- * (non-modifiable) region of memory. These two forms correspond to the classes
746
- * mutable_buffer and const_buffer, respectively. To mirror C++'s conversion
747
- * rules, a mutable_buffer is implicitly convertible to a const_buffer, and the
748
- * opposite conversion is not permitted.
749
- *
750
- * The simplest use case involves reading or writing a single buffer of a
751
- * specified size:
752
- *
753
- * @code sock.send(boost::asio::buffer(data, size)); @endcode
754
- *
755
- * In the above example, the return value of boost::asio::buffer meets the
756
- * requirements of the ConstBufferSequence concept so that it may be directly
757
- * passed to the socket's write function. A buffer created for modifiable
758
- * memory also meets the requirements of the MutableBufferSequence concept.
759
- *
760
- * An individual buffer may be created from a builtin array, std::vector,
761
- * std::array or boost::array of POD elements. This helps prevent buffer
762
- * overruns by automatically determining the size of the buffer:
763
- *
764
- * @code char d1[128];
765
- * size_t bytes_transferred = sock.receive(boost::asio::buffer(d1));
766
- *
767
- * std::vector<char> d2(128);
768
- * bytes_transferred = sock.receive(boost::asio::buffer(d2));
769
- *
770
- * std::array<char, 128> d3;
771
- * bytes_transferred = sock.receive(boost::asio::buffer(d3));
772
- *
773
- * boost::array<char, 128> d4;
774
- * bytes_transferred = sock.receive(boost::asio::buffer(d4)); @endcode
775
- *
776
- * In all three cases above, the buffers created are exactly 128 bytes long.
777
- * Note that a vector is @e never automatically resized when creating or using
778
- * a buffer. The buffer size is determined using the vector's <tt>size()</tt>
779
- * member function, and not its capacity.
780
- *
781
- * @par Accessing Buffer Contents
782
- *
783
- * The contents of a buffer may be accessed using the @c data() and @c size()
784
- * member functions:
785
- *
786
- * @code boost::asio::mutable_buffer b1 = ...;
787
- * std::size_t s1 = b1.size();
788
- * unsigned char* p1 = static_cast<unsigned char*>(b1.data());
789
- *
790
- * boost::asio::const_buffer b2 = ...;
791
- * std::size_t s2 = b2.size();
792
- * const void* p2 = b2.data(); @endcode
793
- *
794
- * The @c data() member function permits violations of type safety, so
795
- * uses of it in application code should be carefully considered.
796
- *
797
- * For convenience, a @ref buffer_size function is provided that works with
798
- * both buffers and buffer sequences (that is, types meeting the
799
- * ConstBufferSequence or MutableBufferSequence type requirements). In this
800
- * case, the function returns the total size of all buffers in the sequence.
801
- *
802
- * @par Buffer Copying
803
- *
804
- * The @ref buffer_copy function may be used to copy raw bytes between
805
- * individual buffers and buffer sequences.
806
- *
807
- * In particular, when used with the @ref buffer_size function, the @ref
808
- * buffer_copy function can be used to linearise a sequence of buffers. For
809
- * example:
810
- *
811
- * @code vector<const_buffer> buffers = ...;
812
- *
813
- * vector<unsigned char> data(boost::asio::buffer_size(buffers));
814
- * boost::asio::buffer_copy(boost::asio::buffer(data), buffers); @endcode
815
- *
816
- * Note that @ref buffer_copy is implemented in terms of @c memcpy, and
817
- * consequently it cannot be used to copy between overlapping memory regions.
818
- *
819
- * @par Buffer Invalidation
820
- *
821
- * A buffer object does not have any ownership of the memory it refers to. It
822
- * is the responsibility of the application to ensure the memory region remains
823
- * valid until it is no longer required for an I/O operation. When the memory
824
- * is no longer available, the buffer is said to have been invalidated.
825
- *
826
- * For the boost::asio::buffer overloads that accept an argument of type
827
- * std::vector, the buffer objects returned are invalidated by any vector
828
- * operation that also invalidates all references, pointers and iterators
829
- * referring to the elements in the sequence (C++ Std, 23.2.4)
830
- *
831
- * For the boost::asio::buffer overloads that accept an argument of type
832
- * std::basic_string, the buffer objects returned are invalidated according to
833
- * the rules defined for invalidation of references, pointers and iterators
834
- * referring to elements of the sequence (C++ Std, 21.3).
835
- *
836
- * @par Buffer Arithmetic
837
- *
838
- * Buffer objects may be manipulated using simple arithmetic in a safe way
839
- * which helps prevent buffer overruns. Consider an array initialised as
840
- * follows:
841
- *
842
- * @code boost::array<char, 6> a = { 'a', 'b', 'c', 'd', 'e' }; @endcode
843
- *
844
- * A buffer object @c b1 created using:
845
- *
846
- * @code b1 = boost::asio::buffer(a); @endcode
847
- *
848
- * represents the entire array, <tt>{ 'a', 'b', 'c', 'd', 'e' }</tt>. An
849
- * optional second argument to the boost::asio::buffer function may be used to
850
- * limit the size, in bytes, of the buffer:
851
- *
852
- * @code b2 = boost::asio::buffer(a, 3); @endcode
853
- *
854
- * such that @c b2 represents the data <tt>{ 'a', 'b', 'c' }</tt>. Even if the
855
- * size argument exceeds the actual size of the array, the size of the buffer
856
- * object created will be limited to the array size.
857
- *
858
- * An offset may be applied to an existing buffer to create a new one:
859
- *
860
- * @code b3 = b1 + 2; @endcode
861
- *
862
- * where @c b3 will set to represent <tt>{ 'c', 'd', 'e' }</tt>. If the offset
863
- * exceeds the size of the existing buffer, the newly created buffer will be
864
- * empty.
865
- *
866
- * Both an offset and size may be specified to create a buffer that corresponds
867
- * to a specific range of bytes within an existing buffer:
868
- *
869
- * @code b4 = boost::asio::buffer(b1 + 1, 3); @endcode
870
- *
871
- * so that @c b4 will refer to the bytes <tt>{ 'b', 'c', 'd' }</tt>.
872
- *
873
- * @par Buffers and Scatter-Gather I/O
874
- *
875
- * To read or write using multiple buffers (i.e. scatter-gather I/O), multiple
876
- * buffer objects may be assigned into a container that supports the
877
- * MutableBufferSequence (for read) or ConstBufferSequence (for write) concepts:
878
- *
879
- * @code
880
- * char d1[128];
881
- * std::vector<char> d2(128);
882
- * boost::array<char, 128> d3;
883
- *
884
- * boost::array<mutable_buffer, 3> bufs1 = {
885
- * boost::asio::buffer(d1),
886
- * boost::asio::buffer(d2),
887
- * boost::asio::buffer(d3) };
888
- * bytes_transferred = sock.receive(bufs1);
889
- *
890
- * std::vector<const_buffer> bufs2;
891
- * bufs2.push_back(boost::asio::buffer(d1));
892
- * bufs2.push_back(boost::asio::buffer(d2));
893
- * bufs2.push_back(boost::asio::buffer(d3));
894
- * bytes_transferred = sock.send(bufs2); @endcode
895
- */
896
- /*@{*/
897
-
898
- #if defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
899
- # define BOOST_ASIO_MUTABLE_BUFFER mutable_buffer
900
- # define BOOST_ASIO_CONST_BUFFER const_buffer
901
- #else // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
902
- # define BOOST_ASIO_MUTABLE_BUFFER mutable_buffers_1
903
- # define BOOST_ASIO_CONST_BUFFER const_buffers_1
904
- #endif // defined(BOOST_ASIO_NO_DEPRECATED) || defined(GENERATING_DOCUMENTATION)
905
-
906
- /// Create a new modifiable buffer from an existing buffer.
907
- /**
908
- * @returns <tt>mutable_buffer(b)</tt>.
909
- */
910
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(
911
- const mutable_buffer& b) BOOST_ASIO_NOEXCEPT
912
- {
913
- return BOOST_ASIO_MUTABLE_BUFFER(b);
914
- }
915
-
916
- /// Create a new modifiable buffer from an existing buffer.
917
- /**
918
- * @returns A mutable_buffer value equivalent to:
919
- * @code mutable_buffer(
920
- * b.data(),
921
- * min(b.size(), max_size_in_bytes)); @endcode
922
- */
923
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(const mutable_buffer& b,
924
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
925
- {
926
- return BOOST_ASIO_MUTABLE_BUFFER(
927
- mutable_buffer(b.data(),
928
- b.size() < max_size_in_bytes
929
- ? b.size() : max_size_in_bytes
930
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
931
- , b.get_debug_check()
932
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
933
- ));
934
- }
935
-
936
- /// Create a new non-modifiable buffer from an existing buffer.
937
- /**
938
- * @returns <tt>const_buffer(b)</tt>.
939
- */
940
- inline BOOST_ASIO_CONST_BUFFER buffer(
941
- const const_buffer& b) BOOST_ASIO_NOEXCEPT
942
- {
943
- return BOOST_ASIO_CONST_BUFFER(b);
944
- }
945
-
946
- /// Create a new non-modifiable buffer from an existing buffer.
947
- /**
948
- * @returns A const_buffer value equivalent to:
949
- * @code const_buffer(
950
- * b.data(),
951
- * min(b.size(), max_size_in_bytes)); @endcode
952
- */
953
- inline BOOST_ASIO_CONST_BUFFER buffer(const const_buffer& b,
954
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
955
- {
956
- return BOOST_ASIO_CONST_BUFFER(b.data(),
957
- b.size() < max_size_in_bytes
958
- ? b.size() : max_size_in_bytes
959
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
960
- , b.get_debug_check()
961
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
962
- );
963
- }
964
-
965
- /// Create a new modifiable buffer that represents the given memory range.
966
- /**
967
- * @returns <tt>mutable_buffer(data, size_in_bytes)</tt>.
968
- */
969
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(void* data,
970
- std::size_t size_in_bytes) BOOST_ASIO_NOEXCEPT
971
- {
972
- return BOOST_ASIO_MUTABLE_BUFFER(data, size_in_bytes);
973
- }
974
-
975
- /// Create a new non-modifiable buffer that represents the given memory range.
976
- /**
977
- * @returns <tt>const_buffer(data, size_in_bytes)</tt>.
978
- */
979
- inline BOOST_ASIO_CONST_BUFFER buffer(const void* data,
980
- std::size_t size_in_bytes) BOOST_ASIO_NOEXCEPT
981
- {
982
- return BOOST_ASIO_CONST_BUFFER(data, size_in_bytes);
983
- }
984
-
985
- /// Create a new modifiable buffer that represents the given POD array.
986
- /**
987
- * @returns A mutable_buffer value equivalent to:
988
- * @code mutable_buffer(
989
- * static_cast<void*>(data),
990
- * N * sizeof(PodType)); @endcode
991
- */
992
- template <typename PodType, std::size_t N>
993
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N]) BOOST_ASIO_NOEXCEPT
994
- {
995
- return BOOST_ASIO_MUTABLE_BUFFER(data, N * sizeof(PodType));
996
- }
997
-
998
- /// Create a new modifiable buffer that represents the given POD array.
999
- /**
1000
- * @returns A mutable_buffer value equivalent to:
1001
- * @code mutable_buffer(
1002
- * static_cast<void*>(data),
1003
- * min(N * sizeof(PodType), max_size_in_bytes)); @endcode
1004
- */
1005
- template <typename PodType, std::size_t N>
1006
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(PodType (&data)[N],
1007
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1008
- {
1009
- return BOOST_ASIO_MUTABLE_BUFFER(data,
1010
- N * sizeof(PodType) < max_size_in_bytes
1011
- ? N * sizeof(PodType) : max_size_in_bytes);
1012
- }
1013
-
1014
- /// Create a new non-modifiable buffer that represents the given POD array.
1015
- /**
1016
- * @returns A const_buffer value equivalent to:
1017
- * @code const_buffer(
1018
- * static_cast<const void*>(data),
1019
- * N * sizeof(PodType)); @endcode
1020
- */
1021
- template <typename PodType, std::size_t N>
1022
- inline BOOST_ASIO_CONST_BUFFER buffer(
1023
- const PodType (&data)[N]) BOOST_ASIO_NOEXCEPT
1024
- {
1025
- return BOOST_ASIO_CONST_BUFFER(data, N * sizeof(PodType));
1026
- }
1027
-
1028
- /// Create a new non-modifiable buffer that represents the given POD array.
1029
- /**
1030
- * @returns A const_buffer value equivalent to:
1031
- * @code const_buffer(
1032
- * static_cast<const void*>(data),
1033
- * min(N * sizeof(PodType), max_size_in_bytes)); @endcode
1034
- */
1035
- template <typename PodType, std::size_t N>
1036
- inline BOOST_ASIO_CONST_BUFFER buffer(const PodType (&data)[N],
1037
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1038
- {
1039
- return BOOST_ASIO_CONST_BUFFER(data,
1040
- N * sizeof(PodType) < max_size_in_bytes
1041
- ? N * sizeof(PodType) : max_size_in_bytes);
1042
- }
1043
-
1044
- #if defined(BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
1045
-
1046
- // Borland C++ and Sun Studio think the overloads:
1047
- //
1048
- // unspecified buffer(boost::array<PodType, N>& array ...);
1049
- //
1050
- // and
1051
- //
1052
- // unspecified buffer(boost::array<const PodType, N>& array ...);
1053
- //
1054
- // are ambiguous. This will be worked around by using a buffer_types traits
1055
- // class that contains typedefs for the appropriate buffer and container
1056
- // classes, based on whether PodType is const or non-const.
1057
-
1058
- namespace detail {
1059
-
1060
- template <bool IsConst>
1061
- struct buffer_types_base;
1062
-
1063
- template <>
1064
- struct buffer_types_base<false>
1065
- {
1066
- typedef mutable_buffer buffer_type;
1067
- typedef BOOST_ASIO_MUTABLE_BUFFER container_type;
1068
- };
1069
-
1070
- template <>
1071
- struct buffer_types_base<true>
1072
- {
1073
- typedef const_buffer buffer_type;
1074
- typedef BOOST_ASIO_CONST_BUFFER container_type;
1075
- };
1076
-
1077
- template <typename PodType>
1078
- struct buffer_types
1079
- : public buffer_types_base<is_const<PodType>::value>
1080
- {
1081
- };
1082
-
1083
- } // namespace detail
1084
-
1085
- template <typename PodType, std::size_t N>
1086
- inline typename detail::buffer_types<PodType>::container_type
1087
- buffer(boost::array<PodType, N>& data) BOOST_ASIO_NOEXCEPT
1088
- {
1089
- typedef typename boost::asio::detail::buffer_types<PodType>::buffer_type
1090
- buffer_type;
1091
- typedef typename boost::asio::detail::buffer_types<PodType>::container_type
1092
- container_type;
1093
- return container_type(
1094
- buffer_type(data.c_array(), data.size() * sizeof(PodType)));
1095
- }
1096
-
1097
- template <typename PodType, std::size_t N>
1098
- inline typename detail::buffer_types<PodType>::container_type
1099
- buffer(boost::array<PodType, N>& data,
1100
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1101
- {
1102
- typedef typename boost::asio::detail::buffer_types<PodType>::buffer_type
1103
- buffer_type;
1104
- typedef typename boost::asio::detail::buffer_types<PodType>::container_type
1105
- container_type;
1106
- return container_type(
1107
- buffer_type(data.c_array(),
1108
- data.size() * sizeof(PodType) < max_size_in_bytes
1109
- ? data.size() * sizeof(PodType) : max_size_in_bytes));
1110
- }
1111
-
1112
- #else // defined(BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
1113
-
1114
- /// Create a new modifiable buffer that represents the given POD array.
1115
- /**
1116
- * @returns A mutable_buffer value equivalent to:
1117
- * @code mutable_buffer(
1118
- * data.data(),
1119
- * data.size() * sizeof(PodType)); @endcode
1120
- */
1121
- template <typename PodType, std::size_t N>
1122
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(
1123
- boost::array<PodType, N>& data) BOOST_ASIO_NOEXCEPT
1124
- {
1125
- return BOOST_ASIO_MUTABLE_BUFFER(
1126
- data.c_array(), data.size() * sizeof(PodType));
1127
- }
1128
-
1129
- /// Create a new modifiable buffer that represents the given POD array.
1130
- /**
1131
- * @returns A mutable_buffer value equivalent to:
1132
- * @code mutable_buffer(
1133
- * data.data(),
1134
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1135
- */
1136
- template <typename PodType, std::size_t N>
1137
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(boost::array<PodType, N>& data,
1138
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1139
- {
1140
- return BOOST_ASIO_MUTABLE_BUFFER(data.c_array(),
1141
- data.size() * sizeof(PodType) < max_size_in_bytes
1142
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1143
- }
1144
-
1145
- /// Create a new non-modifiable buffer that represents the given POD array.
1146
- /**
1147
- * @returns A const_buffer value equivalent to:
1148
- * @code const_buffer(
1149
- * data.data(),
1150
- * data.size() * sizeof(PodType)); @endcode
1151
- */
1152
- template <typename PodType, std::size_t N>
1153
- inline BOOST_ASIO_CONST_BUFFER buffer(
1154
- boost::array<const PodType, N>& data) BOOST_ASIO_NOEXCEPT
1155
- {
1156
- return BOOST_ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1157
- }
1158
-
1159
- /// Create a new non-modifiable buffer that represents the given POD array.
1160
- /**
1161
- * @returns A const_buffer value equivalent to:
1162
- * @code const_buffer(
1163
- * data.data(),
1164
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1165
- */
1166
- template <typename PodType, std::size_t N>
1167
- inline BOOST_ASIO_CONST_BUFFER buffer(boost::array<const PodType, N>& data,
1168
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1169
- {
1170
- return BOOST_ASIO_CONST_BUFFER(data.data(),
1171
- data.size() * sizeof(PodType) < max_size_in_bytes
1172
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1173
- }
1174
-
1175
- #endif // defined(BOOST_ASIO_ENABLE_ARRAY_BUFFER_WORKAROUND)
1176
-
1177
- /// Create a new non-modifiable buffer that represents the given POD array.
1178
- /**
1179
- * @returns A const_buffer value equivalent to:
1180
- * @code const_buffer(
1181
- * data.data(),
1182
- * data.size() * sizeof(PodType)); @endcode
1183
- */
1184
- template <typename PodType, std::size_t N>
1185
- inline BOOST_ASIO_CONST_BUFFER buffer(
1186
- const boost::array<PodType, N>& data) BOOST_ASIO_NOEXCEPT
1187
- {
1188
- return BOOST_ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1189
- }
1190
-
1191
- /// Create a new non-modifiable buffer that represents the given POD array.
1192
- /**
1193
- * @returns A const_buffer value equivalent to:
1194
- * @code const_buffer(
1195
- * data.data(),
1196
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1197
- */
1198
- template <typename PodType, std::size_t N>
1199
- inline BOOST_ASIO_CONST_BUFFER buffer(const boost::array<PodType, N>& data,
1200
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1201
- {
1202
- return BOOST_ASIO_CONST_BUFFER(data.data(),
1203
- data.size() * sizeof(PodType) < max_size_in_bytes
1204
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1205
- }
1206
-
1207
- #if defined(BOOST_ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION)
1208
-
1209
- /// Create a new modifiable buffer that represents the given POD array.
1210
- /**
1211
- * @returns A mutable_buffer value equivalent to:
1212
- * @code mutable_buffer(
1213
- * data.data(),
1214
- * data.size() * sizeof(PodType)); @endcode
1215
- */
1216
- template <typename PodType, std::size_t N>
1217
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(
1218
- std::array<PodType, N>& data) BOOST_ASIO_NOEXCEPT
1219
- {
1220
- return BOOST_ASIO_MUTABLE_BUFFER(data.data(), data.size() * sizeof(PodType));
1221
- }
1222
-
1223
- /// Create a new modifiable buffer that represents the given POD array.
1224
- /**
1225
- * @returns A mutable_buffer value equivalent to:
1226
- * @code mutable_buffer(
1227
- * data.data(),
1228
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1229
- */
1230
- template <typename PodType, std::size_t N>
1231
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(std::array<PodType, N>& data,
1232
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1233
- {
1234
- return BOOST_ASIO_MUTABLE_BUFFER(data.data(),
1235
- data.size() * sizeof(PodType) < max_size_in_bytes
1236
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1237
- }
1238
-
1239
- /// Create a new non-modifiable buffer that represents the given POD array.
1240
- /**
1241
- * @returns A const_buffer value equivalent to:
1242
- * @code const_buffer(
1243
- * data.data(),
1244
- * data.size() * sizeof(PodType)); @endcode
1245
- */
1246
- template <typename PodType, std::size_t N>
1247
- inline BOOST_ASIO_CONST_BUFFER buffer(
1248
- std::array<const PodType, N>& data) BOOST_ASIO_NOEXCEPT
1249
- {
1250
- return BOOST_ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1251
- }
1252
-
1253
- /// Create a new non-modifiable buffer that represents the given POD array.
1254
- /**
1255
- * @returns A const_buffer value equivalent to:
1256
- * @code const_buffer(
1257
- * data.data(),
1258
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1259
- */
1260
- template <typename PodType, std::size_t N>
1261
- inline BOOST_ASIO_CONST_BUFFER buffer(std::array<const PodType, N>& data,
1262
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1263
- {
1264
- return BOOST_ASIO_CONST_BUFFER(data.data(),
1265
- data.size() * sizeof(PodType) < max_size_in_bytes
1266
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1267
- }
1268
-
1269
- /// Create a new non-modifiable buffer that represents the given POD array.
1270
- /**
1271
- * @returns A const_buffer value equivalent to:
1272
- * @code const_buffer(
1273
- * data.data(),
1274
- * data.size() * sizeof(PodType)); @endcode
1275
- */
1276
- template <typename PodType, std::size_t N>
1277
- inline BOOST_ASIO_CONST_BUFFER buffer(
1278
- const std::array<PodType, N>& data) BOOST_ASIO_NOEXCEPT
1279
- {
1280
- return BOOST_ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(PodType));
1281
- }
1282
-
1283
- /// Create a new non-modifiable buffer that represents the given POD array.
1284
- /**
1285
- * @returns A const_buffer value equivalent to:
1286
- * @code const_buffer(
1287
- * data.data(),
1288
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1289
- */
1290
- template <typename PodType, std::size_t N>
1291
- inline BOOST_ASIO_CONST_BUFFER buffer(const std::array<PodType, N>& data,
1292
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1293
- {
1294
- return BOOST_ASIO_CONST_BUFFER(data.data(),
1295
- data.size() * sizeof(PodType) < max_size_in_bytes
1296
- ? data.size() * sizeof(PodType) : max_size_in_bytes);
1297
- }
1298
-
1299
- #endif // defined(BOOST_ASIO_HAS_STD_ARRAY) || defined(GENERATING_DOCUMENTATION)
1300
-
1301
- /// Create a new modifiable buffer that represents the given POD vector.
1302
- /**
1303
- * @returns A mutable_buffer value equivalent to:
1304
- * @code mutable_buffer(
1305
- * data.size() ? &data[0] : 0,
1306
- * data.size() * sizeof(PodType)); @endcode
1307
- *
1308
- * @note The buffer is invalidated by any vector operation that would also
1309
- * invalidate iterators.
1310
- */
1311
- template <typename PodType, typename Allocator>
1312
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(
1313
- std::vector<PodType, Allocator>& data) BOOST_ASIO_NOEXCEPT
1314
- {
1315
- return BOOST_ASIO_MUTABLE_BUFFER(
1316
- data.size() ? &data[0] : 0, data.size() * sizeof(PodType)
1317
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1318
- , detail::buffer_debug_check<
1319
- typename std::vector<PodType, Allocator>::iterator
1320
- >(data.begin())
1321
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1322
- );
1323
- }
1324
-
1325
- /// Create a new modifiable buffer that represents the given POD vector.
1326
- /**
1327
- * @returns A mutable_buffer value equivalent to:
1328
- * @code mutable_buffer(
1329
- * data.size() ? &data[0] : 0,
1330
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1331
- *
1332
- * @note The buffer is invalidated by any vector operation that would also
1333
- * invalidate iterators.
1334
- */
1335
- template <typename PodType, typename Allocator>
1336
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(std::vector<PodType, Allocator>& data,
1337
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1338
- {
1339
- return BOOST_ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0,
1340
- data.size() * sizeof(PodType) < max_size_in_bytes
1341
- ? data.size() * sizeof(PodType) : max_size_in_bytes
1342
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1343
- , detail::buffer_debug_check<
1344
- typename std::vector<PodType, Allocator>::iterator
1345
- >(data.begin())
1346
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1347
- );
1348
- }
1349
-
1350
- /// Create a new non-modifiable buffer that represents the given POD vector.
1351
- /**
1352
- * @returns A const_buffer value equivalent to:
1353
- * @code const_buffer(
1354
- * data.size() ? &data[0] : 0,
1355
- * data.size() * sizeof(PodType)); @endcode
1356
- *
1357
- * @note The buffer is invalidated by any vector operation that would also
1358
- * invalidate iterators.
1359
- */
1360
- template <typename PodType, typename Allocator>
1361
- inline BOOST_ASIO_CONST_BUFFER buffer(
1362
- const std::vector<PodType, Allocator>& data) BOOST_ASIO_NOEXCEPT
1363
- {
1364
- return BOOST_ASIO_CONST_BUFFER(
1365
- data.size() ? &data[0] : 0, data.size() * sizeof(PodType)
1366
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1367
- , detail::buffer_debug_check<
1368
- typename std::vector<PodType, Allocator>::const_iterator
1369
- >(data.begin())
1370
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1371
- );
1372
- }
1373
-
1374
- /// Create a new non-modifiable buffer that represents the given POD vector.
1375
- /**
1376
- * @returns A const_buffer value equivalent to:
1377
- * @code const_buffer(
1378
- * data.size() ? &data[0] : 0,
1379
- * min(data.size() * sizeof(PodType), max_size_in_bytes)); @endcode
1380
- *
1381
- * @note The buffer is invalidated by any vector operation that would also
1382
- * invalidate iterators.
1383
- */
1384
- template <typename PodType, typename Allocator>
1385
- inline BOOST_ASIO_CONST_BUFFER buffer(
1386
- const std::vector<PodType, Allocator>& data,
1387
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1388
- {
1389
- return BOOST_ASIO_CONST_BUFFER(data.size() ? &data[0] : 0,
1390
- data.size() * sizeof(PodType) < max_size_in_bytes
1391
- ? data.size() * sizeof(PodType) : max_size_in_bytes
1392
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1393
- , detail::buffer_debug_check<
1394
- typename std::vector<PodType, Allocator>::const_iterator
1395
- >(data.begin())
1396
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1397
- );
1398
- }
1399
-
1400
- /// Create a new modifiable buffer that represents the given string.
1401
- /**
1402
- * @returns <tt>mutable_buffer(data.size() ? &data[0] : 0,
1403
- * data.size() * sizeof(Elem))</tt>.
1404
- *
1405
- * @note The buffer is invalidated by any non-const operation called on the
1406
- * given string object.
1407
- */
1408
- template <typename Elem, typename Traits, typename Allocator>
1409
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(
1410
- std::basic_string<Elem, Traits, Allocator>& data) BOOST_ASIO_NOEXCEPT
1411
- {
1412
- return BOOST_ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0,
1413
- data.size() * sizeof(Elem)
1414
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1415
- , detail::buffer_debug_check<
1416
- typename std::basic_string<Elem, Traits, Allocator>::iterator
1417
- >(data.begin())
1418
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1419
- );
1420
- }
1421
-
1422
- /// Create a new modifiable buffer that represents the given string.
1423
- /**
1424
- * @returns A mutable_buffer value equivalent to:
1425
- * @code mutable_buffer(
1426
- * data.size() ? &data[0] : 0,
1427
- * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode
1428
- *
1429
- * @note The buffer is invalidated by any non-const operation called on the
1430
- * given string object.
1431
- */
1432
- template <typename Elem, typename Traits, typename Allocator>
1433
- inline BOOST_ASIO_MUTABLE_BUFFER buffer(
1434
- std::basic_string<Elem, Traits, Allocator>& data,
1435
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1436
- {
1437
- return BOOST_ASIO_MUTABLE_BUFFER(data.size() ? &data[0] : 0,
1438
- data.size() * sizeof(Elem) < max_size_in_bytes
1439
- ? data.size() * sizeof(Elem) : max_size_in_bytes
1440
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1441
- , detail::buffer_debug_check<
1442
- typename std::basic_string<Elem, Traits, Allocator>::iterator
1443
- >(data.begin())
1444
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1445
- );
1446
- }
1447
-
1448
- /// Create a new non-modifiable buffer that represents the given string.
1449
- /**
1450
- * @returns <tt>const_buffer(data.data(), data.size() * sizeof(Elem))</tt>.
1451
- *
1452
- * @note The buffer is invalidated by any non-const operation called on the
1453
- * given string object.
1454
- */
1455
- template <typename Elem, typename Traits, typename Allocator>
1456
- inline BOOST_ASIO_CONST_BUFFER buffer(
1457
- const std::basic_string<Elem, Traits, Allocator>& data) BOOST_ASIO_NOEXCEPT
1458
- {
1459
- return BOOST_ASIO_CONST_BUFFER(data.data(), data.size() * sizeof(Elem)
1460
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1461
- , detail::buffer_debug_check<
1462
- typename std::basic_string<Elem, Traits, Allocator>::const_iterator
1463
- >(data.begin())
1464
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1465
- );
1466
- }
1467
-
1468
- /// Create a new non-modifiable buffer that represents the given string.
1469
- /**
1470
- * @returns A const_buffer value equivalent to:
1471
- * @code const_buffer(
1472
- * data.data(),
1473
- * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode
1474
- *
1475
- * @note The buffer is invalidated by any non-const operation called on the
1476
- * given string object.
1477
- */
1478
- template <typename Elem, typename Traits, typename Allocator>
1479
- inline BOOST_ASIO_CONST_BUFFER buffer(
1480
- const std::basic_string<Elem, Traits, Allocator>& data,
1481
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1482
- {
1483
- return BOOST_ASIO_CONST_BUFFER(data.data(),
1484
- data.size() * sizeof(Elem) < max_size_in_bytes
1485
- ? data.size() * sizeof(Elem) : max_size_in_bytes
1486
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1487
- , detail::buffer_debug_check<
1488
- typename std::basic_string<Elem, Traits, Allocator>::const_iterator
1489
- >(data.begin())
1490
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1491
- );
1492
- }
1493
-
1494
- #if defined(BOOST_ASIO_HAS_STRING_VIEW) \
1495
- || defined(GENERATING_DOCUMENTATION)
1496
-
1497
- /// Create a new modifiable buffer that represents the given string_view.
1498
- /**
1499
- * @returns <tt>mutable_buffer(data.size() ? &data[0] : 0,
1500
- * data.size() * sizeof(Elem))</tt>.
1501
- */
1502
- template <typename Elem, typename Traits>
1503
- inline BOOST_ASIO_CONST_BUFFER buffer(
1504
- basic_string_view<Elem, Traits> data) BOOST_ASIO_NOEXCEPT
1505
- {
1506
- return BOOST_ASIO_CONST_BUFFER(data.size() ? &data[0] : 0,
1507
- data.size() * sizeof(Elem)
1508
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1509
- , detail::buffer_debug_check<
1510
- typename basic_string_view<Elem, Traits>::iterator
1511
- >(data.begin())
1512
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1513
- );
1514
- }
1515
-
1516
- /// Create a new non-modifiable buffer that represents the given string.
1517
- /**
1518
- * @returns A mutable_buffer value equivalent to:
1519
- * @code mutable_buffer(
1520
- * data.size() ? &data[0] : 0,
1521
- * min(data.size() * sizeof(Elem), max_size_in_bytes)); @endcode
1522
- */
1523
- template <typename Elem, typename Traits>
1524
- inline BOOST_ASIO_CONST_BUFFER buffer(
1525
- basic_string_view<Elem, Traits> data,
1526
- std::size_t max_size_in_bytes) BOOST_ASIO_NOEXCEPT
1527
- {
1528
- return BOOST_ASIO_CONST_BUFFER(data.size() ? &data[0] : 0,
1529
- data.size() * sizeof(Elem) < max_size_in_bytes
1530
- ? data.size() * sizeof(Elem) : max_size_in_bytes
1531
- #if defined(BOOST_ASIO_ENABLE_BUFFER_DEBUGGING)
1532
- , detail::buffer_debug_check<
1533
- typename basic_string_view<Elem, Traits>::iterator
1534
- >(data.begin())
1535
- #endif // BOOST_ASIO_ENABLE_BUFFER_DEBUGGING
1536
- );
1537
- }
1538
-
1539
- #endif // defined(BOOST_ASIO_HAS_STRING_VIEW)
1540
- // || defined(GENERATING_DOCUMENTATION)
1541
-
1542
- /*@}*/
1543
-
1544
- /// Adapt a basic_string to the DynamicBuffer requirements.
1545
- /**
1546
- * Requires that <tt>sizeof(Elem) == 1</tt>.
1547
- */
1548
- template <typename Elem, typename Traits, typename Allocator>
1549
- class dynamic_string_buffer
1550
- {
1551
- public:
1552
- /// The type used to represent a sequence of constant buffers that refers to
1553
- /// the underlying memory.
1554
- typedef BOOST_ASIO_CONST_BUFFER const_buffers_type;
1555
-
1556
- /// The type used to represent a sequence of mutable buffers that refers to
1557
- /// the underlying memory.
1558
- typedef BOOST_ASIO_MUTABLE_BUFFER mutable_buffers_type;
1559
-
1560
- /// Construct a dynamic buffer from a string.
1561
- /**
1562
- * @param s The string to be used as backing storage for the dynamic buffer.
1563
- * The object stores a reference to the string and the user is responsible
1564
- * for ensuring that the string object remains valid while the
1565
- * dynamic_string_buffer object, and copies of the object, are in use.
1566
- *
1567
- * @b DynamicBuffer_v1: Any existing data in the string is treated as the
1568
- * dynamic buffer's input sequence.
1569
- *
1570
- * @param maximum_size Specifies a maximum size for the buffer, in bytes.
1571
- */
1572
- explicit dynamic_string_buffer(std::basic_string<Elem, Traits, Allocator>& s,
1573
- std::size_t maximum_size =
1574
- (std::numeric_limits<std::size_t>::max)()) BOOST_ASIO_NOEXCEPT
1575
- : string_(s),
1576
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1577
- size_((std::numeric_limits<std::size_t>::max)()),
1578
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1579
- max_size_(maximum_size)
1580
- {
1581
- }
1582
-
1583
- /// @b DynamicBuffer_v2: Copy construct a dynamic buffer.
1584
- dynamic_string_buffer(const dynamic_string_buffer& other) BOOST_ASIO_NOEXCEPT
1585
- : string_(other.string_),
1586
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1587
- size_(other.size_),
1588
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1589
- max_size_(other.max_size_)
1590
- {
1591
- }
1592
-
1593
- #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1594
- /// Move construct a dynamic buffer.
1595
- dynamic_string_buffer(dynamic_string_buffer&& other) BOOST_ASIO_NOEXCEPT
1596
- : string_(other.string_),
1597
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1598
- size_(other.size_),
1599
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1600
- max_size_(other.max_size_)
1601
- {
1602
- }
1603
- #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1604
-
1605
- /// @b DynamicBuffer_v1: Get the size of the input sequence.
1606
- /// @b DynamicBuffer_v2: Get the current size of the underlying memory.
1607
- /**
1608
- * @returns @b DynamicBuffer_v1 The current size of the input sequence.
1609
- * @b DynamicBuffer_v2: The current size of the underlying string if less than
1610
- * max_size(). Otherwise returns max_size().
1611
- */
1612
- std::size_t size() const BOOST_ASIO_NOEXCEPT
1613
- {
1614
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1615
- if (size_ != (std::numeric_limits<std::size_t>::max)())
1616
- return size_;
1617
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1618
- return (std::min)(string_.size(), max_size());
1619
- }
1620
-
1621
- /// Get the maximum size of the dynamic buffer.
1622
- /**
1623
- * @returns The allowed maximum size of the underlying memory.
1624
- */
1625
- std::size_t max_size() const BOOST_ASIO_NOEXCEPT
1626
- {
1627
- return max_size_;
1628
- }
1629
-
1630
- /// Get the maximum size that the buffer may grow to without triggering
1631
- /// reallocation.
1632
- /**
1633
- * @returns The current capacity of the underlying string if less than
1634
- * max_size(). Otherwise returns max_size().
1635
- */
1636
- std::size_t capacity() const BOOST_ASIO_NOEXCEPT
1637
- {
1638
- return (std::min)(string_.capacity(), max_size());
1639
- }
1640
-
1641
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1642
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the input
1643
- /// sequence.
1644
- /**
1645
- * @returns An object of type @c const_buffers_type that satisfies
1646
- * ConstBufferSequence requirements, representing the basic_string memory in
1647
- * the input sequence.
1648
- *
1649
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1650
- * or @c basic_string member function that resizes or erases the string.
1651
- */
1652
- const_buffers_type data() const BOOST_ASIO_NOEXCEPT
1653
- {
1654
- return const_buffers_type(boost::asio::buffer(string_, size_));
1655
- }
1656
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1657
-
1658
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1659
- /// underlying memory.
1660
- /**
1661
- * @param pos Position of the first byte to represent in the buffer sequence
1662
- *
1663
- * @param n The number of bytes to return in the buffer sequence. If the
1664
- * underlying memory is shorter, the buffer sequence represents as many bytes
1665
- * as are available.
1666
- *
1667
- * @returns An object of type @c mutable_buffers_type that satisfies
1668
- * MutableBufferSequence requirements, representing the basic_string memory.
1669
- *
1670
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1671
- * or @c basic_string member function that resizes or erases the string.
1672
- */
1673
- mutable_buffers_type data(std::size_t pos, std::size_t n) BOOST_ASIO_NOEXCEPT
1674
- {
1675
- return mutable_buffers_type(boost::asio::buffer(
1676
- boost::asio::buffer(string_, max_size_) + pos, n));
1677
- }
1678
-
1679
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1680
- /// underlying memory.
1681
- /**
1682
- * @param pos Position of the first byte to represent in the buffer sequence
1683
- *
1684
- * @param n The number of bytes to return in the buffer sequence. If the
1685
- * underlying memory is shorter, the buffer sequence represents as many bytes
1686
- * as are available.
1687
- *
1688
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1689
- * or @c basic_string member function that resizes or erases the string.
1690
- */
1691
- const_buffers_type data(std::size_t pos,
1692
- std::size_t n) const BOOST_ASIO_NOEXCEPT
1693
- {
1694
- return const_buffers_type(boost::asio::buffer(
1695
- boost::asio::buffer(string_, max_size_) + pos, n));
1696
- }
1697
-
1698
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1699
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the output
1700
- /// sequence, with the given size.
1701
- /**
1702
- * Ensures that the output sequence can accommodate @c n bytes, resizing the
1703
- * basic_string object as necessary.
1704
- *
1705
- * @returns An object of type @c mutable_buffers_type that satisfies
1706
- * MutableBufferSequence requirements, representing basic_string memory
1707
- * at the start of the output sequence of size @c n.
1708
- *
1709
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
1710
- *
1711
- * @note The returned object is invalidated by any @c dynamic_string_buffer
1712
- * or @c basic_string member function that modifies the input sequence or
1713
- * output sequence.
1714
- */
1715
- mutable_buffers_type prepare(std::size_t n)
1716
- {
1717
- if (size() > max_size() || max_size() - size() < n)
1718
- {
1719
- std::length_error ex("dynamic_string_buffer too long");
1720
- boost::asio::detail::throw_exception(ex);
1721
- }
1722
-
1723
- if (size_ == (std::numeric_limits<std::size_t>::max)())
1724
- size_ = string_.size(); // Enable v1 behaviour.
1725
-
1726
- string_.resize(size_ + n);
1727
-
1728
- return boost::asio::buffer(boost::asio::buffer(string_) + size_, n);
1729
- }
1730
-
1731
- /// @b DynamicBuffer_v1: Move bytes from the output sequence to the input
1732
- /// sequence.
1733
- /**
1734
- * @param n The number of bytes to append from the start of the output
1735
- * sequence to the end of the input sequence. The remainder of the output
1736
- * sequence is discarded.
1737
- *
1738
- * Requires a preceding call <tt>prepare(x)</tt> where <tt>x >= n</tt>, and
1739
- * no intervening operations that modify the input or output sequence.
1740
- *
1741
- * @note If @c n is greater than the size of the output sequence, the entire
1742
- * output sequence is moved to the input sequence and no error is issued.
1743
- */
1744
- void commit(std::size_t n)
1745
- {
1746
- size_ += (std::min)(n, string_.size() - size_);
1747
- string_.resize(size_);
1748
- }
1749
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1750
-
1751
- /// @b DynamicBuffer_v2: Grow the underlying memory by the specified number of
1752
- /// bytes.
1753
- /**
1754
- * Resizes the string to accommodate an additional @c n bytes at the end.
1755
- *
1756
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
1757
- */
1758
- void grow(std::size_t n)
1759
- {
1760
- if (size() > max_size() || max_size() - size() < n)
1761
- {
1762
- std::length_error ex("dynamic_string_buffer too long");
1763
- boost::asio::detail::throw_exception(ex);
1764
- }
1765
-
1766
- string_.resize(size() + n);
1767
- }
1768
-
1769
- /// @b DynamicBuffer_v2: Shrink the underlying memory by the specified number
1770
- /// of bytes.
1771
- /**
1772
- * Erases @c n bytes from the end of the string by resizing the basic_string
1773
- * object. If @c n is greater than the current size of the string, the string
1774
- * is emptied.
1775
- */
1776
- void shrink(std::size_t n)
1777
- {
1778
- string_.resize(n > size() ? 0 : size() - n);
1779
- }
1780
-
1781
- /// @b DynamicBuffer_v1: Remove characters from the input sequence.
1782
- /// @b DynamicBuffer_v2: Consume the specified number of bytes from the
1783
- /// beginning of the underlying memory.
1784
- /**
1785
- * @b DynamicBuffer_v1: Removes @c n characters from the beginning of the
1786
- * input sequence. @note If @c n is greater than the size of the input
1787
- * sequence, the entire input sequence is consumed and no error is issued.
1788
- *
1789
- * @b DynamicBuffer_v2: Erases @c n bytes from the beginning of the string.
1790
- * If @c n is greater than the current size of the string, the string is
1791
- * emptied.
1792
- */
1793
- void consume(std::size_t n)
1794
- {
1795
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1796
- if (size_ != (std::numeric_limits<std::size_t>::max)())
1797
- {
1798
- std::size_t consume_length = (std::min)(n, size_);
1799
- string_.erase(0, consume_length);
1800
- size_ -= consume_length;
1801
- return;
1802
- }
1803
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1804
- string_.erase(0, n);
1805
- }
1806
-
1807
- private:
1808
- std::basic_string<Elem, Traits, Allocator>& string_;
1809
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1810
- std::size_t size_;
1811
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1812
- const std::size_t max_size_;
1813
- };
1814
-
1815
- /// Adapt a vector to the DynamicBuffer requirements.
1816
- /**
1817
- * Requires that <tt>sizeof(Elem) == 1</tt>.
1818
- */
1819
- template <typename Elem, typename Allocator>
1820
- class dynamic_vector_buffer
1821
- {
1822
- public:
1823
- /// The type used to represent a sequence of constant buffers that refers to
1824
- /// the underlying memory.
1825
- typedef BOOST_ASIO_CONST_BUFFER const_buffers_type;
1826
-
1827
- /// The type used to represent a sequence of mutable buffers that refers to
1828
- /// the underlying memory.
1829
- typedef BOOST_ASIO_MUTABLE_BUFFER mutable_buffers_type;
1830
-
1831
- /// Construct a dynamic buffer from a vector.
1832
- /**
1833
- * @param v The vector to be used as backing storage for the dynamic buffer.
1834
- * The object stores a reference to the vector and the user is responsible
1835
- * for ensuring that the vector object remains valid while the
1836
- * dynamic_vector_buffer object, and copies of the object, are in use.
1837
- *
1838
- * @param maximum_size Specifies a maximum size for the buffer, in bytes.
1839
- */
1840
- explicit dynamic_vector_buffer(std::vector<Elem, Allocator>& v,
1841
- std::size_t maximum_size =
1842
- (std::numeric_limits<std::size_t>::max)()) BOOST_ASIO_NOEXCEPT
1843
- : vector_(v),
1844
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1845
- size_((std::numeric_limits<std::size_t>::max)()),
1846
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1847
- max_size_(maximum_size)
1848
- {
1849
- }
1850
-
1851
- /// @b DynamicBuffer_v2: Copy construct a dynamic buffer.
1852
- dynamic_vector_buffer(const dynamic_vector_buffer& other) BOOST_ASIO_NOEXCEPT
1853
- : vector_(other.vector_),
1854
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1855
- size_(other.size_),
1856
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1857
- max_size_(other.max_size_)
1858
- {
1859
- }
1860
-
1861
- #if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1862
- /// Move construct a dynamic buffer.
1863
- dynamic_vector_buffer(dynamic_vector_buffer&& other) BOOST_ASIO_NOEXCEPT
1864
- : vector_(other.vector_),
1865
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1866
- size_(other.size_),
1867
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1868
- max_size_(other.max_size_)
1869
- {
1870
- }
1871
- #endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
1872
-
1873
- /// @b DynamicBuffer_v1: Get the size of the input sequence.
1874
- /// @b DynamicBuffer_v2: Get the current size of the underlying memory.
1875
- /**
1876
- * @returns @b DynamicBuffer_v1 The current size of the input sequence.
1877
- * @b DynamicBuffer_v2: The current size of the underlying vector if less than
1878
- * max_size(). Otherwise returns max_size().
1879
- */
1880
- std::size_t size() const BOOST_ASIO_NOEXCEPT
1881
- {
1882
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1883
- if (size_ != (std::numeric_limits<std::size_t>::max)())
1884
- return size_;
1885
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1886
- return (std::min)(vector_.size(), max_size());
1887
- }
1888
-
1889
- /// Get the maximum size of the dynamic buffer.
1890
- /**
1891
- * @returns @b DynamicBuffer_v1: The allowed maximum of the sum of the sizes
1892
- * of the input sequence and output sequence. @b DynamicBuffer_v2: The allowed
1893
- * maximum size of the underlying memory.
1894
- */
1895
- std::size_t max_size() const BOOST_ASIO_NOEXCEPT
1896
- {
1897
- return max_size_;
1898
- }
1899
-
1900
- /// Get the maximum size that the buffer may grow to without triggering
1901
- /// reallocation.
1902
- /**
1903
- * @returns @b DynamicBuffer_v1: The current total capacity of the buffer,
1904
- * i.e. for both the input sequence and output sequence. @b DynamicBuffer_v2:
1905
- * The current capacity of the underlying vector if less than max_size().
1906
- * Otherwise returns max_size().
1907
- */
1908
- std::size_t capacity() const BOOST_ASIO_NOEXCEPT
1909
- {
1910
- return (std::min)(vector_.capacity(), max_size());
1911
- }
1912
-
1913
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1914
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the input
1915
- /// sequence.
1916
- /**
1917
- * @returns An object of type @c const_buffers_type that satisfies
1918
- * ConstBufferSequence requirements, representing the vector memory in the
1919
- * input sequence.
1920
- *
1921
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1922
- * or @c vector member function that modifies the input sequence or output
1923
- * sequence.
1924
- */
1925
- const_buffers_type data() const BOOST_ASIO_NOEXCEPT
1926
- {
1927
- return const_buffers_type(boost::asio::buffer(vector_, size_));
1928
- }
1929
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1930
-
1931
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1932
- /// underlying memory.
1933
- /**
1934
- * @param pos Position of the first byte to represent in the buffer sequence
1935
- *
1936
- * @param n The number of bytes to return in the buffer sequence. If the
1937
- * underlying memory is shorter, the buffer sequence represents as many bytes
1938
- * as are available.
1939
- *
1940
- * @returns An object of type @c mutable_buffers_type that satisfies
1941
- * MutableBufferSequence requirements, representing the vector memory.
1942
- *
1943
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1944
- * or @c vector member function that resizes or erases the vector.
1945
- */
1946
- mutable_buffers_type data(std::size_t pos, std::size_t n) BOOST_ASIO_NOEXCEPT
1947
- {
1948
- return mutable_buffers_type(boost::asio::buffer(
1949
- boost::asio::buffer(vector_, max_size_) + pos, n));
1950
- }
1951
-
1952
- /// @b DynamicBuffer_v2: Get a sequence of buffers that represents the
1953
- /// underlying memory.
1954
- /**
1955
- * @param pos Position of the first byte to represent in the buffer sequence
1956
- *
1957
- * @param n The number of bytes to return in the buffer sequence. If the
1958
- * underlying memory is shorter, the buffer sequence represents as many bytes
1959
- * as are available.
1960
- *
1961
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1962
- * or @c vector member function that resizes or erases the vector.
1963
- */
1964
- const_buffers_type data(std::size_t pos,
1965
- std::size_t n) const BOOST_ASIO_NOEXCEPT
1966
- {
1967
- return const_buffers_type(boost::asio::buffer(
1968
- boost::asio::buffer(vector_, max_size_) + pos, n));
1969
- }
1970
-
1971
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
1972
- /// @b DynamicBuffer_v1: Get a list of buffers that represents the output
1973
- /// sequence, with the given size.
1974
- /**
1975
- * Ensures that the output sequence can accommodate @c n bytes, resizing the
1976
- * vector object as necessary.
1977
- *
1978
- * @returns An object of type @c mutable_buffers_type that satisfies
1979
- * MutableBufferSequence requirements, representing vector memory at the
1980
- * start of the output sequence of size @c n.
1981
- *
1982
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
1983
- *
1984
- * @note The returned object is invalidated by any @c dynamic_vector_buffer
1985
- * or @c vector member function that modifies the input sequence or output
1986
- * sequence.
1987
- */
1988
- mutable_buffers_type prepare(std::size_t n)
1989
- {
1990
- if (size () > max_size() || max_size() - size() < n)
1991
- {
1992
- std::length_error ex("dynamic_vector_buffer too long");
1993
- boost::asio::detail::throw_exception(ex);
1994
- }
1995
-
1996
- if (size_ == (std::numeric_limits<std::size_t>::max)())
1997
- size_ = vector_.size(); // Enable v1 behaviour.
1998
-
1999
- vector_.resize(size_ + n);
2000
-
2001
- return boost::asio::buffer(boost::asio::buffer(vector_) + size_, n);
2002
- }
2003
-
2004
- /// @b DynamicBuffer_v1: Move bytes from the output sequence to the input
2005
- /// sequence.
2006
- /**
2007
- * @param n The number of bytes to append from the start of the output
2008
- * sequence to the end of the input sequence. The remainder of the output
2009
- * sequence is discarded.
2010
- *
2011
- * Requires a preceding call <tt>prepare(x)</tt> where <tt>x >= n</tt>, and
2012
- * no intervening operations that modify the input or output sequence.
2013
- *
2014
- * @note If @c n is greater than the size of the output sequence, the entire
2015
- * output sequence is moved to the input sequence and no error is issued.
2016
- */
2017
- void commit(std::size_t n)
2018
- {
2019
- size_ += (std::min)(n, vector_.size() - size_);
2020
- vector_.resize(size_);
2021
- }
2022
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2023
-
2024
- /// @b DynamicBuffer_v2: Grow the underlying memory by the specified number of
2025
- /// bytes.
2026
- /**
2027
- * Resizes the vector to accommodate an additional @c n bytes at the end.
2028
- *
2029
- * @throws std::length_error If <tt>size() + n > max_size()</tt>.
2030
- */
2031
- void grow(std::size_t n)
2032
- {
2033
- if (size() > max_size() || max_size() - size() < n)
2034
- {
2035
- std::length_error ex("dynamic_vector_buffer too long");
2036
- boost::asio::detail::throw_exception(ex);
2037
- }
2038
-
2039
- vector_.resize(size() + n);
2040
- }
2041
-
2042
- /// @b DynamicBuffer_v2: Shrink the underlying memory by the specified number
2043
- /// of bytes.
2044
- /**
2045
- * Erases @c n bytes from the end of the vector by resizing the vector
2046
- * object. If @c n is greater than the current size of the vector, the vector
2047
- * is emptied.
2048
- */
2049
- void shrink(std::size_t n)
2050
- {
2051
- vector_.resize(n > size() ? 0 : size() - n);
2052
- }
2053
-
2054
- /// @b DynamicBuffer_v1: Remove characters from the input sequence.
2055
- /// @b DynamicBuffer_v2: Consume the specified number of bytes from the
2056
- /// beginning of the underlying memory.
2057
- /**
2058
- * @b DynamicBuffer_v1: Removes @c n characters from the beginning of the
2059
- * input sequence. @note If @c n is greater than the size of the input
2060
- * sequence, the entire input sequence is consumed and no error is issued.
2061
- *
2062
- * @b DynamicBuffer_v2: Erases @c n bytes from the beginning of the vector.
2063
- * If @c n is greater than the current size of the vector, the vector is
2064
- * emptied.
2065
- */
2066
- void consume(std::size_t n)
2067
- {
2068
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2069
- if (size_ != (std::numeric_limits<std::size_t>::max)())
2070
- {
2071
- std::size_t consume_length = (std::min)(n, size_);
2072
- vector_.erase(vector_.begin(), vector_.begin() + consume_length);
2073
- size_ -= consume_length;
2074
- return;
2075
- }
2076
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2077
- vector_.erase(vector_.begin(), vector_.begin() + (std::min)(size(), n));
2078
- }
2079
-
2080
- private:
2081
- std::vector<Elem, Allocator>& vector_;
2082
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2083
- std::size_t size_;
2084
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2085
- const std::size_t max_size_;
2086
- };
2087
-
2088
- /** @defgroup dynamic_buffer boost::asio::dynamic_buffer
2089
- *
2090
- * @brief The boost::asio::dynamic_buffer function is used to create a
2091
- * dynamically resized buffer from a @c std::basic_string or @c std::vector.
2092
- */
2093
- /*@{*/
2094
-
2095
- /// Create a new dynamic buffer that represents the given string.
2096
- /**
2097
- * @returns <tt>dynamic_string_buffer<Elem, Traits, Allocator>(data)</tt>.
2098
- */
2099
- template <typename Elem, typename Traits, typename Allocator>
2100
- inline dynamic_string_buffer<Elem, Traits, Allocator> dynamic_buffer(
2101
- std::basic_string<Elem, Traits, Allocator>& data) BOOST_ASIO_NOEXCEPT
2102
- {
2103
- return dynamic_string_buffer<Elem, Traits, Allocator>(data);
2104
- }
2105
-
2106
- /// Create a new dynamic buffer that represents the given string.
2107
- /**
2108
- * @returns <tt>dynamic_string_buffer<Elem, Traits, Allocator>(data,
2109
- * max_size)</tt>.
2110
- */
2111
- template <typename Elem, typename Traits, typename Allocator>
2112
- inline dynamic_string_buffer<Elem, Traits, Allocator> dynamic_buffer(
2113
- std::basic_string<Elem, Traits, Allocator>& data,
2114
- std::size_t max_size) BOOST_ASIO_NOEXCEPT
2115
- {
2116
- return dynamic_string_buffer<Elem, Traits, Allocator>(data, max_size);
2117
- }
2118
-
2119
- /// Create a new dynamic buffer that represents the given vector.
2120
- /**
2121
- * @returns <tt>dynamic_vector_buffer<Elem, Allocator>(data)</tt>.
2122
- */
2123
- template <typename Elem, typename Allocator>
2124
- inline dynamic_vector_buffer<Elem, Allocator> dynamic_buffer(
2125
- std::vector<Elem, Allocator>& data) BOOST_ASIO_NOEXCEPT
2126
- {
2127
- return dynamic_vector_buffer<Elem, Allocator>(data);
2128
- }
2129
-
2130
- /// Create a new dynamic buffer that represents the given vector.
2131
- /**
2132
- * @returns <tt>dynamic_vector_buffer<Elem, Allocator>(data, max_size)</tt>.
2133
- */
2134
- template <typename Elem, typename Allocator>
2135
- inline dynamic_vector_buffer<Elem, Allocator> dynamic_buffer(
2136
- std::vector<Elem, Allocator>& data,
2137
- std::size_t max_size) BOOST_ASIO_NOEXCEPT
2138
- {
2139
- return dynamic_vector_buffer<Elem, Allocator>(data, max_size);
2140
- }
2141
-
2142
- /*@}*/
2143
-
2144
- /** @defgroup buffer_copy boost::asio::buffer_copy
2145
- *
2146
- * @brief The boost::asio::buffer_copy function is used to copy bytes from a
2147
- * source buffer (or buffer sequence) to a target buffer (or buffer sequence).
2148
- *
2149
- * The @c buffer_copy function is available in two forms:
2150
- *
2151
- * @li A 2-argument form: @c buffer_copy(target, source)
2152
- *
2153
- * @li A 3-argument form: @c buffer_copy(target, source, max_bytes_to_copy)
2154
- *
2155
- * Both forms return the number of bytes actually copied. The number of bytes
2156
- * copied is the lesser of:
2157
- *
2158
- * @li @c buffer_size(target)
2159
- *
2160
- * @li @c buffer_size(source)
2161
- *
2162
- * @li @c If specified, @c max_bytes_to_copy.
2163
- *
2164
- * This prevents buffer overflow, regardless of the buffer sizes used in the
2165
- * copy operation.
2166
- *
2167
- * Note that @ref buffer_copy is implemented in terms of @c memcpy, and
2168
- * consequently it cannot be used to copy between overlapping memory regions.
2169
- */
2170
- /*@{*/
2171
-
2172
- namespace detail {
2173
-
2174
- inline std::size_t buffer_copy_1(const mutable_buffer& target,
2175
- const const_buffer& source)
2176
- {
2177
- using namespace std; // For memcpy.
2178
- std::size_t target_size = target.size();
2179
- std::size_t source_size = source.size();
2180
- std::size_t n = target_size < source_size ? target_size : source_size;
2181
- if (n > 0)
2182
- memcpy(target.data(), source.data(), n);
2183
- return n;
2184
- }
2185
-
2186
- template <typename TargetIterator, typename SourceIterator>
2187
- inline std::size_t buffer_copy(one_buffer, one_buffer,
2188
- TargetIterator target_begin, TargetIterator,
2189
- SourceIterator source_begin, SourceIterator) BOOST_ASIO_NOEXCEPT
2190
- {
2191
- return (buffer_copy_1)(*target_begin, *source_begin);
2192
- }
2193
-
2194
- template <typename TargetIterator, typename SourceIterator>
2195
- inline std::size_t buffer_copy(one_buffer, one_buffer,
2196
- TargetIterator target_begin, TargetIterator,
2197
- SourceIterator source_begin, SourceIterator,
2198
- std::size_t max_bytes_to_copy) BOOST_ASIO_NOEXCEPT
2199
- {
2200
- return (buffer_copy_1)(*target_begin,
2201
- boost::asio::buffer(*source_begin, max_bytes_to_copy));
2202
- }
2203
-
2204
- template <typename TargetIterator, typename SourceIterator>
2205
- std::size_t buffer_copy(one_buffer, multiple_buffers,
2206
- TargetIterator target_begin, TargetIterator,
2207
- SourceIterator source_begin, SourceIterator source_end,
2208
- std::size_t max_bytes_to_copy
2209
- = (std::numeric_limits<std::size_t>::max)()) BOOST_ASIO_NOEXCEPT
2210
- {
2211
- std::size_t total_bytes_copied = 0;
2212
- SourceIterator source_iter = source_begin;
2213
-
2214
- for (mutable_buffer target_buffer(
2215
- boost::asio::buffer(*target_begin, max_bytes_to_copy));
2216
- target_buffer.size() && source_iter != source_end; ++source_iter)
2217
- {
2218
- const_buffer source_buffer(*source_iter);
2219
- std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
2220
- total_bytes_copied += bytes_copied;
2221
- target_buffer += bytes_copied;
2222
- }
2223
-
2224
- return total_bytes_copied;
2225
- }
2226
-
2227
- template <typename TargetIterator, typename SourceIterator>
2228
- std::size_t buffer_copy(multiple_buffers, one_buffer,
2229
- TargetIterator target_begin, TargetIterator target_end,
2230
- SourceIterator source_begin, SourceIterator,
2231
- std::size_t max_bytes_to_copy
2232
- = (std::numeric_limits<std::size_t>::max)()) BOOST_ASIO_NOEXCEPT
2233
- {
2234
- std::size_t total_bytes_copied = 0;
2235
- TargetIterator target_iter = target_begin;
2236
-
2237
- for (const_buffer source_buffer(
2238
- boost::asio::buffer(*source_begin, max_bytes_to_copy));
2239
- source_buffer.size() && target_iter != target_end; ++target_iter)
2240
- {
2241
- mutable_buffer target_buffer(*target_iter);
2242
- std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
2243
- total_bytes_copied += bytes_copied;
2244
- source_buffer += bytes_copied;
2245
- }
2246
-
2247
- return total_bytes_copied;
2248
- }
2249
-
2250
- template <typename TargetIterator, typename SourceIterator>
2251
- std::size_t buffer_copy(multiple_buffers, multiple_buffers,
2252
- TargetIterator target_begin, TargetIterator target_end,
2253
- SourceIterator source_begin, SourceIterator source_end) BOOST_ASIO_NOEXCEPT
2254
- {
2255
- std::size_t total_bytes_copied = 0;
2256
-
2257
- TargetIterator target_iter = target_begin;
2258
- std::size_t target_buffer_offset = 0;
2259
-
2260
- SourceIterator source_iter = source_begin;
2261
- std::size_t source_buffer_offset = 0;
2262
-
2263
- while (target_iter != target_end && source_iter != source_end)
2264
- {
2265
- mutable_buffer target_buffer =
2266
- mutable_buffer(*target_iter) + target_buffer_offset;
2267
-
2268
- const_buffer source_buffer =
2269
- const_buffer(*source_iter) + source_buffer_offset;
2270
-
2271
- std::size_t bytes_copied = (buffer_copy_1)(target_buffer, source_buffer);
2272
- total_bytes_copied += bytes_copied;
2273
-
2274
- if (bytes_copied == target_buffer.size())
2275
- {
2276
- ++target_iter;
2277
- target_buffer_offset = 0;
2278
- }
2279
- else
2280
- target_buffer_offset += bytes_copied;
2281
-
2282
- if (bytes_copied == source_buffer.size())
2283
- {
2284
- ++source_iter;
2285
- source_buffer_offset = 0;
2286
- }
2287
- else
2288
- source_buffer_offset += bytes_copied;
2289
- }
2290
-
2291
- return total_bytes_copied;
2292
- }
2293
-
2294
- template <typename TargetIterator, typename SourceIterator>
2295
- std::size_t buffer_copy(multiple_buffers, multiple_buffers,
2296
- TargetIterator target_begin, TargetIterator target_end,
2297
- SourceIterator source_begin, SourceIterator source_end,
2298
- std::size_t max_bytes_to_copy) BOOST_ASIO_NOEXCEPT
2299
- {
2300
- std::size_t total_bytes_copied = 0;
2301
-
2302
- TargetIterator target_iter = target_begin;
2303
- std::size_t target_buffer_offset = 0;
2304
-
2305
- SourceIterator source_iter = source_begin;
2306
- std::size_t source_buffer_offset = 0;
2307
-
2308
- while (total_bytes_copied != max_bytes_to_copy
2309
- && target_iter != target_end && source_iter != source_end)
2310
- {
2311
- mutable_buffer target_buffer =
2312
- mutable_buffer(*target_iter) + target_buffer_offset;
2313
-
2314
- const_buffer source_buffer =
2315
- const_buffer(*source_iter) + source_buffer_offset;
2316
-
2317
- std::size_t bytes_copied = (buffer_copy_1)(
2318
- target_buffer, boost::asio::buffer(source_buffer,
2319
- max_bytes_to_copy - total_bytes_copied));
2320
- total_bytes_copied += bytes_copied;
2321
-
2322
- if (bytes_copied == target_buffer.size())
2323
- {
2324
- ++target_iter;
2325
- target_buffer_offset = 0;
2326
- }
2327
- else
2328
- target_buffer_offset += bytes_copied;
2329
-
2330
- if (bytes_copied == source_buffer.size())
2331
- {
2332
- ++source_iter;
2333
- source_buffer_offset = 0;
2334
- }
2335
- else
2336
- source_buffer_offset += bytes_copied;
2337
- }
2338
-
2339
- return total_bytes_copied;
2340
- }
2341
-
2342
- } // namespace detail
2343
-
2344
- /// Copies bytes from a source buffer sequence to a target buffer sequence.
2345
- /**
2346
- * @param target A modifiable buffer sequence representing the memory regions to
2347
- * which the bytes will be copied.
2348
- *
2349
- * @param source A non-modifiable buffer sequence representing the memory
2350
- * regions from which the bytes will be copied.
2351
- *
2352
- * @returns The number of bytes copied.
2353
- *
2354
- * @note The number of bytes copied is the lesser of:
2355
- *
2356
- * @li @c buffer_size(target)
2357
- *
2358
- * @li @c buffer_size(source)
2359
- *
2360
- * This function is implemented in terms of @c memcpy, and consequently it
2361
- * cannot be used to copy between overlapping memory regions.
2362
- */
2363
- template <typename MutableBufferSequence, typename ConstBufferSequence>
2364
- inline std::size_t buffer_copy(const MutableBufferSequence& target,
2365
- const ConstBufferSequence& source) BOOST_ASIO_NOEXCEPT
2366
- {
2367
- return detail::buffer_copy(
2368
- detail::buffer_sequence_cardinality<MutableBufferSequence>(),
2369
- detail::buffer_sequence_cardinality<ConstBufferSequence>(),
2370
- boost::asio::buffer_sequence_begin(target),
2371
- boost::asio::buffer_sequence_end(target),
2372
- boost::asio::buffer_sequence_begin(source),
2373
- boost::asio::buffer_sequence_end(source));
2374
- }
2375
-
2376
- /// Copies a limited number of bytes from a source buffer sequence to a target
2377
- /// buffer sequence.
2378
- /**
2379
- * @param target A modifiable buffer sequence representing the memory regions to
2380
- * which the bytes will be copied.
2381
- *
2382
- * @param source A non-modifiable buffer sequence representing the memory
2383
- * regions from which the bytes will be copied.
2384
- *
2385
- * @param max_bytes_to_copy The maximum number of bytes to be copied.
2386
- *
2387
- * @returns The number of bytes copied.
2388
- *
2389
- * @note The number of bytes copied is the lesser of:
2390
- *
2391
- * @li @c buffer_size(target)
2392
- *
2393
- * @li @c buffer_size(source)
2394
- *
2395
- * @li @c max_bytes_to_copy
2396
- *
2397
- * This function is implemented in terms of @c memcpy, and consequently it
2398
- * cannot be used to copy between overlapping memory regions.
2399
- */
2400
- template <typename MutableBufferSequence, typename ConstBufferSequence>
2401
- inline std::size_t buffer_copy(const MutableBufferSequence& target,
2402
- const ConstBufferSequence& source,
2403
- std::size_t max_bytes_to_copy) BOOST_ASIO_NOEXCEPT
2404
- {
2405
- return detail::buffer_copy(
2406
- detail::buffer_sequence_cardinality<MutableBufferSequence>(),
2407
- detail::buffer_sequence_cardinality<ConstBufferSequence>(),
2408
- boost::asio::buffer_sequence_begin(target),
2409
- boost::asio::buffer_sequence_end(target),
2410
- boost::asio::buffer_sequence_begin(source),
2411
- boost::asio::buffer_sequence_end(source), max_bytes_to_copy);
2412
- }
2413
-
2414
- /*@}*/
2415
-
2416
- } // namespace asio
2417
- } // namespace boost
2418
-
2419
- #include <boost/asio/detail/pop_options.hpp>
2420
- #include <boost/asio/detail/is_buffer_sequence.hpp>
2421
- #include <boost/asio/detail/push_options.hpp>
2422
-
2423
- namespace boost {
2424
- namespace asio {
2425
-
2426
- /// Trait to determine whether a type satisfies the MutableBufferSequence
2427
- /// requirements.
2428
- template <typename T>
2429
- struct is_mutable_buffer_sequence
2430
- #if defined(GENERATING_DOCUMENTATION)
2431
- : integral_constant<bool, automatically_determined>
2432
- #else // defined(GENERATING_DOCUMENTATION)
2433
- : boost::asio::detail::is_buffer_sequence<T, mutable_buffer>
2434
- #endif // defined(GENERATING_DOCUMENTATION)
2435
- {
2436
- };
2437
-
2438
- /// Trait to determine whether a type satisfies the ConstBufferSequence
2439
- /// requirements.
2440
- template <typename T>
2441
- struct is_const_buffer_sequence
2442
- #if defined(GENERATING_DOCUMENTATION)
2443
- : integral_constant<bool, automatically_determined>
2444
- #else // defined(GENERATING_DOCUMENTATION)
2445
- : boost::asio::detail::is_buffer_sequence<T, const_buffer>
2446
- #endif // defined(GENERATING_DOCUMENTATION)
2447
- {
2448
- };
2449
-
2450
- #if !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2451
- /// Trait to determine whether a type satisfies the DynamicBuffer_v1
2452
- /// requirements.
2453
- template <typename T>
2454
- struct is_dynamic_buffer_v1
2455
- #if defined(GENERATING_DOCUMENTATION)
2456
- : integral_constant<bool, automatically_determined>
2457
- #else // defined(GENERATING_DOCUMENTATION)
2458
- : boost::asio::detail::is_dynamic_buffer_v1<T>
2459
- #endif // defined(GENERATING_DOCUMENTATION)
2460
- {
2461
- };
2462
- #endif // !defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2463
-
2464
- /// Trait to determine whether a type satisfies the DynamicBuffer_v2
2465
- /// requirements.
2466
- template <typename T>
2467
- struct is_dynamic_buffer_v2
2468
- #if defined(GENERATING_DOCUMENTATION)
2469
- : integral_constant<bool, automatically_determined>
2470
- #else // defined(GENERATING_DOCUMENTATION)
2471
- : boost::asio::detail::is_dynamic_buffer_v2<T>
2472
- #endif // defined(GENERATING_DOCUMENTATION)
2473
- {
2474
- };
2475
-
2476
- /// Trait to determine whether a type satisfies the DynamicBuffer requirements.
2477
- /**
2478
- * If @c BOOST_ASIO_NO_DYNAMIC_BUFFER_V1 is not defined, determines whether the
2479
- * type satisfies the DynamicBuffer_v1 requirements. Otherwise, if @c
2480
- * BOOST_ASIO_NO_DYNAMIC_BUFFER_V1 is defined, determines whether the type
2481
- * satisfies the DynamicBuffer_v2 requirements.
2482
- */
2483
- template <typename T>
2484
- struct is_dynamic_buffer
2485
- #if defined(GENERATING_DOCUMENTATION)
2486
- : integral_constant<bool, automatically_determined>
2487
- #elif defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2488
- : boost::asio::is_dynamic_buffer_v2<T>
2489
- #else // defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2490
- : boost::asio::is_dynamic_buffer_v1<T>
2491
- #endif // defined(BOOST_ASIO_NO_DYNAMIC_BUFFER_V1)
2492
- {
2493
- };
2494
-
2495
- } // namespace asio
2496
- } // namespace boost
2497
-
2498
- #include <boost/asio/detail/pop_options.hpp>
2499
-
2500
- #endif // BOOST_ASIO_BUFFER_HPP