passenger 5.1.12 → 5.2.0

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

Potentially problematic release.


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

Files changed (824) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG +18 -1
  3. data/Rakefile +4 -1
  4. data/build/agent.rb +2 -2
  5. data/build/apache2.rb +17 -10
  6. data/build/basics.rb +18 -4
  7. data/build/common_library.rb +7 -3
  8. data/build/cxx_tests.rb +2 -7
  9. data/build/misc.rb +3 -1
  10. data/build/nginx.rb +11 -5
  11. data/build/oxt_tests.rb +0 -3
  12. data/build/packaging.rb +3 -2
  13. data/build/schema_printer.rb +103 -0
  14. data/build/support/cplusplus.rb +2 -2
  15. data/build/support/cxx_dependency_map.rb +2575 -868
  16. data/dev/ci/lib/functions.sh +1 -1
  17. data/dev/ci/lib/set-container-envvars.sh +1 -1
  18. data/dev/ci/lib/setup-container.sh +1 -1
  19. data/dev/ci/run-tests-natively +1 -1
  20. data/dev/ci/run-tests-with-docker +1 -1
  21. data/dev/ci/scripts/debug-console-wrapper.sh +1 -1
  22. data/dev/ci/scripts/docker-entrypoint-stage2.sh +1 -1
  23. data/dev/ci/scripts/docker-entrypoint.sh +1 -1
  24. data/dev/ci/scripts/inituidgid +1 -1
  25. data/dev/ci/scripts/run-tests-natively-stage2.sh +1 -1
  26. data/dev/ci/scripts/setup-host-natively.sh +1 -1
  27. data/dev/ci/setup-host +1 -1
  28. data/dev/ci/tests/apache2/run +1 -1
  29. data/dev/ci/tests/apache2/setup +1 -1
  30. data/dev/ci/tests/cxx/run +1 -1
  31. data/dev/ci/tests/cxx/setup +1 -1
  32. data/dev/ci/tests/debian/Jenkinsfile +0 -1
  33. data/dev/ci/tests/debian/run +1 -1
  34. data/dev/ci/tests/nginx-dynamic/run +1 -1
  35. data/dev/ci/tests/nginx-dynamic/setup +1 -1
  36. data/dev/ci/tests/nginx/run +1 -1
  37. data/dev/ci/tests/nginx/setup +1 -1
  38. data/dev/ci/tests/nodejs/run +1 -1
  39. data/dev/ci/tests/nodejs/setup +1 -1
  40. data/dev/ci/tests/rpm/run +1 -1
  41. data/dev/ci/tests/ruby/run +1 -1
  42. data/dev/ci/tests/ruby/setup +1 -1
  43. data/dev/ci/tests/source-packaging/run +1 -1
  44. data/dev/ci/tests/source-packaging/setup +1 -1
  45. data/dev/ci/tests/standalone/run +1 -1
  46. data/dev/ci/tests/standalone/setup +1 -1
  47. data/dev/configkit-schemas/index.json +1708 -0
  48. data/dev/configkit-schemas/update_schema_inline_comments.rb +118 -0
  49. data/dev/copy_boost_headers +13 -1
  50. data/dev/index_cxx_dependencies.rb +20 -7
  51. data/dev/vagrant/provision.sh +1 -1
  52. data/resources/mime.types +1 -0
  53. data/resources/templates/standalone/http.erb +1 -6
  54. data/src/agent/Core/AdminPanelConnector.h +550 -0
  55. data/src/agent/Core/ApiServer.h +159 -97
  56. data/src/agent/Core/ApplicationPool/Group.h +2 -0
  57. data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
  58. data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +109 -0
  59. data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -3
  60. data/src/agent/Core/ApplicationPool/Options.h +5 -6
  61. data/src/agent/Core/ApplicationPool/Pool.h +59 -2
  62. data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -3
  63. data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
  64. data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +6 -0
  65. data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +129 -0
  66. data/src/agent/Core/Config.h +475 -0
  67. data/src/agent/Core/ConfigChange.cpp +349 -0
  68. data/src/agent/Core/ConfigChange.h +54 -0
  69. data/src/agent/Core/Controller.h +35 -3
  70. data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
  71. data/src/agent/Core/Controller/Config.cpp +0 -2
  72. data/src/agent/Core/Controller/Config.h +168 -104
  73. data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
  74. data/src/agent/Core/Controller/InitRequest.cpp +14 -15
  75. data/src/agent/Core/Controller/InitializationAndShutdown.cpp +34 -44
  76. data/src/agent/Core/Controller/Request.h +0 -1
  77. data/src/agent/Core/CoreMain.cpp +236 -349
  78. data/src/agent/Core/OptionParser.h +75 -89
  79. data/src/agent/Core/SecurityUpdateChecker.h +263 -100
  80. data/src/agent/Core/SpawningKit/Config.h +6 -2
  81. data/src/agent/Core/SpawningKit/Spawner.h +0 -45
  82. data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -0
  83. data/src/agent/Shared/ApiAccountUtils.h +318 -0
  84. data/src/agent/Shared/ApiServerUtils.h +3 -104
  85. data/src/agent/Shared/Fundamentals/Initialization.cpp +81 -44
  86. data/src/agent/Shared/Fundamentals/Initialization.h +12 -7
  87. data/src/agent/TempDirToucher/TempDirToucherMain.cpp +21 -0
  88. data/src/agent/Watchdog/AgentWatcher.cpp +1 -1
  89. data/src/agent/Watchdog/ApiServer.h +100 -14
  90. data/src/agent/Watchdog/Config.h +340 -0
  91. data/src/agent/Watchdog/CoreWatcher.cpp +27 -13
  92. data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
  93. data/src/agent/Watchdog/WatchdogMain.cpp +190 -206
  94. data/src/apache2_module/Bucket.cpp +4 -0
  95. data/src/apache2_module/Bucket.h +7 -3
  96. data/src/apache2_module/CBindings.cpp +49 -0
  97. data/src/apache2_module/Config.cpp +242 -0
  98. data/src/apache2_module/Config.h +109 -0
  99. data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +485 -0
  100. data/src/apache2_module/{ConfigurationCommands.cpp.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder} +29 -15
  101. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +298 -0
  102. data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +171 -0
  103. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +854 -0
  104. data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +188 -0
  105. data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +610 -0
  106. data/src/apache2_module/ConfigGeneral/SetterFuncs.h +65 -0
  107. data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +174 -0
  108. data/src/apache2_module/{MergeDirConfig.cpp.cxxcodebuilder → DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder} +54 -32
  109. data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +113 -0
  110. data/src/apache2_module/{SetHeaders.cpp.cxxcodebuilder → DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder} +34 -23
  111. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +426 -0
  112. data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +165 -0
  113. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +269 -0
  114. data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +148 -0
  115. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +534 -0
  116. data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +230 -0
  117. data/src/apache2_module/DirectoryMapper.h +19 -16
  118. data/src/apache2_module/Hooks.cpp +124 -138
  119. data/src/apache2_module/Hooks.h +9 -14
  120. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +263 -0
  121. data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +152 -0
  122. data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +299 -0
  123. data/src/apache2_module/{ConfigurationFields.hpp.cxxcodebuilder → ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder} +105 -18
  124. data/src/apache2_module/Utils.h +215 -0
  125. data/src/apache2_module/mod_passenger.c +16 -8
  126. data/src/cxx_supportlib/AppTypes.h +2 -0
  127. data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
  128. data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +8 -8
  129. data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +7 -41
  130. data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +12 -66
  131. data/src/cxx_supportlib/ConfigKit/Schema.h +62 -11
  132. data/src/cxx_supportlib/ConfigKit/{ValidationUtils.h → SchemaUtils.h} +12 -3
  133. data/src/cxx_supportlib/ConfigKit/Store.h +17 -9
  134. data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -1
  135. data/src/cxx_supportlib/ConfigKit/TableTranslator.h +13 -70
  136. data/src/cxx_supportlib/ConfigKit/Translator.h +125 -0
  137. data/src/cxx_supportlib/Constants.h +1 -3
  138. data/src/cxx_supportlib/FileTools/FileManip.cpp +297 -0
  139. data/src/cxx_supportlib/FileTools/FileManip.h +162 -0
  140. data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.cpp +6 -3
  141. data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.h +7 -5
  142. data/src/cxx_supportlib/FileTools/PathManip.cpp +240 -0
  143. data/src/cxx_supportlib/FileTools/PathManip.h +91 -0
  144. data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +62 -0
  145. data/src/{apache2_module/Configuration.h → cxx_supportlib/FileTools/PathManipCBindings.h} +12 -19
  146. data/src/cxx_supportlib/Hooks.h +19 -16
  147. data/src/cxx_supportlib/InstanceDirectory.h +11 -0
  148. data/src/cxx_supportlib/JsonTools/Autocast.h +79 -0
  149. data/src/cxx_supportlib/JsonTools/CBindings.cpp +364 -0
  150. data/src/cxx_supportlib/JsonTools/CBindings.h +101 -0
  151. data/src/cxx_supportlib/LoggingKit/Config.h +13 -0
  152. data/src/cxx_supportlib/LoggingKit/Context.h +5 -2
  153. data/src/cxx_supportlib/LoggingKit/Forward.h +0 -1
  154. data/src/cxx_supportlib/LoggingKit/Implementation.cpp +12 -4
  155. data/src/cxx_supportlib/ResourceLocator.h +15 -0
  156. data/src/cxx_supportlib/ServerKit/Config.h +156 -0
  157. data/src/cxx_supportlib/ServerKit/Context.h +59 -38
  158. data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
  159. data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -2
  160. data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -2
  161. data/src/cxx_supportlib/ServerKit/Server.h +32 -15
  162. data/src/cxx_supportlib/Utils.cpp +0 -441
  163. data/src/cxx_supportlib/Utils.h +0 -158
  164. data/src/cxx_supportlib/Utils/Curl.h +1 -0
  165. data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +1 -0
  166. data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +2 -0
  167. data/src/cxx_supportlib/Utils/VariantMap.h +31 -0
  168. data/src/cxx_supportlib/WatchdogLauncher.cpp +7 -79
  169. data/src/cxx_supportlib/WatchdogLauncher.h +50 -53
  170. data/src/cxx_supportlib/WebSocketCommandReverseServer.h +981 -0
  171. data/src/cxx_supportlib/oxt/macros.hpp +9 -0
  172. data/src/cxx_supportlib/vendor-copy/websocketpp/COPYING +145 -0
  173. data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +342 -0
  174. data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +49 -0
  175. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/base64/base64.hpp +178 -0
  176. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/client.hpp +33 -0
  177. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +342 -0
  178. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +131 -0
  179. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio_ssl.hpp +39 -0
  180. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/chrono.hpp +68 -0
  181. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/connection_hdl.hpp +52 -0
  182. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/cpp11.hpp +162 -0
  183. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp +105 -0
  184. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/md5.hpp +448 -0
  185. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +89 -0
  186. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/network.hpp +106 -0
  187. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/platforms.hpp +46 -0
  188. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/random.hpp +82 -0
  189. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/regex.hpp +59 -0
  190. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/stdint.hpp +73 -0
  191. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/system_error.hpp +84 -0
  192. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +84 -0
  193. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/time.hpp +56 -0
  194. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/type_traits.hpp +65 -0
  195. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/basic.hpp +46 -0
  196. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/none.hpp +80 -0
  197. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio.hpp +77 -0
  198. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_client.hpp +77 -0
  199. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls.hpp +73 -0
  200. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls_client.hpp +73 -0
  201. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/boost_config.hpp +72 -0
  202. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +285 -0
  203. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core_client.hpp +294 -0
  204. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug.hpp +286 -0
  205. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio.hpp +77 -0
  206. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +73 -0
  207. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_client.hpp +72 -0
  208. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_server.hpp +312 -0
  209. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +1651 -0
  210. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection_base.hpp +38 -0
  211. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +700 -0
  212. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint_base.hpp +38 -0
  213. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/error.hpp +277 -0
  214. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/extension.hpp +102 -0
  215. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +128 -0
  216. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +752 -0
  217. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +861 -0
  218. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/constants.hpp +308 -0
  219. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +196 -0
  220. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/request.hpp +191 -0
  221. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/response.hpp +266 -0
  222. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +619 -0
  223. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/request.hpp +124 -0
  224. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/response.hpp +188 -0
  225. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +2372 -0
  226. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +269 -0
  227. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/utilities_impl.hpp +87 -0
  228. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/basic.hpp +199 -0
  229. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/levels.hpp +203 -0
  230. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/stub.hpp +119 -0
  231. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/syslog.hpp +146 -0
  232. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/alloc.hpp +105 -0
  233. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/message.hpp +340 -0
  234. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/pool.hpp +229 -0
  235. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +299 -0
  236. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi00.hpp +462 -0
  237. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi07.hpp +78 -0
  238. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi08.hpp +83 -0
  239. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +1056 -0
  240. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/processor.hpp +407 -0
  241. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/none.hpp +60 -0
  242. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/random_device.hpp +80 -0
  243. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +173 -0
  244. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +190 -0
  245. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/server.hpp +33 -0
  246. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -0
  247. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/base.hpp +232 -0
  248. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +1204 -0
  249. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +1147 -0
  250. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/base.hpp +159 -0
  251. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +370 -0
  252. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +484 -0
  253. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/connection.hpp +238 -0
  254. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +77 -0
  255. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/base.hpp +104 -0
  256. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +412 -0
  257. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +140 -0
  258. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/base.hpp +133 -0
  259. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +714 -0
  260. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +222 -0
  261. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/base.hpp +95 -0
  262. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +286 -0
  263. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/endpoint.hpp +140 -0
  264. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +355 -0
  265. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utf8_validator.hpp +154 -0
  266. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +182 -0
  267. data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +61 -0
  268. data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +121 -0
  269. data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +96 -0
  270. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +951 -0
  271. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +520 -0
  272. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +258 -0
  273. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +942 -0
  274. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +567 -0
  275. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +697 -0
  276. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +386 -0
  277. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +1519 -0
  278. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +1137 -0
  279. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +288 -0
  280. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +569 -0
  281. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +854 -0
  282. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +371 -0
  283. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +35 -0
  284. data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +521 -0
  285. data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2241 -0
  286. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +246 -0
  287. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +27 -0
  288. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +260 -0
  289. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +27 -0
  290. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +238 -0
  291. data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +27 -0
  292. data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +483 -0
  293. data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +220 -0
  294. data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +825 -0
  295. data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +330 -0
  296. data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +438 -0
  297. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +40 -0
  298. data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +173 -0
  299. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +40 -0
  300. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +40 -0
  301. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +34 -0
  302. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +32 -0
  303. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +47 -0
  304. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +70 -0
  305. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +491 -0
  306. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +68 -0
  307. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +385 -0
  308. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +128 -0
  309. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +127 -0
  310. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +192 -0
  311. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +83 -0
  312. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +1050 -0
  313. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +294 -0
  314. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +48 -0
  315. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +34 -0
  316. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +229 -0
  317. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +38 -0
  318. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +119 -0
  319. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +121 -0
  320. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +121 -0
  321. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +208 -0
  322. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +244 -0
  323. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +50 -0
  324. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +85 -0
  325. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +41 -0
  326. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +82 -0
  327. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/function.hpp +40 -0
  328. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +91 -0
  329. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
  330. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +65 -0
  331. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +99 -0
  332. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +82 -0
  333. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +45 -0
  334. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +57 -0
  335. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +161 -0
  336. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +480 -0
  337. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +333 -0
  338. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +120 -0
  339. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +453 -0
  340. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +80 -0
  341. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +432 -0
  342. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +78 -0
  343. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +688 -0
  344. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +167 -0
  345. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +307 -0
  346. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +82 -0
  347. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +498 -0
  348. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +126 -0
  349. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +49 -0
  350. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +48 -0
  351. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +76 -0
  352. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +48 -0
  353. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +210 -0
  354. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +153 -0
  355. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +269 -0
  356. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +132 -0
  357. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +89 -0
  358. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +315 -0
  359. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +90 -0
  360. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +190 -0
  361. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +649 -0
  362. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +3470 -0
  363. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +178 -0
  364. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +120 -0
  365. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +178 -0
  366. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +80 -0
  367. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.ipp +476 -0
  368. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +47 -0
  369. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +86 -0
  370. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +103 -0
  371. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +136 -0
  372. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +72 -0
  373. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +222 -0
  374. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +26 -0
  375. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +61 -0
  376. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +63 -0
  377. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +31 -0
  378. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +50 -0
  379. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +45 -0
  380. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +90 -0
  381. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +47 -0
  382. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +66 -0
  383. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +69 -0
  384. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +71 -0
  385. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +500 -0
  386. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +62 -0
  387. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +63 -0
  388. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +70 -0
  389. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +148 -0
  390. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +216 -0
  391. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +158 -0
  392. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +40 -0
  393. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +91 -0
  394. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +131 -0
  395. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +128 -0
  396. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +120 -0
  397. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +78 -0
  398. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +87 -0
  399. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +66 -0
  400. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +107 -0
  401. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +81 -0
  402. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +166 -0
  403. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +324 -0
  404. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +90 -0
  405. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +236 -0
  406. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +138 -0
  407. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +108 -0
  408. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +125 -0
  409. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +135 -0
  410. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +127 -0
  411. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +122 -0
  412. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +125 -0
  413. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +460 -0
  414. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +452 -0
  415. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +32 -0
  416. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +42 -0
  417. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +63 -0
  418. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +170 -0
  419. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +35 -0
  420. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +123 -0
  421. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +133 -0
  422. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +131 -0
  423. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +131 -0
  424. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +103 -0
  425. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +81 -0
  426. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +48 -0
  427. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +221 -0
  428. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +146 -0
  429. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +40 -0
  430. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +46 -0
  431. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +84 -0
  432. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +49 -0
  433. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +51 -0
  434. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +218 -0
  435. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +100 -0
  436. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +336 -0
  437. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +318 -0
  438. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +93 -0
  439. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +410 -0
  440. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +63 -0
  441. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +54 -0
  442. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +178 -0
  443. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +64 -0
  444. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +75 -0
  445. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +83 -0
  446. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +67 -0
  447. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +144 -0
  448. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service.hpp +203 -0
  449. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_operation.hpp +78 -0
  450. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_thread_info.hpp +42 -0
  451. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +58 -0
  452. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +93 -0
  453. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +55 -0
  454. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +53 -0
  455. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +333 -0
  456. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +70 -0
  457. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +95 -0
  458. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +68 -0
  459. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +35 -0
  460. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +42 -0
  461. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +71 -0
  462. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +60 -0
  463. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +63 -0
  464. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +85 -0
  465. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +47 -0
  466. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +40 -0
  467. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +230 -0
  468. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +130 -0
  469. data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +293 -0
  470. data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +345 -0
  471. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +195 -0
  472. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +125 -0
  473. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +135 -0
  474. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +111 -0
  475. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +123 -0
  476. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +124 -0
  477. data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +129 -0
  478. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +83 -0
  479. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +56 -0
  480. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +87 -0
  481. data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +114 -0
  482. data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +65 -0
  483. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +360 -0
  484. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +340 -0
  485. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +432 -0
  486. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +130 -0
  487. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +79 -0
  488. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +156 -0
  489. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +157 -0
  490. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +755 -0
  491. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +812 -0
  492. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +1149 -0
  493. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +61 -0
  494. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +556 -0
  495. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +355 -0
  496. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +25 -0
  497. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +73 -0
  498. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +179 -0
  499. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +767 -0
  500. data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +827 -0
  501. data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +772 -0
  502. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +202 -0
  503. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +243 -0
  504. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +248 -0
  505. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +265 -0
  506. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +270 -0
  507. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +96 -0
  508. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +262 -0
  509. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +246 -0
  510. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +141 -0
  511. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +206 -0
  512. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +571 -0
  513. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +44 -0
  514. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +117 -0
  515. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +55 -0
  516. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +228 -0
  517. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +55 -0
  518. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +180 -0
  519. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +55 -0
  520. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +300 -0
  521. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +57 -0
  522. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +56 -0
  523. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +193 -0
  524. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +132 -0
  525. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +178 -0
  526. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +157 -0
  527. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +113 -0
  528. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +72 -0
  529. data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +71 -0
  530. data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +61 -0
  531. data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +61 -0
  532. data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +241 -0
  533. data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +106 -0
  534. data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +82 -0
  535. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +135 -0
  536. data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +130 -0
  537. data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +92 -0
  538. data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +125 -0
  539. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +492 -0
  540. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +364 -0
  541. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +99 -0
  542. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +39 -0
  543. data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +262 -0
  544. data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +438 -0
  545. data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +633 -0
  546. data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +666 -0
  547. data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +925 -0
  548. data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +386 -0
  549. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +38 -0
  550. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +169 -0
  551. data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +255 -0
  552. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +30 -0
  553. data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +136 -0
  554. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +308 -0
  555. data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +522 -0
  556. data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +267 -0
  557. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +30 -0
  558. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +42 -0
  559. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +789 -0
  560. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +194 -0
  561. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +42 -0
  562. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +112 -0
  563. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +166 -0
  564. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +70 -0
  565. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +327 -0
  566. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +166 -0
  567. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +351 -0
  568. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +103 -0
  569. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +30 -0
  570. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +74 -0
  571. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +75 -0
  572. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +62 -0
  573. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +128 -0
  574. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +70 -0
  575. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +75 -0
  576. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +115 -0
  577. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +73 -0
  578. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +1177 -0
  579. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +102 -0
  580. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +168 -0
  581. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +28 -0
  582. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +436 -0
  583. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +176 -0
  584. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +396 -0
  585. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +526 -0
  586. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +573 -0
  587. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +503 -0
  588. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +186 -0
  589. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +102 -0
  590. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +758 -0
  591. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +54 -0
  592. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +42 -0
  593. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +75 -0
  594. data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +65 -0
  595. data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +63 -0
  596. data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +254 -0
  597. data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +382 -0
  598. data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +35 -0
  599. data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +59 -0
  600. data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +88 -0
  601. data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +21 -0
  602. data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +94 -0
  603. data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +23 -0
  604. data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +43 -0
  605. data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +170 -0
  606. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +283 -0
  607. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +180 -0
  608. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +378 -0
  609. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +361 -0
  610. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +40 -0
  611. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +179 -0
  612. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +118 -0
  613. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +39 -0
  614. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +222 -0
  615. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +39 -0
  616. data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +220 -0
  617. data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +620 -0
  618. data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +672 -0
  619. data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +23 -0
  620. data/src/cxx_supportlib/vendor-modified/boost/chrono.hpp +20 -0
  621. data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono.hpp +15 -0
  622. data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono_io.hpp +34 -0
  623. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/chrono.hpp +46 -0
  624. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +242 -0
  625. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +356 -0
  626. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +92 -0
  627. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +121 -0
  628. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +354 -0
  629. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +92 -0
  630. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/process_cpu_clocks.hpp +46 -0
  631. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/thread_clock.hpp +46 -0
  632. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp +54 -0
  633. data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +163 -0
  634. data/src/cxx_supportlib/vendor-modified/boost/chrono/floor.hpp +36 -0
  635. data/src/cxx_supportlib/vendor-modified/boost/chrono/include.hpp +23 -0
  636. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +593 -0
  637. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +295 -0
  638. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +317 -0
  639. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +35 -0
  640. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1003 -0
  641. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/ios_base_state.hpp +152 -0
  642. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_get.hpp +330 -0
  643. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1243 -0
  644. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_put.hpp +261 -0
  645. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +260 -0
  646. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +30 -0
  647. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +437 -0
  648. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/manip_base.hpp +101 -0
  649. data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/to_string.hpp +50 -0
  650. data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +637 -0
  651. data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +525 -0
  652. data/src/cxx_supportlib/vendor-modified/boost/chrono/round.hpp +59 -0
  653. data/src/cxx_supportlib/vendor-modified/boost/chrono/thread_clock.hpp +75 -0
  654. data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/chrono/chrono.hpp +32 -0
  655. data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/ratio.hpp +24 -0
  656. data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
  657. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +16 -0
  658. data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +460 -0
  659. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +112 -0
  660. data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +126 -0
  661. data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +51 -0
  662. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +15 -0
  663. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +18 -0
  664. data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +19 -0
  665. data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +250 -0
  666. data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +121 -0
  667. data/src/cxx_supportlib/vendor-modified/boost/random.hpp +91 -0
  668. data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +283 -0
  669. data/src/cxx_supportlib/vendor-modified/boost/random/bernoulli_distribution.hpp +197 -0
  670. data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +184 -0
  671. data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +434 -0
  672. data/src/cxx_supportlib/vendor-modified/boost/random/cauchy_distribution.hpp +214 -0
  673. data/src/cxx_supportlib/vendor-modified/boost/random/chi_squared_distribution.hpp +209 -0
  674. data/src/cxx_supportlib/vendor-modified/boost/random/detail/auto_link.hpp +40 -0
  675. data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +18 -0
  676. data/src/cxx_supportlib/vendor-modified/boost/random/detail/const_mod.hpp +216 -0
  677. data/src/cxx_supportlib/vendor-modified/boost/random/detail/disable_warnings.hpp +29 -0
  678. data/src/cxx_supportlib/vendor-modified/boost/random/detail/enable_warnings.hpp +22 -0
  679. data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_bits.hpp +36 -0
  680. data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_seed_seq.hpp +40 -0
  681. data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +121 -0
  682. data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +84 -0
  683. data/src/cxx_supportlib/vendor-modified/boost/random/detail/iterator_mixin.hpp +45 -0
  684. data/src/cxx_supportlib/vendor-modified/boost/random/detail/large_arithmetic.hpp +122 -0
  685. data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +84 -0
  686. data/src/cxx_supportlib/vendor-modified/boost/random/detail/polynomial.hpp +384 -0
  687. data/src/cxx_supportlib/vendor-modified/boost/random/detail/ptr_helper.hpp +67 -0
  688. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +115 -0
  689. data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +398 -0
  690. data/src/cxx_supportlib/vendor-modified/boost/random/detail/signed_unsigned_tools.hpp +89 -0
  691. data/src/cxx_supportlib/vendor-modified/boost/random/detail/uniform_int_float.hpp +76 -0
  692. data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +75 -0
  693. data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +241 -0
  694. data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +636 -0
  695. data/src/cxx_supportlib/vendor-modified/boost/random/exponential_distribution.hpp +386 -0
  696. data/src/cxx_supportlib/vendor-modified/boost/random/extreme_value_distribution.hpp +177 -0
  697. data/src/cxx_supportlib/vendor-modified/boost/random/fisher_f_distribution.hpp +183 -0
  698. data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +292 -0
  699. data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +96 -0
  700. data/src/cxx_supportlib/vendor-modified/boost/random/geometric_distribution.hpp +267 -0
  701. data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +883 -0
  702. data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +271 -0
  703. data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +267 -0
  704. data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +537 -0
  705. data/src/cxx_supportlib/vendor-modified/boost/random/laplace_distribution.hpp +175 -0
  706. data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +466 -0
  707. data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +217 -0
  708. data/src/cxx_supportlib/vendor-modified/boost/random/lognormal_distribution.hpp +254 -0
  709. data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +682 -0
  710. data/src/cxx_supportlib/vendor-modified/boost/random/negative_binomial_distribution.hpp +220 -0
  711. data/src/cxx_supportlib/vendor-modified/boost/random/non_central_chi_squared_distribution.hpp +221 -0
  712. data/src/cxx_supportlib/vendor-modified/boost/random/normal_distribution.hpp +374 -0
  713. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +466 -0
  714. data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +531 -0
  715. data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +360 -0
  716. data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +143 -0
  717. data/src/cxx_supportlib/vendor-modified/boost/random/random_number_generator.hpp +73 -0
  718. data/src/cxx_supportlib/vendor-modified/boost/random/ranlux.hpp +99 -0
  719. data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +118 -0
  720. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +269 -0
  721. data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_output.hpp +51 -0
  722. data/src/cxx_supportlib/vendor-modified/boost/random/student_t_distribution.hpp +180 -0
  723. data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +613 -0
  724. data/src/cxx_supportlib/vendor-modified/boost/random/taus88.hpp +45 -0
  725. data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +107 -0
  726. data/src/cxx_supportlib/vendor-modified/boost/random/triangle_distribution.hpp +232 -0
  727. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_01.hpp +257 -0
  728. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int.hpp +99 -0
  729. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +419 -0
  730. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +284 -0
  731. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real.hpp +82 -0
  732. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +241 -0
  733. data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +307 -0
  734. data/src/cxx_supportlib/vendor-modified/boost/random/variate_generator.hpp +122 -0
  735. data/src/cxx_supportlib/vendor-modified/boost/random/weibull_distribution.hpp +177 -0
  736. data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +208 -0
  737. data/src/cxx_supportlib/vendor-modified/boost/ratio.hpp +14 -0
  738. data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +1342 -0
  739. data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +16 -0
  740. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +30 -0
  741. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +22 -0
  742. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +19 -0
  743. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +30 -0
  744. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +30 -0
  745. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +30 -0
  746. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +30 -0
  747. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +30 -0
  748. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +30 -0
  749. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +30 -0
  750. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +30 -0
  751. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +30 -0
  752. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +30 -0
  753. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +30 -0
  754. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +31 -0
  755. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +30 -0
  756. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +25 -0
  757. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +15 -0
  758. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +30 -0
  759. data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +30 -0
  760. data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +1076 -0
  761. data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1002 -0
  762. data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +11 -0
  763. data/src/helper-scripts/rack-preloader.rb +1 -1
  764. data/src/nginx_module/{ConfigurationCommands.c → ConfigGeneral/AutoGeneratedDefinitions.c} +351 -134
  765. data/src/nginx_module/{ConfigurationCommands.c.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder} +14 -25
  766. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +396 -0
  767. data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +160 -0
  768. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +831 -0
  769. data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +168 -0
  770. data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +887 -0
  771. data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +100 -0
  772. data/src/nginx_module/Configuration.c +165 -621
  773. data/src/nginx_module/Configuration.h +43 -33
  774. data/src/nginx_module/ContentHandler.c +46 -40
  775. data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +282 -0
  776. data/src/nginx_module/{CreateLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder} +43 -17
  777. data/src/nginx_module/{CacheLocationConfig.c → LocationConfig/AutoGeneratedHeaderSerialization.c} +148 -180
  778. data/src/nginx_module/{CacheLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder} +13 -11
  779. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +595 -0
  780. data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +190 -0
  781. data/src/nginx_module/{MergeLocationConfig.c → LocationConfig/AutoGeneratedMergeFunction.c} +32 -42
  782. data/src/nginx_module/{MergeLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder} +18 -11
  783. data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +220 -0
  784. data/src/nginx_module/{LocationConfig.h.cxxcodebuilder → LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder} +70 -48
  785. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +163 -0
  786. data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +125 -0
  787. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +303 -0
  788. data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +173 -0
  789. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +133 -0
  790. data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +154 -0
  791. data/src/nginx_module/config +13 -4
  792. data/src/nginx_module/ngx_http_passenger_module.c +154 -84
  793. data/src/ruby_supportlib/phusion_passenger.rb +2 -2
  794. data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +613 -131
  795. data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +52 -0
  796. data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -4
  797. data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -0
  798. data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +104 -0
  799. data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -2
  800. data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +470 -138
  801. data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
  802. data/src/ruby_supportlib/phusion_passenger/platform_info.rb +17 -0
  803. data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -1
  804. data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +7 -7
  805. data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +293 -0
  806. data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -54
  807. data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -5
  808. data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -7
  809. data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
  810. data/src/schema_printer/SchemaPrinterMain.cpp +78 -0
  811. data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +116 -0
  812. metadata +671 -30
  813. data/src/apache2_module/Configuration.cpp +0 -737
  814. data/src/apache2_module/Configuration.hpp +0 -274
  815. data/src/apache2_module/ConfigurationCommands.cpp +0 -199
  816. data/src/apache2_module/ConfigurationFields.hpp +0 -187
  817. data/src/apache2_module/ConfigurationSetters.cpp +0 -436
  818. data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +0 -144
  819. data/src/apache2_module/CreateDirConfig.cpp +0 -68
  820. data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +0 -81
  821. data/src/apache2_module/MergeDirConfig.cpp +0 -155
  822. data/src/apache2_module/SetHeaders.cpp +0 -111
  823. data/src/nginx_module/CreateLocationConfig.c +0 -100
  824. data/src/nginx_module/LocationConfig.h +0 -95
@@ -0,0 +1,208 @@
1
+ /* boost random/xor_combine.hpp header file
2
+ *
3
+ * Copyright Jens Maurer 2002
4
+ * Distributed under the Boost Software License, Version 1.0. (See
5
+ * accompanying file LICENSE_1_0.txt or copy at
6
+ * http://www.boost.org/LICENSE_1_0.txt)
7
+ *
8
+ * See http://www.boost.org for most recent version including documentation.
9
+ *
10
+ * $Id$
11
+ *
12
+ */
13
+
14
+ #ifndef BOOST_RANDOM_XOR_COMBINE_HPP
15
+ #define BOOST_RANDOM_XOR_COMBINE_HPP
16
+
17
+ #include <istream>
18
+ #include <iosfwd>
19
+ #include <cassert>
20
+ #include <algorithm> // for std::min and std::max
21
+ #include <boost/config.hpp>
22
+ #include <boost/limits.hpp>
23
+ #include <boost/cstdint.hpp> // uint32_t
24
+ #include <boost/random/detail/config.hpp>
25
+ #include <boost/random/detail/seed.hpp>
26
+ #include <boost/random/detail/seed_impl.hpp>
27
+ #include <boost/random/detail/operators.hpp>
28
+
29
+ namespace boost {
30
+ namespace random {
31
+
32
+ /**
33
+ * Instantiations of @c xor_combine_engine model a
34
+ * \pseudo_random_number_generator. To produce its output it
35
+ * invokes each of the base generators, shifts their results
36
+ * and xors them together.
37
+ */
38
+ template<class URNG1, int s1, class URNG2, int s2>
39
+ class xor_combine_engine
40
+ {
41
+ public:
42
+ typedef URNG1 base1_type;
43
+ typedef URNG2 base2_type;
44
+ typedef typename base1_type::result_type result_type;
45
+
46
+ BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
47
+ BOOST_STATIC_CONSTANT(int, shift1 = s1);
48
+ BOOST_STATIC_CONSTANT(int, shift2 = s2);
49
+
50
+ /**
51
+ * Constructors a @c xor_combine_engine by default constructing
52
+ * both base generators.
53
+ */
54
+ xor_combine_engine() : _rng1(), _rng2() { }
55
+
56
+ /** Constructs a @c xor_combine by copying two base generators. */
57
+ xor_combine_engine(const base1_type & rng1, const base2_type & rng2)
58
+ : _rng1(rng1), _rng2(rng2) { }
59
+
60
+ /**
61
+ * Constructs a @c xor_combine_engine, seeding both base generators
62
+ * with @c v.
63
+ *
64
+ * @xmlwarning
65
+ * The exact algorithm used by this function may change in the future.
66
+ * @endxmlwarning
67
+ */
68
+ BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(xor_combine_engine,
69
+ result_type, v)
70
+ { seed(v); }
71
+
72
+ /**
73
+ * Constructs a @c xor_combine_engine, seeding both base generators
74
+ * with values produced by @c seq.
75
+ */
76
+ BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(xor_combine_engine,
77
+ SeedSeq, seq)
78
+ { seed(seq); }
79
+
80
+ /**
81
+ * Constructs a @c xor_combine_engine, seeding both base generators
82
+ * with values from the iterator range [first, last) and changes
83
+ * first to point to the element after the last one used. If there
84
+ * are not enough elements in the range to seed both generators,
85
+ * throws @c std::invalid_argument.
86
+ */
87
+ template<class It> xor_combine_engine(It& first, It last)
88
+ : _rng1(first, last), _rng2( /* advanced by other call */ first, last) { }
89
+
90
+ /** Calls @c seed() for both base generators. */
91
+ void seed() { _rng1.seed(); _rng2.seed(); }
92
+
93
+ /** @c seeds both base generators with @c v. */
94
+ BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(xor_combine_engine, result_type, v)
95
+ { _rng1.seed(v); _rng2.seed(v); }
96
+
97
+ /** @c seeds both base generators with values produced by @c seq. */
98
+ BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(xor_combine_engine, SeedSeq, seq)
99
+ { _rng1.seed(seq); _rng2.seed(seq); }
100
+
101
+ /**
102
+ * seeds both base generators with values from the iterator
103
+ * range [first, last) and changes first to point to the element
104
+ * after the last one used. If there are not enough elements in
105
+ * the range to seed both generators, throws @c std::invalid_argument.
106
+ */
107
+ template<class It> void seed(It& first, It last)
108
+ {
109
+ _rng1.seed(first, last);
110
+ _rng2.seed(first, last);
111
+ }
112
+
113
+ /** Returns the first base generator. */
114
+ const base1_type& base1() const { return _rng1; }
115
+
116
+ /** Returns the second base generator. */
117
+ const base2_type& base2() const { return _rng2; }
118
+
119
+ /** Returns the next value of the generator. */
120
+ result_type operator()()
121
+ {
122
+ return (_rng1() << s1) ^ (_rng2() << s2);
123
+ }
124
+
125
+ /** Fills a range with random values */
126
+ template<class Iter>
127
+ void generate(Iter first, Iter last)
128
+ { detail::generate_from_int(*this, first, last); }
129
+
130
+ /** Advances the state of the generator by @c z. */
131
+ void discard(boost::uintmax_t z)
132
+ {
133
+ _rng1.discard(z);
134
+ _rng2.discard(z);
135
+ }
136
+
137
+ /** Returns the smallest value that the generator can produce. */
138
+ static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () { return (std::min)((URNG1::min)(), (URNG2::min)()); }
139
+ /** Returns the largest value that the generator can produce. */
140
+ static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () { return (std::max)((URNG1::min)(), (URNG2::max)()); }
141
+
142
+ /**
143
+ * Writes the textual representation of the generator to a @c std::ostream.
144
+ */
145
+ BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, xor_combine_engine, s)
146
+ {
147
+ os << s._rng1 << ' ' << s._rng2;
148
+ return os;
149
+ }
150
+
151
+ /**
152
+ * Reads the textual representation of the generator from a @c std::istream.
153
+ */
154
+ BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, xor_combine_engine, s)
155
+ {
156
+ is >> s._rng1 >> std::ws >> s._rng2;
157
+ return is;
158
+ }
159
+
160
+ /** Returns true if the two generators will produce identical sequences. */
161
+ BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(xor_combine_engine, x, y)
162
+ { return x._rng1 == y._rng1 && x._rng2 == y._rng2; }
163
+
164
+ /** Returns true if the two generators will produce different sequences. */
165
+ BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(xor_combine_engine)
166
+
167
+ private:
168
+ base1_type _rng1;
169
+ base2_type _rng2;
170
+ };
171
+
172
+ #ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
173
+ // A definition is required even for integral static constants
174
+ template<class URNG1, int s1, class URNG2, int s2>
175
+ const bool xor_combine_engine<URNG1, s1, URNG2, s2>::has_fixed_range;
176
+ template<class URNG1, int s1, class URNG2, int s2>
177
+ const int xor_combine_engine<URNG1, s1, URNG2, s2>::shift1;
178
+ template<class URNG1, int s1, class URNG2, int s2>
179
+ const int xor_combine_engine<URNG1, s1, URNG2, s2>::shift2;
180
+ #endif
181
+
182
+ /// \cond show_private
183
+
184
+ /** Provided for backwards compatibility. */
185
+ template<class URNG1, int s1, class URNG2, int s2,
186
+ typename URNG1::result_type v = 0>
187
+ class xor_combine : public xor_combine_engine<URNG1, s1, URNG2, s2>
188
+ {
189
+ typedef xor_combine_engine<URNG1, s1, URNG2, s2> base_type;
190
+ public:
191
+ typedef typename base_type::result_type result_type;
192
+ xor_combine() {}
193
+ xor_combine(result_type val) : base_type(val) {}
194
+ template<class It>
195
+ xor_combine(It& first, It last) : base_type(first, last) {}
196
+ xor_combine(const URNG1 & rng1, const URNG2 & rng2)
197
+ : base_type(rng1, rng2) { }
198
+
199
+ result_type min BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (std::min)((this->base1().min)(), (this->base2().min)()); }
200
+ result_type max BOOST_PREVENT_MACRO_SUBSTITUTION () const { return (std::max)((this->base1().min)(), (this->base2().max)()); }
201
+ };
202
+
203
+ /// \endcond
204
+
205
+ } // namespace random
206
+ } // namespace boost
207
+
208
+ #endif // BOOST_RANDOM_XOR_COMBINE_HPP
@@ -0,0 +1,14 @@
1
+ // ratio.hpp ---------------------------------------------------------------//
2
+
3
+ // Copyright 2010 Vicente J. Botet Escriba
4
+
5
+ // Distributed under the Boost Software License, Version 1.0.
6
+ // See http://www.boost.org/LICENSE_1_0.txt
7
+
8
+
9
+ #ifndef BOOST_RATIO_HPP
10
+ #define BOOST_RATIO_HPP
11
+
12
+ #include <boost/ratio/include.hpp>
13
+
14
+ #endif // BOOST_RATIO_HPP
@@ -0,0 +1,1342 @@
1
+ // ratio_io
2
+ //
3
+ // (C) Copyright Howard Hinnant
4
+ // (C) Copyright 2010 Vicente J. Botet Escriba
5
+ // Use, modification and distribution are subject to the Boost Software License,
6
+ // Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
7
+ // http://www.boost.org/LICENSE_1_0.txt).
8
+ //
9
+ // This code was adapted by Vicente from Howard Hinnant's experimental work
10
+ // on chrono i/o under lvm/libc++ to Boost
11
+
12
+ #ifndef BOOST_RATIO_DETAIL_RATIO_IO_HPP
13
+ #define BOOST_RATIO_DETAIL_RATIO_IO_HPP
14
+
15
+ /*
16
+
17
+ ratio_io synopsis
18
+
19
+ #include <ratio>
20
+ #include <string>
21
+
22
+ namespace boost
23
+ {
24
+
25
+ template <class Ratio, class CharT>
26
+ struct ratio_string
27
+ {
28
+ static basic_string<CharT> short_name();
29
+ static basic_string<CharT> long_name();
30
+ };
31
+
32
+ } // boost
33
+
34
+ */
35
+
36
+ #include <boost/config.hpp>
37
+ #include <boost/ratio/ratio.hpp>
38
+ #include <boost/type_traits/integral_constant.hpp>
39
+ #include <string>
40
+ #include <sstream>
41
+
42
+ #if defined(BOOST_NO_CXX11_UNICODE_LITERALS) || defined(BOOST_NO_CXX11_CHAR16_T) || defined(BOOST_NO_CXX11_CHAR32_T) || defined(BOOST_NO_CXX11_U16STRING) || defined(BOOST_NO_CXX11_U32STRING)
43
+ #if defined BOOST_RATIO_HAS_UNICODE_SUPPORT
44
+ #undef BOOST_RATIO_HAS_UNICODE_SUPPORT
45
+ #endif
46
+ #else
47
+ #define BOOST_RATIO_HAS_UNICODE_SUPPORT 1
48
+ #endif
49
+
50
+ namespace boost {
51
+
52
+ //template <class Ratio>
53
+ //struct ratio_string_is_localizable : false_type {};
54
+ //template <class Ratio>
55
+ //struct ratio_string_id : integral_constant<int,0> {};
56
+
57
+ template <class Ratio, class CharT>
58
+ struct ratio_string
59
+ {
60
+ static std::basic_string<CharT> short_name() {return long_name();}
61
+ static std::basic_string<CharT> long_name();
62
+ static std::basic_string<CharT> symbol() {return short_name();}
63
+ static std::basic_string<CharT> prefix() {return long_name();}
64
+ };
65
+
66
+ template <class Ratio, class CharT>
67
+ std::basic_string<CharT>
68
+ ratio_string<Ratio, CharT>::long_name()
69
+ {
70
+ std::basic_ostringstream<CharT> os;
71
+ os << CharT('[') << Ratio::num << CharT('/')
72
+ << Ratio::den << CharT(']');
73
+ return os.str();
74
+ }
75
+
76
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
77
+ namespace ratio_detail {
78
+ template <class Ratio, class CharT>
79
+ struct ratio_string_static
80
+ {
81
+ static std::string short_name() {
82
+ return std::basic_string<CharT>(
83
+ static_string::c_str<
84
+ typename ratio_static_string<Ratio, CharT>::short_name
85
+ >::value);
86
+ }
87
+ static std::string long_name() {
88
+ return std::basic_string<CharT>(
89
+ static_string::c_str<
90
+ typename ratio_static_string<Ratio, CharT>::long_name
91
+ >::value);
92
+ }
93
+ static std::basic_string<CharT> symbol() {return short_name();}
94
+ static std::basic_string<CharT> prefix() {return long_name();}
95
+ };
96
+ }
97
+ #endif
98
+ // atto
99
+ //template <>
100
+ //struct ratio_string_is_localizable<atto> : true_type {};
101
+ //
102
+ //template <>
103
+ //struct ratio_string_id<atto> : integral_constant<int,-18> {};
104
+
105
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
106
+ template <typename CharT>
107
+ struct ratio_string<atto, CharT> :
108
+ ratio_detail::ratio_string_static<atto,CharT>
109
+ {};
110
+
111
+ #else
112
+ template <>
113
+ struct ratio_string<atto, char>
114
+ {
115
+ static std::string short_name() {return std::string(1, 'a');}
116
+ static std::string long_name() {return std::string("atto");}
117
+ static std::string symbol() {return short_name();}
118
+ static std::string prefix() {return long_name();}
119
+ };
120
+
121
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
122
+
123
+ template <>
124
+ struct ratio_string<atto, char16_t>
125
+ {
126
+ static std::u16string short_name() {return std::u16string(1, u'a');}
127
+ static std::u16string long_name() {return std::u16string(u"atto");}
128
+ static std::u16string symbol() {return short_name();}
129
+ static std::u16string prefix() {return long_name();}
130
+ };
131
+
132
+ template <>
133
+ struct ratio_string<atto, char32_t>
134
+ {
135
+ static std::u32string short_name() {return std::u32string(1, U'a');}
136
+ static std::u32string long_name() {return std::u32string(U"atto");}
137
+ static std::u32string symbol() {return short_name();}
138
+ static std::u32string prefix() {return long_name();}
139
+ };
140
+
141
+ #endif
142
+
143
+ #ifndef BOOST_NO_STD_WSTRING
144
+ template <>
145
+ struct ratio_string<atto, wchar_t>
146
+ {
147
+ static std::wstring short_name() {return std::wstring(1, L'a');}
148
+ static std::wstring long_name() {return std::wstring(L"atto");}
149
+ static std::wstring symbol() {return short_name();}
150
+ static std::wstring prefix() {return long_name();}
151
+ };
152
+ #endif
153
+ #endif
154
+
155
+ // femto
156
+
157
+ //template <>
158
+ //struct ratio_string_is_localizable<femto> : true_type {};
159
+ //
160
+ //template <>
161
+ //struct ratio_string_id<femto> : integral_constant<int,-15> {};
162
+
163
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
164
+ template <typename CharT>
165
+ struct ratio_string<femto, CharT> :
166
+ ratio_detail::ratio_string_static<femto,CharT>
167
+ {};
168
+
169
+ #else
170
+
171
+ template <>
172
+ struct ratio_string<femto, char>
173
+ {
174
+ static std::string short_name() {return std::string(1, 'f');}
175
+ static std::string long_name() {return std::string("femto");}
176
+ static std::string symbol() {return short_name();}
177
+ static std::string prefix() {return long_name();}
178
+ };
179
+
180
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
181
+
182
+ template <>
183
+ struct ratio_string<femto, char16_t>
184
+ {
185
+ static std::u16string short_name() {return std::u16string(1, u'f');}
186
+ static std::u16string long_name() {return std::u16string(u"femto");}
187
+ static std::u16string symbol() {return short_name();}
188
+ static std::u16string prefix() {return long_name();}
189
+ };
190
+
191
+ template <>
192
+ struct ratio_string<femto, char32_t>
193
+ {
194
+ static std::u32string short_name() {return std::u32string(1, U'f');}
195
+ static std::u32string long_name() {return std::u32string(U"femto");}
196
+ static std::u32string symbol() {return short_name();}
197
+ static std::u32string prefix() {return long_name();}
198
+ };
199
+
200
+ #endif
201
+
202
+ #ifndef BOOST_NO_STD_WSTRING
203
+ template <>
204
+ struct ratio_string<femto, wchar_t>
205
+ {
206
+ static std::wstring short_name() {return std::wstring(1, L'f');}
207
+ static std::wstring long_name() {return std::wstring(L"femto");}
208
+ static std::wstring symbol() {return short_name();}
209
+ static std::wstring prefix() {return long_name();}
210
+ };
211
+ #endif
212
+ #endif
213
+
214
+ // pico
215
+
216
+ //template <>
217
+ //struct ratio_string_is_localizable<pico> : true_type {};
218
+ //
219
+ //template <>
220
+ //struct ratio_string_id<pico> : integral_constant<int,-12> {};
221
+
222
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
223
+ template <typename CharT>
224
+ struct ratio_string<pico, CharT> :
225
+ ratio_detail::ratio_string_static<pico,CharT>
226
+ {};
227
+
228
+ #else
229
+ template <>
230
+ struct ratio_string<pico, char>
231
+ {
232
+ static std::string short_name() {return std::string(1, 'p');}
233
+ static std::string long_name() {return std::string("pico");}
234
+ static std::string symbol() {return short_name();}
235
+ static std::string prefix() {return long_name();}
236
+ };
237
+
238
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
239
+
240
+ template <>
241
+ struct ratio_string<pico, char16_t>
242
+ {
243
+ static std::u16string short_name() {return std::u16string(1, u'p');}
244
+ static std::u16string long_name() {return std::u16string(u"pico");}
245
+ static std::u16string symbol() {return short_name();}
246
+ static std::u16string prefix() {return long_name();}
247
+ };
248
+
249
+ template <>
250
+ struct ratio_string<pico, char32_t>
251
+ {
252
+ static std::u32string short_name() {return std::u32string(1, U'p');}
253
+ static std::u32string long_name() {return std::u32string(U"pico");}
254
+ static std::u32string symbol() {return short_name();}
255
+ static std::u32string prefix() {return long_name();}
256
+ };
257
+
258
+ #endif
259
+
260
+ #ifndef BOOST_NO_STD_WSTRING
261
+ template <>
262
+ struct ratio_string<pico, wchar_t>
263
+ {
264
+ static std::wstring short_name() {return std::wstring(1, L'p');}
265
+ static std::wstring long_name() {return std::wstring(L"pico");}
266
+ static std::wstring symbol() {return short_name();}
267
+ static std::wstring prefix() {return long_name();}
268
+ };
269
+ #endif
270
+ #endif
271
+
272
+ // nano
273
+
274
+ //template <>
275
+ //struct ratio_string_is_localizable<nano> : true_type {};
276
+ //
277
+ //template <>
278
+ //struct ratio_string_id<nano> : integral_constant<int,-9> {};
279
+
280
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
281
+ template <typename CharT>
282
+ struct ratio_string<nano, CharT> :
283
+ ratio_detail::ratio_string_static<nano,CharT>
284
+ {};
285
+
286
+ #else
287
+ template <>
288
+ struct ratio_string<nano, char>
289
+ {
290
+ static std::string short_name() {return std::string(1, 'n');}
291
+ static std::string long_name() {return std::string("nano");}
292
+ static std::string symbol() {return short_name();}
293
+ static std::string prefix() {return long_name();}
294
+ };
295
+
296
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
297
+
298
+ template <>
299
+ struct ratio_string<nano, char16_t>
300
+ {
301
+ static std::u16string short_name() {return std::u16string(1, u'n');}
302
+ static std::u16string long_name() {return std::u16string(u"nano");}
303
+ static std::u16string symbol() {return short_name();}
304
+ static std::u16string prefix() {return long_name();}
305
+ };
306
+
307
+ template <>
308
+ struct ratio_string<nano, char32_t>
309
+ {
310
+ static std::u32string short_name() {return std::u32string(1, U'n');}
311
+ static std::u32string long_name() {return std::u32string(U"nano");}
312
+ static std::u32string symbol() {return short_name();}
313
+ static std::u32string prefix() {return long_name();}
314
+ };
315
+
316
+ #endif
317
+
318
+ #ifndef BOOST_NO_STD_WSTRING
319
+ template <>
320
+ struct ratio_string<nano, wchar_t>
321
+ {
322
+ static std::wstring short_name() {return std::wstring(1, L'n');}
323
+ static std::wstring long_name() {return std::wstring(L"nano");}
324
+ static std::wstring symbol() {return short_name();}
325
+ static std::wstring prefix() {return long_name();}
326
+ };
327
+ #endif
328
+ #endif
329
+
330
+ // micro
331
+
332
+ //template <>
333
+ //struct ratio_string_is_localizable<micro> : true_type {};
334
+ //
335
+ //template <>
336
+ //struct ratio_string_id<micro> : integral_constant<int,-6> {};
337
+
338
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
339
+ template <typename CharT>
340
+ struct ratio_string<micro, CharT> :
341
+ ratio_detail::ratio_string_static<micro,CharT>
342
+ {};
343
+
344
+ #else
345
+ template <>
346
+ struct ratio_string<micro, char>
347
+ {
348
+ static std::string short_name() {return std::string("\xC2\xB5");}
349
+ static std::string long_name() {return std::string("micro");}
350
+ static std::string symbol() {return short_name();}
351
+ static std::string prefix() {return long_name();}
352
+ };
353
+
354
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
355
+
356
+ template <>
357
+ struct ratio_string<micro, char16_t>
358
+ {
359
+ static std::u16string short_name() {return std::u16string(1, u'\xB5');}
360
+ static std::u16string long_name() {return std::u16string(u"micro");}
361
+ static std::u16string symbol() {return short_name();}
362
+ static std::u16string prefix() {return long_name();}
363
+ };
364
+
365
+ template <>
366
+ struct ratio_string<micro, char32_t>
367
+ {
368
+ static std::u32string short_name() {return std::u32string(1, U'\xB5');}
369
+ static std::u32string long_name() {return std::u32string(U"micro");}
370
+ static std::u32string symbol() {return short_name();}
371
+ static std::u32string prefix() {return long_name();}
372
+ };
373
+
374
+ #endif
375
+
376
+ #ifndef BOOST_NO_STD_WSTRING
377
+ template <>
378
+ struct ratio_string<micro, wchar_t>
379
+ {
380
+ static std::wstring short_name() {return std::wstring(1, L'\xB5');}
381
+ static std::wstring long_name() {return std::wstring(L"micro");}
382
+ static std::wstring symbol() {return short_name();}
383
+ static std::wstring prefix() {return long_name();}
384
+ };
385
+ #endif
386
+ #endif
387
+
388
+ // milli
389
+
390
+ //template <>
391
+ //struct ratio_string_is_localizable<milli> : true_type {};
392
+ //
393
+ //template <>
394
+ //struct ratio_string_id<milli> : integral_constant<int,-3> {};
395
+
396
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
397
+ template <typename CharT>
398
+ struct ratio_string<milli, CharT> :
399
+ ratio_detail::ratio_string_static<milli,CharT>
400
+ {};
401
+
402
+ #else
403
+ template <>
404
+ struct ratio_string<milli, char>
405
+ {
406
+ static std::string short_name() {return std::string(1, 'm');}
407
+ static std::string long_name() {return std::string("milli");}
408
+ static std::string symbol() {return short_name();}
409
+ static std::string prefix() {return long_name();}
410
+ };
411
+
412
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
413
+
414
+ template <>
415
+ struct ratio_string<milli, char16_t>
416
+ {
417
+ static std::u16string short_name() {return std::u16string(1, u'm');}
418
+ static std::u16string long_name() {return std::u16string(u"milli");}
419
+ static std::u16string symbol() {return short_name();}
420
+ static std::u16string prefix() {return long_name();}
421
+ };
422
+
423
+ template <>
424
+ struct ratio_string<milli, char32_t>
425
+ {
426
+ static std::u32string short_name() {return std::u32string(1, U'm');}
427
+ static std::u32string long_name() {return std::u32string(U"milli");}
428
+ static std::u32string symbol() {return short_name();}
429
+ static std::u32string prefix() {return long_name();}
430
+ };
431
+
432
+ #endif
433
+
434
+ #ifndef BOOST_NO_STD_WSTRING
435
+ template <>
436
+ struct ratio_string<milli, wchar_t>
437
+ {
438
+ static std::wstring short_name() {return std::wstring(1, L'm');}
439
+ static std::wstring long_name() {return std::wstring(L"milli");}
440
+ static std::wstring symbol() {return short_name();}
441
+ static std::wstring prefix() {return long_name();}
442
+ };
443
+ #endif
444
+ #endif
445
+
446
+ // centi
447
+
448
+ //template <>
449
+ //struct ratio_string_is_localizable<centi> : true_type {};
450
+ //
451
+ //template <>
452
+ //struct ratio_string_id<centi> : integral_constant<int,-2> {};
453
+
454
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
455
+ template <typename CharT>
456
+ struct ratio_string<centi, CharT> :
457
+ ratio_detail::ratio_string_static<centi,CharT>
458
+ {};
459
+
460
+ #else
461
+ template <>
462
+ struct ratio_string<centi, char>
463
+ {
464
+ static std::string short_name() {return std::string(1, 'c');}
465
+ static std::string long_name() {return std::string("centi");}
466
+ static std::string symbol() {return short_name();}
467
+ static std::string prefix() {return long_name();}
468
+ };
469
+
470
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
471
+
472
+ template <>
473
+ struct ratio_string<centi, char16_t>
474
+ {
475
+ static std::u16string short_name() {return std::u16string(1, u'c');}
476
+ static std::u16string long_name() {return std::u16string(u"centi");}
477
+ static std::u16string symbol() {return short_name();}
478
+ static std::u16string prefix() {return long_name();}
479
+ };
480
+
481
+ template <>
482
+ struct ratio_string<centi, char32_t>
483
+ {
484
+ static std::u32string short_name() {return std::u32string(1, U'c');}
485
+ static std::u32string long_name() {return std::u32string(U"centi");}
486
+ static std::u32string symbol() {return short_name();}
487
+ static std::u32string prefix() {return long_name();}
488
+ };
489
+
490
+ #endif
491
+
492
+ #ifndef BOOST_NO_STD_WSTRING
493
+ template <>
494
+ struct ratio_string<centi, wchar_t>
495
+ {
496
+ static std::wstring short_name() {return std::wstring(1, L'c');}
497
+ static std::wstring long_name() {return std::wstring(L"centi");}
498
+ static std::wstring symbol() {return short_name();}
499
+ static std::wstring prefix() {return long_name();}
500
+ };
501
+ #endif
502
+ #endif
503
+
504
+ // deci
505
+
506
+ //template <>
507
+ //struct ratio_string_is_localizable<deci> : true_type {};
508
+ //
509
+ //template <>
510
+ //struct ratio_string_id<deci> : integral_constant<int,-1> {};
511
+
512
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
513
+ template <typename CharT>
514
+ struct ratio_string<deci, CharT> :
515
+ ratio_detail::ratio_string_static<deci,CharT>
516
+ {};
517
+
518
+ #else
519
+
520
+ template <>
521
+ struct ratio_string<deci, char>
522
+ {
523
+ static std::string short_name() {return std::string(1, 'd');}
524
+ static std::string long_name() {return std::string("deci");}
525
+ static std::string symbol() {return short_name();}
526
+ static std::string prefix() {return long_name();}
527
+ };
528
+
529
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
530
+
531
+ template <>
532
+ struct ratio_string<deci, char16_t>
533
+ {
534
+ static std::u16string short_name() {return std::u16string(1, u'd');}
535
+ static std::u16string long_name() {return std::u16string(u"deci");}
536
+ static std::u16string symbol() {return short_name();}
537
+ static std::u16string prefix() {return long_name();}
538
+ };
539
+
540
+ template <>
541
+ struct ratio_string<deci, char32_t>
542
+ {
543
+ static std::u32string short_name() {return std::u32string(1, U'd');}
544
+ static std::u32string long_name() {return std::u32string(U"deci");}
545
+ static std::u32string symbol() {return short_name();}
546
+ static std::u32string prefix() {return long_name();}
547
+ };
548
+
549
+ #endif
550
+
551
+ #ifndef BOOST_NO_STD_WSTRING
552
+ template <>
553
+ struct ratio_string<deci, wchar_t>
554
+ {
555
+ static std::wstring short_name() {return std::wstring(1, L'd');}
556
+ static std::wstring long_name() {return std::wstring(L"deci");}
557
+ static std::wstring symbol() {return short_name();}
558
+ static std::wstring prefix() {return long_name();}
559
+ };
560
+ #endif
561
+ #endif
562
+
563
+ // unit
564
+
565
+ //template <>
566
+ //struct ratio_string_is_localizable<ratio<1> > : true_type {};
567
+ //
568
+ //template <>
569
+ //struct ratio_string_id<ratio<1> > : integral_constant<int,0> {};
570
+ // deca
571
+
572
+ //template <>
573
+ //struct ratio_string_is_localizable<deca> : true_type {};
574
+ //
575
+ //template <>
576
+ //struct ratio_string_id<deca> : integral_constant<int,1> {};
577
+
578
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
579
+ template <typename CharT>
580
+ struct ratio_string<deca, CharT> :
581
+ ratio_detail::ratio_string_static<deca,CharT>
582
+ {};
583
+
584
+ #else
585
+ template <>
586
+ struct ratio_string<deca, char>
587
+ {
588
+ static std::string short_name() {return std::string("da");}
589
+ static std::string long_name() {return std::string("deca");}
590
+ static std::string symbol() {return short_name();}
591
+ static std::string prefix() {return long_name();}
592
+ };
593
+
594
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
595
+
596
+ template <>
597
+ struct ratio_string<deca, char16_t>
598
+ {
599
+ static std::u16string short_name() {return std::u16string(u"da");}
600
+ static std::u16string long_name() {return std::u16string(u"deca");}
601
+ static std::u16string symbol() {return short_name();}
602
+ static std::u16string prefix() {return long_name();}
603
+ };
604
+
605
+ template <>
606
+ struct ratio_string<deca, char32_t>
607
+ {
608
+ static std::u32string short_name() {return std::u32string(U"da");}
609
+ static std::u32string long_name() {return std::u32string(U"deca");}
610
+ static std::u32string symbol() {return short_name();}
611
+ static std::u32string prefix() {return long_name();}
612
+ };
613
+
614
+ #endif
615
+
616
+ #ifndef BOOST_NO_STD_WSTRING
617
+ template <>
618
+ struct ratio_string<deca, wchar_t>
619
+ {
620
+ static std::wstring short_name() {return std::wstring(L"da");}
621
+ static std::wstring long_name() {return std::wstring(L"deca");}
622
+ static std::wstring symbol() {return short_name();}
623
+ static std::wstring prefix() {return long_name();}
624
+ };
625
+ #endif
626
+ #endif
627
+
628
+ // hecto
629
+
630
+ //template <>
631
+ //struct ratio_string_is_localizable<hecto> : true_type {};
632
+ //
633
+ //template <>
634
+ //struct ratio_string_id<hecto> : integral_constant<int,2> {};
635
+
636
+
637
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
638
+ template <typename CharT>
639
+ struct ratio_string<hecto, CharT> :
640
+ ratio_detail::ratio_string_static<hecto,CharT>
641
+ {};
642
+
643
+ #else
644
+ template <>
645
+ struct ratio_string<hecto, char>
646
+ {
647
+ static std::string short_name() {return std::string(1, 'h');}
648
+ static std::string long_name() {return std::string("hecto");}
649
+ static std::string symbol() {return short_name();}
650
+ static std::string prefix() {return long_name();}
651
+ };
652
+
653
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
654
+
655
+ template <>
656
+ struct ratio_string<hecto, char16_t>
657
+ {
658
+ static std::u16string short_name() {return std::u16string(1, u'h');}
659
+ static std::u16string long_name() {return std::u16string(u"hecto");}
660
+ static std::u16string symbol() {return short_name();}
661
+ static std::u16string prefix() {return long_name();}
662
+ };
663
+
664
+ template <>
665
+ struct ratio_string<hecto, char32_t>
666
+ {
667
+ static std::u32string short_name() {return std::u32string(1, U'h');}
668
+ static std::u32string long_name() {return std::u32string(U"hecto");}
669
+ static std::u32string symbol() {return short_name();}
670
+ static std::u32string prefix() {return long_name();}
671
+ };
672
+
673
+ #endif
674
+
675
+ #ifndef BOOST_NO_STD_WSTRING
676
+ template <>
677
+ struct ratio_string<hecto, wchar_t>
678
+ {
679
+ static std::wstring short_name() {return std::wstring(1, L'h');}
680
+ static std::wstring long_name() {return std::wstring(L"hecto");}
681
+ static std::wstring symbol() {return short_name();}
682
+ static std::wstring prefix() {return long_name();}
683
+ };
684
+ #endif
685
+ #endif
686
+
687
+ // kilo
688
+
689
+ //template <>
690
+ //struct ratio_string_is_localizable<kilo> : true_type {};
691
+ //
692
+ //template <>
693
+ //struct ratio_string_id<kilo> : integral_constant<int,3> {};
694
+
695
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
696
+ template <typename CharT>
697
+ struct ratio_string<kilo, CharT> :
698
+ ratio_detail::ratio_string_static<kilo,CharT>
699
+ {};
700
+
701
+ #else
702
+ template <>
703
+ struct ratio_string<kilo, char>
704
+ {
705
+ static std::string short_name() {return std::string(1, 'k');}
706
+ static std::string long_name() {return std::string("kilo");}
707
+ static std::string symbol() {return short_name();}
708
+ static std::string prefix() {return long_name();}
709
+ };
710
+
711
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
712
+
713
+ template <>
714
+ struct ratio_string<kilo, char16_t>
715
+ {
716
+ static std::u16string short_name() {return std::u16string(1, u'k');}
717
+ static std::u16string long_name() {return std::u16string(u"kilo");}
718
+ static std::u16string symbol() {return short_name();}
719
+ static std::u16string prefix() {return long_name();}
720
+ };
721
+
722
+ template <>
723
+ struct ratio_string<kilo, char32_t>
724
+ {
725
+ static std::u32string short_name() {return std::u32string(1, U'k');}
726
+ static std::u32string long_name() {return std::u32string(U"kilo");}
727
+ static std::u32string symbol() {return short_name();}
728
+ static std::u32string prefix() {return long_name();}
729
+ };
730
+
731
+ #endif
732
+
733
+ #ifndef BOOST_NO_STD_WSTRING
734
+ template <>
735
+ struct ratio_string<kilo, wchar_t>
736
+ {
737
+ static std::wstring short_name() {return std::wstring(1, L'k');}
738
+ static std::wstring long_name() {return std::wstring(L"kilo");}
739
+ static std::wstring symbol() {return short_name();}
740
+ static std::wstring prefix() {return long_name();}
741
+ };
742
+ #endif
743
+ #endif
744
+
745
+ // mega
746
+
747
+ //template <>
748
+ //struct ratio_string_is_localizable<mega> : true_type {};
749
+ //
750
+ //template <>
751
+ //struct ratio_string_id<mega> : integral_constant<int,6> {};
752
+
753
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
754
+ template <typename CharT>
755
+ struct ratio_string<mega, CharT> :
756
+ ratio_detail::ratio_string_static<mega,CharT>
757
+ {};
758
+
759
+ #else
760
+
761
+ template <>
762
+ struct ratio_string<mega, char>
763
+ {
764
+ static std::string short_name() {return std::string(1, 'M');}
765
+ static std::string long_name() {return std::string("mega");}
766
+ static std::string symbol() {return short_name();}
767
+ static std::string prefix() {return long_name();}
768
+ };
769
+
770
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
771
+
772
+ template <>
773
+ struct ratio_string<mega, char16_t>
774
+ {
775
+ static std::u16string short_name() {return std::u16string(1, u'M');}
776
+ static std::u16string long_name() {return std::u16string(u"mega");}
777
+ static std::u16string symbol() {return short_name();}
778
+ static std::u16string prefix() {return long_name();}
779
+ };
780
+
781
+ template <>
782
+ struct ratio_string<mega, char32_t>
783
+ {
784
+ static std::u32string short_name() {return std::u32string(1, U'M');}
785
+ static std::u32string long_name() {return std::u32string(U"mega");}
786
+ static std::u32string symbol() {return short_name();}
787
+ static std::u32string prefix() {return long_name();}
788
+ };
789
+
790
+ #endif
791
+
792
+ #ifndef BOOST_NO_STD_WSTRING
793
+ template <>
794
+ struct ratio_string<mega, wchar_t>
795
+ {
796
+ static std::wstring short_name() {return std::wstring(1, L'M');}
797
+ static std::wstring long_name() {return std::wstring(L"mega");}
798
+ static std::wstring symbol() {return short_name();}
799
+ static std::wstring prefix() {return long_name();}
800
+ };
801
+ #endif
802
+ #endif
803
+
804
+ // giga
805
+
806
+ //template <>
807
+ //struct ratio_string_is_localizable<giga> : true_type {};
808
+ //
809
+ //template <>
810
+ //struct ratio_string_id<giga> : integral_constant<int,9> {};
811
+
812
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
813
+ template <typename CharT>
814
+ struct ratio_string<giga, CharT> :
815
+ ratio_detail::ratio_string_static<giga,CharT>
816
+ {};
817
+
818
+ #else
819
+
820
+ template <>
821
+ struct ratio_string<giga, char>
822
+ {
823
+ static std::string short_name() {return std::string(1, 'G');}
824
+ static std::string long_name() {return std::string("giga");}
825
+ static std::string symbol() {return short_name();}
826
+ static std::string prefix() {return long_name();}
827
+ };
828
+
829
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
830
+
831
+ template <>
832
+ struct ratio_string<giga, char16_t>
833
+ {
834
+ static std::u16string short_name() {return std::u16string(1, u'G');}
835
+ static std::u16string long_name() {return std::u16string(u"giga");}
836
+ static std::u16string symbol() {return short_name();}
837
+ static std::u16string prefix() {return long_name();}
838
+ };
839
+
840
+ template <>
841
+ struct ratio_string<giga, char32_t>
842
+ {
843
+ static std::u32string short_name() {return std::u32string(1, U'G');}
844
+ static std::u32string long_name() {return std::u32string(U"giga");}
845
+ static std::u32string symbol() {return short_name();}
846
+ static std::u32string prefix() {return long_name();}
847
+ };
848
+
849
+ #endif
850
+
851
+ #ifndef BOOST_NO_STD_WSTRING
852
+ template <>
853
+ struct ratio_string<giga, wchar_t>
854
+ {
855
+ static std::wstring short_name() {return std::wstring(1, L'G');}
856
+ static std::wstring long_name() {return std::wstring(L"giga");}
857
+ static std::wstring symbol() {return short_name();}
858
+ static std::wstring prefix() {return long_name();}
859
+ };
860
+ #endif
861
+ #endif
862
+
863
+ // tera
864
+
865
+ //template <>
866
+ //struct ratio_string_is_localizable<tera> : true_type {};
867
+ //
868
+ //template <>
869
+ //struct ratio_string_id<tera> : integral_constant<int,12> {};
870
+
871
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
872
+ template <typename CharT>
873
+ struct ratio_string<tera, CharT> :
874
+ ratio_detail::ratio_string_static<tera,CharT>
875
+ {};
876
+
877
+ #else
878
+ template <>
879
+ struct ratio_string<tera, char>
880
+ {
881
+ static std::string short_name() {return std::string(1, 'T');}
882
+ static std::string long_name() {return std::string("tera");}
883
+ static std::string symbol() {return short_name();}
884
+ static std::string prefix() {return long_name();}
885
+ };
886
+
887
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
888
+
889
+ template <>
890
+ struct ratio_string<tera, char16_t>
891
+ {
892
+ static std::u16string short_name() {return std::u16string(1, u'T');}
893
+ static std::u16string long_name() {return std::u16string(u"tera");}
894
+ static std::u16string symbol() {return short_name();}
895
+ static std::u16string prefix() {return long_name();}
896
+ };
897
+
898
+ template <>
899
+ struct ratio_string<tera, char32_t>
900
+ {
901
+ static std::u32string short_name() {return std::u32string(1, U'T');}
902
+ static std::u32string long_name() {return std::u32string(U"tera");}
903
+ static std::u32string symbol() {return short_name();}
904
+ static std::u32string prefix() {return long_name();}
905
+ };
906
+
907
+ #endif
908
+
909
+ #ifndef BOOST_NO_STD_WSTRING
910
+ template <>
911
+ struct ratio_string<tera, wchar_t>
912
+ {
913
+ static std::wstring short_name() {return std::wstring(1, L'T');}
914
+ static std::wstring long_name() {return std::wstring(L"tera");}
915
+ static std::wstring symbol() {return short_name();}
916
+ static std::wstring prefix() {return long_name();}
917
+ };
918
+ #endif
919
+ #endif
920
+
921
+ // peta
922
+
923
+ //template <>
924
+ //struct ratio_string_is_localizable<peta> : true_type {};
925
+ //
926
+ //template <>
927
+ //struct ratio_string_id<peta> : integral_constant<int,15> {};
928
+
929
+
930
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
931
+ template <typename CharT>
932
+ struct ratio_string<peta, CharT> :
933
+ ratio_detail::ratio_string_static<peta,CharT>
934
+ {};
935
+
936
+ #else
937
+ template <>
938
+ struct ratio_string<peta, char>
939
+ {
940
+ static std::string short_name() {return std::string(1, 'P');}
941
+ static std::string long_name() {return std::string("peta");}
942
+ static std::string symbol() {return short_name();}
943
+ static std::string prefix() {return long_name();}
944
+ };
945
+
946
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
947
+
948
+ template <>
949
+ struct ratio_string<peta, char16_t>
950
+ {
951
+ static std::u16string short_name() {return std::u16string(1, u'P');}
952
+ static std::u16string long_name() {return std::u16string(u"peta");}
953
+ static std::u16string symbol() {return short_name();}
954
+ static std::u16string prefix() {return long_name();}
955
+ };
956
+
957
+ template <>
958
+ struct ratio_string<peta, char32_t>
959
+ {
960
+ static std::u32string short_name() {return std::u32string(1, U'P');}
961
+ static std::u32string long_name() {return std::u32string(U"peta");}
962
+ static std::u32string symbol() {return short_name();}
963
+ static std::u32string prefix() {return long_name();}
964
+ };
965
+
966
+ #endif
967
+
968
+ #ifndef BOOST_NO_STD_WSTRING
969
+ template <>
970
+ struct ratio_string<peta, wchar_t>
971
+ {
972
+ static std::wstring short_name() {return std::wstring(1, L'P');}
973
+ static std::wstring long_name() {return std::wstring(L"peta");}
974
+ static std::wstring symbol() {return short_name();}
975
+ static std::wstring prefix() {return long_name();}
976
+ };
977
+ #endif
978
+ #endif
979
+
980
+ // exa
981
+
982
+ //template <>
983
+ //struct ratio_string_is_localizable<exa> : true_type {};
984
+ //
985
+ //template <>
986
+ //struct ratio_string_id<exa> : integral_constant<int,18> {};
987
+
988
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
989
+ template <typename CharT>
990
+ struct ratio_string<exa, CharT> :
991
+ ratio_detail::ratio_string_static<exa,CharT>
992
+ {};
993
+
994
+ #else
995
+ template <>
996
+ struct ratio_string<exa, char>
997
+ {
998
+ static std::string short_name() {return std::string(1, 'E');}
999
+ static std::string long_name() {return std::string("exa");}
1000
+ static std::string symbol() {return short_name();}
1001
+ static std::string prefix() {return long_name();}
1002
+ };
1003
+
1004
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1005
+
1006
+ template <>
1007
+ struct ratio_string<exa, char16_t>
1008
+ {
1009
+ static std::u16string short_name() {return std::u16string(1, u'E');}
1010
+ static std::u16string long_name() {return std::u16string(u"exa");}
1011
+ static std::u16string symbol() {return short_name();}
1012
+ static std::u16string prefix() {return long_name();}
1013
+ };
1014
+
1015
+ template <>
1016
+ struct ratio_string<exa, char32_t>
1017
+ {
1018
+ static std::u32string short_name() {return std::u32string(1, U'E');}
1019
+ static std::u32string long_name() {return std::u32string(U"exa");}
1020
+ static std::u32string symbol() {return short_name();}
1021
+ static std::u32string prefix() {return long_name();}
1022
+ };
1023
+
1024
+ #endif
1025
+
1026
+ #ifndef BOOST_NO_STD_WSTRING
1027
+ template <>
1028
+ struct ratio_string<exa, wchar_t>
1029
+ {
1030
+ static std::wstring short_name() {return std::wstring(1, L'E');}
1031
+ static std::wstring long_name() {return std::wstring(L"exa");}
1032
+ static std::wstring symbol() {return short_name();}
1033
+ static std::wstring prefix() {return long_name();}
1034
+ };
1035
+ #endif
1036
+ #endif
1037
+
1038
+ #ifdef BOOST_RATIO_EXTENSIONS
1039
+
1040
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
1041
+ template <typename CharT>
1042
+ struct ratio_string<kibi, CharT> :
1043
+ ratio_detail::ratio_string_static<kibi,CharT>
1044
+ {};
1045
+
1046
+ #else
1047
+ template <>
1048
+ struct ratio_string<kibi, char>
1049
+ {
1050
+ static std::string short_name() {return std::string("Ki");}
1051
+ static std::string long_name() {return std::string("kibi");}
1052
+ static std::string symbol() {return short_name();}
1053
+ static std::string prefix() {return long_name();}
1054
+ };
1055
+
1056
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1057
+
1058
+ template <>
1059
+ struct ratio_string<kibi, char16_t>
1060
+ {
1061
+ static std::u16string short_name() {return std::u16string(u"Ki");}
1062
+ static std::u16string long_name() {return std::u16string(u"kibi");}
1063
+ static std::u16string symbol() {return short_name();}
1064
+ static std::u16string prefix() {return long_name();}
1065
+ };
1066
+
1067
+ template <>
1068
+ struct ratio_string<kibi, char32_t>
1069
+ {
1070
+ static std::u32string short_name() {return std::u32string(U"Ki");}
1071
+ static std::u32string long_name() {return std::u32string(U"kibi");}
1072
+ static std::u32string symbol() {return short_name();}
1073
+ static std::u32string prefix() {return long_name();}
1074
+ };
1075
+
1076
+ #endif
1077
+
1078
+ #ifndef BOOST_NO_STD_WSTRING
1079
+ template <>
1080
+ struct ratio_string<kibi, wchar_t>
1081
+ {
1082
+ static std::wstring short_name() {return std::wstring(L"Ki");}
1083
+ static std::wstring long_name() {return std::wstring(L"kibi");}
1084
+ static std::wstring symbol() {return short_name();}
1085
+ static std::wstring prefix() {return long_name();}
1086
+ };
1087
+ #endif
1088
+ #endif
1089
+
1090
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
1091
+ template <typename CharT>
1092
+ struct ratio_string<mebi, CharT> :
1093
+ ratio_detail::ratio_string_static<mebi,CharT>
1094
+ {};
1095
+
1096
+ #else
1097
+ template <>
1098
+ struct ratio_string<mebi, char>
1099
+ {
1100
+ static std::string short_name() {return std::string("Mi");}
1101
+ static std::string long_name() {return std::string("mebi");}
1102
+ static std::string symbol() {return short_name();}
1103
+ static std::string prefix() {return long_name();}
1104
+ };
1105
+
1106
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1107
+
1108
+ template <>
1109
+ struct ratio_string<mebi, char16_t>
1110
+ {
1111
+ static std::u16string short_name() {return std::u16string(u"Mi");}
1112
+ static std::u16string long_name() {return std::u16string(u"mebi");}
1113
+ static std::u16string symbol() {return short_name();}
1114
+ static std::u16string prefix() {return long_name();}
1115
+ };
1116
+
1117
+ template <>
1118
+ struct ratio_string<mebi, char32_t>
1119
+ {
1120
+ static std::u32string short_name() {return std::u32string(U"Mi");}
1121
+ static std::u32string long_name() {return std::u32string(U"mebi");}
1122
+ static std::u32string symbol() {return short_name();}
1123
+ static std::u32string prefix() {return long_name();}
1124
+ };
1125
+
1126
+ #endif
1127
+
1128
+ #ifndef BOOST_NO_STD_WSTRING
1129
+ template <>
1130
+ struct ratio_string<mebi, wchar_t>
1131
+ {
1132
+ static std::wstring short_name() {return std::wstring(L"Mi");}
1133
+ static std::wstring long_name() {return std::wstring(L"mebi");}
1134
+ static std::wstring symbol() {return short_name();}
1135
+ static std::wstring prefix() {return long_name();}
1136
+ };
1137
+ #endif
1138
+ #endif
1139
+
1140
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
1141
+ template <typename CharT>
1142
+ struct ratio_string<gibi, CharT> :
1143
+ ratio_detail::ratio_string_static<gibi,CharT>
1144
+ {};
1145
+
1146
+ #else
1147
+ template <>
1148
+ struct ratio_string<gibi, char>
1149
+ {
1150
+ static std::string short_name() {return std::string("Gi");}
1151
+ static std::string long_name() {return std::string("gibi");}
1152
+ static std::string symbol() {return short_name();}
1153
+ static std::string prefix() {return long_name();}
1154
+ };
1155
+
1156
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1157
+
1158
+ template <>
1159
+ struct ratio_string<gibi, char16_t>
1160
+ {
1161
+ static std::u16string short_name() {return std::u16string(u"Gi");}
1162
+ static std::u16string long_name() {return std::u16string(u"gibi");}
1163
+ static std::u16string symbol() {return short_name();}
1164
+ static std::u16string prefix() {return long_name();}
1165
+ };
1166
+
1167
+ template <>
1168
+ struct ratio_string<gibi, char32_t>
1169
+ {
1170
+ static std::u32string short_name() {return std::u32string(U"Gi");}
1171
+ static std::u32string long_name() {return std::u32string(U"gibi");}
1172
+ static std::u32string symbol() {return short_name();}
1173
+ static std::u32string prefix() {return long_name();}
1174
+ };
1175
+
1176
+ #endif
1177
+
1178
+ #ifndef BOOST_NO_STD_WSTRING
1179
+ template <>
1180
+ struct ratio_string<gibi, wchar_t>
1181
+ {
1182
+ static std::wstring short_name() {return std::wstring(L"Gi");}
1183
+ static std::wstring long_name() {return std::wstring(L"gibi");}
1184
+ static std::wstring symbol() {return short_name();}
1185
+ static std::wstring prefix() {return long_name();}
1186
+ };
1187
+ #endif
1188
+ #endif
1189
+
1190
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
1191
+ template <typename CharT>
1192
+ struct ratio_string<tebi, CharT> :
1193
+ ratio_detail::ratio_string_static<tebi,CharT>
1194
+ {};
1195
+
1196
+ #else
1197
+ template <>
1198
+ struct ratio_string<tebi, char>
1199
+ {
1200
+ static std::string short_name() {return std::string("Ti");}
1201
+ static std::string long_name() {return std::string("tebi");}
1202
+ static std::string symbol() {return short_name();}
1203
+ static std::string prefix() {return long_name();}
1204
+ };
1205
+
1206
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1207
+
1208
+ template <>
1209
+ struct ratio_string<tebi, char16_t>
1210
+ {
1211
+ static std::u16string short_name() {return std::u16string(u"Ti");}
1212
+ static std::u16string long_name() {return std::u16string(u"tebi");}
1213
+ static std::u16string symbol() {return short_name();}
1214
+ static std::u16string prefix() {return long_name();}
1215
+ };
1216
+
1217
+ template <>
1218
+ struct ratio_string<tebi, char32_t>
1219
+ {
1220
+ static std::u32string short_name() {return std::u32string(U"Ti");}
1221
+ static std::u32string long_name() {return std::u32string(U"tebi");}
1222
+ static std::u32string symbol() {return short_name();}
1223
+ static std::u32string prefix() {return long_name();}
1224
+ };
1225
+
1226
+ #endif
1227
+
1228
+ #ifndef BOOST_NO_STD_WSTRING
1229
+ template <>
1230
+ struct ratio_string<tebi, wchar_t>
1231
+ {
1232
+ static std::wstring short_name() {return std::wstring(L"Ti");}
1233
+ static std::wstring long_name() {return std::wstring(L"tebi");}
1234
+ static std::wstring symbol() {return short_name();}
1235
+ static std::wstring prefix() {return long_name();}
1236
+ };
1237
+ #endif
1238
+ #endif
1239
+
1240
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
1241
+ template <typename CharT>
1242
+ struct ratio_string<pebi, CharT> :
1243
+ ratio_detail::ratio_string_static<pebi,CharT>
1244
+ {};
1245
+
1246
+ #else
1247
+ template <>
1248
+ struct ratio_string<pebi, char>
1249
+ {
1250
+ static std::string short_name() {return std::string("Pi");}
1251
+ static std::string long_name() {return std::string("pebi");}
1252
+ static std::string symbol() {return short_name();}
1253
+ static std::string prefix() {return long_name();}
1254
+ };
1255
+
1256
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1257
+
1258
+ template <>
1259
+ struct ratio_string<pebi, char16_t>
1260
+ {
1261
+ static std::u16string short_name() {return std::u16string(u"Pi");}
1262
+ static std::u16string long_name() {return std::u16string(u"pebi");}
1263
+ static std::u16string symbol() {return short_name();}
1264
+ static std::u16string prefix() {return long_name();}
1265
+ };
1266
+
1267
+ template <>
1268
+ struct ratio_string<pebi, char32_t>
1269
+ {
1270
+ static std::u32string short_name() {return std::u32string(U"Pi");}
1271
+ static std::u32string long_name() {return std::u32string(U"pebi");}
1272
+ static std::u32string symbol() {return short_name();}
1273
+ static std::u32string prefix() {return long_name();}
1274
+ };
1275
+
1276
+ #endif
1277
+
1278
+ #ifndef BOOST_NO_STD_WSTRING
1279
+ template <>
1280
+ struct ratio_string<pebi, wchar_t>
1281
+ {
1282
+ static std::wstring short_name() {return std::wstring(L"Pi");}
1283
+ static std::wstring long_name() {return std::wstring(L"pebi");}
1284
+ static std::wstring symbol() {return short_name();}
1285
+ static std::wstring prefix() {return long_name();}
1286
+ };
1287
+ #endif
1288
+ #endif
1289
+
1290
+ #ifdef BOOST_RATIO_HAS_STATIC_STRING
1291
+ template <typename CharT>
1292
+ struct ratio_string<exbi, CharT> :
1293
+ ratio_detail::ratio_string_static<exbi,CharT>
1294
+ {};
1295
+
1296
+ #else
1297
+ template <>
1298
+ struct ratio_string<exbi, char>
1299
+ {
1300
+ static std::string short_name() {return std::string("Ei");}
1301
+ static std::string long_name() {return std::string("exbi");}
1302
+ static std::string symbol() {return short_name();}
1303
+ static std::string prefix() {return long_name();}
1304
+ };
1305
+
1306
+ #if BOOST_RATIO_HAS_UNICODE_SUPPORT
1307
+
1308
+ template <>
1309
+ struct ratio_string<exbi, char16_t>
1310
+ {
1311
+ static std::u16string short_name() {return std::u16string(u"Ei");}
1312
+ static std::u16string long_name() {return std::u16string(u"exbi");}
1313
+ static std::u16string symbol() {return short_name();}
1314
+ static std::u16string prefix() {return long_name();}
1315
+ };
1316
+
1317
+ template <>
1318
+ struct ratio_string<exbi, char32_t>
1319
+ {
1320
+ static std::u32string short_name() {return std::u32string(U"Ei");}
1321
+ static std::u32string long_name() {return std::u32string(U"exbi");}
1322
+ static std::u32string symbol() {return short_name();}
1323
+ static std::u32string prefix() {return long_name();}
1324
+ };
1325
+
1326
+ #endif
1327
+
1328
+ #ifndef BOOST_NO_STD_WSTRING
1329
+ template <>
1330
+ struct ratio_string<exbi, wchar_t>
1331
+ {
1332
+ static std::wstring short_name() {return std::wstring(L"Ei");}
1333
+ static std::wstring long_name() {return std::wstring(L"exbi");}
1334
+ static std::wstring symbol() {return short_name();}
1335
+ static std::wstring prefix() {return long_name();}
1336
+ };
1337
+ #endif
1338
+ #endif
1339
+ #endif
1340
+ }
1341
+
1342
+ #endif // BOOST_RATIO_RATIO_IO_HPP