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.
- checksums.yaml +4 -4
- data/CHANGELOG +18 -1
- data/Rakefile +4 -1
- data/build/agent.rb +2 -2
- data/build/apache2.rb +17 -10
- data/build/basics.rb +18 -4
- data/build/common_library.rb +7 -3
- data/build/cxx_tests.rb +2 -7
- data/build/misc.rb +3 -1
- data/build/nginx.rb +11 -5
- data/build/oxt_tests.rb +0 -3
- data/build/packaging.rb +3 -2
- data/build/schema_printer.rb +103 -0
- data/build/support/cplusplus.rb +2 -2
- data/build/support/cxx_dependency_map.rb +2575 -868
- data/dev/ci/lib/functions.sh +1 -1
- data/dev/ci/lib/set-container-envvars.sh +1 -1
- data/dev/ci/lib/setup-container.sh +1 -1
- data/dev/ci/run-tests-natively +1 -1
- data/dev/ci/run-tests-with-docker +1 -1
- data/dev/ci/scripts/debug-console-wrapper.sh +1 -1
- data/dev/ci/scripts/docker-entrypoint-stage2.sh +1 -1
- data/dev/ci/scripts/docker-entrypoint.sh +1 -1
- data/dev/ci/scripts/inituidgid +1 -1
- data/dev/ci/scripts/run-tests-natively-stage2.sh +1 -1
- data/dev/ci/scripts/setup-host-natively.sh +1 -1
- data/dev/ci/setup-host +1 -1
- data/dev/ci/tests/apache2/run +1 -1
- data/dev/ci/tests/apache2/setup +1 -1
- data/dev/ci/tests/cxx/run +1 -1
- data/dev/ci/tests/cxx/setup +1 -1
- data/dev/ci/tests/debian/Jenkinsfile +0 -1
- data/dev/ci/tests/debian/run +1 -1
- data/dev/ci/tests/nginx-dynamic/run +1 -1
- data/dev/ci/tests/nginx-dynamic/setup +1 -1
- data/dev/ci/tests/nginx/run +1 -1
- data/dev/ci/tests/nginx/setup +1 -1
- data/dev/ci/tests/nodejs/run +1 -1
- data/dev/ci/tests/nodejs/setup +1 -1
- data/dev/ci/tests/rpm/run +1 -1
- data/dev/ci/tests/ruby/run +1 -1
- data/dev/ci/tests/ruby/setup +1 -1
- data/dev/ci/tests/source-packaging/run +1 -1
- data/dev/ci/tests/source-packaging/setup +1 -1
- data/dev/ci/tests/standalone/run +1 -1
- data/dev/ci/tests/standalone/setup +1 -1
- data/dev/configkit-schemas/index.json +1708 -0
- data/dev/configkit-schemas/update_schema_inline_comments.rb +118 -0
- data/dev/copy_boost_headers +13 -1
- data/dev/index_cxx_dependencies.rb +20 -7
- data/dev/vagrant/provision.sh +1 -1
- data/resources/mime.types +1 -0
- data/resources/templates/standalone/http.erb +1 -6
- data/src/agent/Core/AdminPanelConnector.h +550 -0
- data/src/agent/Core/ApiServer.h +159 -97
- data/src/agent/Core/ApplicationPool/Group.h +2 -0
- data/src/agent/Core/ApplicationPool/Group/InternalUtils.cpp +3 -2
- data/src/agent/Core/ApplicationPool/Group/StateInspection.cpp +109 -0
- data/src/agent/Core/ApplicationPool/Implementation.cpp +5 -3
- data/src/agent/Core/ApplicationPool/Options.h +5 -6
- data/src/agent/Core/ApplicationPool/Pool.h +59 -2
- data/src/agent/Core/ApplicationPool/Pool/GeneralUtils.cpp +3 -3
- data/src/agent/Core/ApplicationPool/Pool/InitializationAndShutdown.cpp +2 -2
- data/src/agent/Core/ApplicationPool/Pool/Miscellaneous.cpp +6 -0
- data/src/agent/Core/ApplicationPool/Pool/StateInspection.cpp +129 -0
- data/src/agent/Core/Config.h +475 -0
- data/src/agent/Core/ConfigChange.cpp +349 -0
- data/src/agent/Core/ConfigChange.h +54 -0
- data/src/agent/Core/Controller.h +35 -3
- data/src/agent/Core/Controller/CheckoutSession.cpp +1 -1
- data/src/agent/Core/Controller/Config.cpp +0 -2
- data/src/agent/Core/Controller/Config.h +168 -104
- data/src/agent/Core/Controller/ForwardResponse.cpp +1 -1
- data/src/agent/Core/Controller/InitRequest.cpp +14 -15
- data/src/agent/Core/Controller/InitializationAndShutdown.cpp +34 -44
- data/src/agent/Core/Controller/Request.h +0 -1
- data/src/agent/Core/CoreMain.cpp +236 -349
- data/src/agent/Core/OptionParser.h +75 -89
- data/src/agent/Core/SecurityUpdateChecker.h +263 -100
- data/src/agent/Core/SpawningKit/Config.h +6 -2
- data/src/agent/Core/SpawningKit/Spawner.h +0 -45
- data/src/agent/Core/SpawningKit/UserSwitchingRules.h +1 -0
- data/src/agent/Shared/ApiAccountUtils.h +318 -0
- data/src/agent/Shared/ApiServerUtils.h +3 -104
- data/src/agent/Shared/Fundamentals/Initialization.cpp +81 -44
- data/src/agent/Shared/Fundamentals/Initialization.h +12 -7
- data/src/agent/TempDirToucher/TempDirToucherMain.cpp +21 -0
- data/src/agent/Watchdog/AgentWatcher.cpp +1 -1
- data/src/agent/Watchdog/ApiServer.h +100 -14
- data/src/agent/Watchdog/Config.h +340 -0
- data/src/agent/Watchdog/CoreWatcher.cpp +27 -13
- data/src/agent/Watchdog/InstanceDirToucher.cpp +1 -1
- data/src/agent/Watchdog/WatchdogMain.cpp +190 -206
- data/src/apache2_module/Bucket.cpp +4 -0
- data/src/apache2_module/Bucket.h +7 -3
- data/src/apache2_module/CBindings.cpp +49 -0
- data/src/apache2_module/Config.cpp +242 -0
- data/src/apache2_module/Config.h +109 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedDefinitions.cpp +485 -0
- data/src/apache2_module/{ConfigurationCommands.cpp.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.cpp.cxxcodebuilder} +29 -15
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp +298 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.cpp.cxxcodebuilder +171 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp +854 -0
- data/src/apache2_module/ConfigGeneral/AutoGeneratedSetterFuncs.cpp.cxxcodebuilder +188 -0
- data/src/apache2_module/ConfigGeneral/ManifestGeneration.h +610 -0
- data/src/apache2_module/ConfigGeneral/SetterFuncs.h +65 -0
- data/src/apache2_module/DirConfig/AutoGeneratedCreateFunction.cpp +174 -0
- data/src/apache2_module/{MergeDirConfig.cpp.cxxcodebuilder → DirConfig/AutoGeneratedCreateFunction.cpp.cxxcodebuilder} +54 -32
- data/src/apache2_module/DirConfig/AutoGeneratedHeaderSerialization.cpp +113 -0
- data/src/apache2_module/{SetHeaders.cpp.cxxcodebuilder → DirConfig/AutoGeneratedHeaderSerialization.cpp.cxxcodebuilder} +34 -23
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp +426 -0
- data/src/apache2_module/DirConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +165 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp +269 -0
- data/src/apache2_module/DirConfig/AutoGeneratedMergeFunction.cpp.cxxcodebuilder +148 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h +534 -0
- data/src/apache2_module/DirConfig/AutoGeneratedStruct.h.cxxcodebuilder +230 -0
- data/src/apache2_module/DirectoryMapper.h +19 -16
- data/src/apache2_module/Hooks.cpp +124 -138
- data/src/apache2_module/Hooks.h +9 -14
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp +263 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedManifestGeneration.cpp.cxxcodebuilder +152 -0
- data/src/apache2_module/ServerConfig/AutoGeneratedStruct.h +299 -0
- data/src/apache2_module/{ConfigurationFields.hpp.cxxcodebuilder → ServerConfig/AutoGeneratedStruct.h.cxxcodebuilder} +105 -18
- data/src/apache2_module/Utils.h +215 -0
- data/src/apache2_module/mod_passenger.c +16 -8
- data/src/cxx_supportlib/AppTypes.h +2 -0
- data/src/cxx_supportlib/ConfigKit/ConfigKit.h +1 -1
- data/src/cxx_supportlib/ConfigKit/DummyTranslator.h +8 -8
- data/src/cxx_supportlib/ConfigKit/IN_PRACTICE.md +7 -41
- data/src/cxx_supportlib/ConfigKit/PrefixTranslator.h +12 -66
- data/src/cxx_supportlib/ConfigKit/Schema.h +62 -11
- data/src/cxx_supportlib/ConfigKit/{ValidationUtils.h → SchemaUtils.h} +12 -3
- data/src/cxx_supportlib/ConfigKit/Store.h +17 -9
- data/src/cxx_supportlib/ConfigKit/SubComponentUtils.h +2 -1
- data/src/cxx_supportlib/ConfigKit/TableTranslator.h +13 -70
- data/src/cxx_supportlib/ConfigKit/Translator.h +125 -0
- data/src/cxx_supportlib/Constants.h +1 -3
- data/src/cxx_supportlib/FileTools/FileManip.cpp +297 -0
- data/src/cxx_supportlib/FileTools/FileManip.h +162 -0
- data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.cpp +6 -3
- data/src/cxx_supportlib/{Utils → FileTools}/LargeFiles.h +7 -5
- data/src/cxx_supportlib/FileTools/PathManip.cpp +240 -0
- data/src/cxx_supportlib/FileTools/PathManip.h +91 -0
- data/src/cxx_supportlib/FileTools/PathManipCBindings.cpp +62 -0
- data/src/{apache2_module/Configuration.h → cxx_supportlib/FileTools/PathManipCBindings.h} +12 -19
- data/src/cxx_supportlib/Hooks.h +19 -16
- data/src/cxx_supportlib/InstanceDirectory.h +11 -0
- data/src/cxx_supportlib/JsonTools/Autocast.h +79 -0
- data/src/cxx_supportlib/JsonTools/CBindings.cpp +364 -0
- data/src/cxx_supportlib/JsonTools/CBindings.h +101 -0
- data/src/cxx_supportlib/LoggingKit/Config.h +13 -0
- data/src/cxx_supportlib/LoggingKit/Context.h +5 -2
- data/src/cxx_supportlib/LoggingKit/Forward.h +0 -1
- data/src/cxx_supportlib/LoggingKit/Implementation.cpp +12 -4
- data/src/cxx_supportlib/ResourceLocator.h +15 -0
- data/src/cxx_supportlib/ServerKit/Config.h +156 -0
- data/src/cxx_supportlib/ServerKit/Context.h +59 -38
- data/src/cxx_supportlib/ServerKit/FileBufferedChannel.h +3 -2
- data/src/cxx_supportlib/ServerKit/HttpHeaderParser.h +2 -2
- data/src/cxx_supportlib/ServerKit/HttpServer.h +16 -2
- data/src/cxx_supportlib/ServerKit/Server.h +32 -15
- data/src/cxx_supportlib/Utils.cpp +0 -441
- data/src/cxx_supportlib/Utils.h +0 -158
- data/src/cxx_supportlib/Utils/Curl.h +1 -0
- data/src/cxx_supportlib/Utils/ProcessMetricsCollector.h +1 -0
- data/src/cxx_supportlib/Utils/StrIntUtilsNoStrictAliasing.cpp +2 -0
- data/src/cxx_supportlib/Utils/VariantMap.h +31 -0
- data/src/cxx_supportlib/WatchdogLauncher.cpp +7 -79
- data/src/cxx_supportlib/WatchdogLauncher.h +50 -53
- data/src/cxx_supportlib/WebSocketCommandReverseServer.h +981 -0
- data/src/cxx_supportlib/oxt/macros.hpp +9 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/COPYING +145 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/changelog.md +342 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/readme.md +49 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/base64/base64.hpp +178 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/client.hpp +33 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/close.hpp +342 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio.hpp +131 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/asio_ssl.hpp +39 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/chrono.hpp +68 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/connection_hdl.hpp +52 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/cpp11.hpp +162 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/functional.hpp +105 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/md5.hpp +448 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/memory.hpp +89 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/network.hpp +106 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/platforms.hpp +46 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/random.hpp +82 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/regex.hpp +59 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/stdint.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/system_error.hpp +84 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/thread.hpp +84 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/time.hpp +56 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/common/type_traits.hpp +65 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/basic.hpp +46 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/concurrency/none.hpp +80 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_client.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/asio_no_tls_client.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/boost_config.hpp +72 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core.hpp +285 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/core_client.hpp +294 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug.hpp +286 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/debug_asio_no_tls.hpp +73 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_client.hpp +72 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/config/minimal_server.hpp +312 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection.hpp +1651 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/connection_base.hpp +38 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint.hpp +700 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/endpoint_base.hpp +38 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/error.hpp +277 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/extension.hpp +102 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/disabled.hpp +128 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/extensions/permessage_deflate/enabled.hpp +752 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/frame.hpp +861 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/constants.hpp +308 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/parser.hpp +196 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/request.hpp +191 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/impl/response.hpp +266 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/parser.hpp +619 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/request.hpp +124 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/http/response.hpp +188 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/connection_impl.hpp +2372 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/endpoint_impl.hpp +269 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/impl/utilities_impl.hpp +87 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/basic.hpp +199 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/levels.hpp +203 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/stub.hpp +119 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/logger/syslog.hpp +146 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/alloc.hpp +105 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/message.hpp +340 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/message_buffer/pool.hpp +229 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/base.hpp +299 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi00.hpp +462 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi07.hpp +78 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi08.hpp +83 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/hybi13.hpp +1056 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/processors/processor.hpp +407 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/none.hpp +60 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/random/random_device.hpp +80 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/client_endpoint.hpp +173 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/roles/server_endpoint.hpp +190 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/server.hpp +33 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/sha1/sha1.hpp +189 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/base.hpp +232 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/connection.hpp +1204 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/endpoint.hpp +1147 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/base.hpp +159 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/none.hpp +370 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/asio/security/tls.hpp +484 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/connection.hpp +238 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/base/endpoint.hpp +77 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/base.hpp +104 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/connection.hpp +412 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/debug/endpoint.hpp +140 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/base.hpp +133 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/connection.hpp +714 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/iostream/endpoint.hpp +222 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/base.hpp +95 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/connection.hpp +286 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/transport/stub/endpoint.hpp +140 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/uri.hpp +355 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utf8_validator.hpp +154 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/utilities.hpp +182 -0
- data/src/cxx_supportlib/vendor-copy/websocketpp/websocketpp/version.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/async_result.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_datagram_socket.hpp +951 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_deadline_timer.hpp +520 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_io_object.hpp +258 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_raw_socket.hpp +942 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_seq_packet_socket.hpp +567 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_serial_port.hpp +697 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_signal_set.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket.hpp +1519 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_acceptor.hpp +1137 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_iostream.hpp +288 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_socket_streambuf.hpp +569 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_stream_socket.hpp +854 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf.hpp +371 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_streambuf_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/basic_waitable_timer.hpp +521 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffer.hpp +2241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream.hpp +246 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_read_stream_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream.hpp +260 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_stream_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream.hpp +238 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffered_write_stream_fwd.hpp +27 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/buffers_iterator.hpp +483 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/completion_condition.hpp +220 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/connect.hpp +825 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/coroutine.hpp +330 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/datagram_socket_service.hpp +438 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/deadline_timer_service.hpp +173 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/addressof.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/array_fwd.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/assert.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/atomic_count.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/base_from_completion_cond.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/bind_handler.hpp +491 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_resize_guard.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffer_sequence_adapter.hpp +385 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/buffered_stream_storage.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/call_stack.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/chrono_time_traits.hpp +192 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/completion_handler.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/config.hpp +1050 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/consuming_buffers.hpp +294 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/cstdint.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/date_time_fwd.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/deadline_timer_service.hpp +229 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dependent_type.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_ops.hpp +119 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_read_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/descriptor_write_op.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/dev_poll_reactor.hpp +208 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/epoll_reactor.hpp +244 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/event.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/eventfd_select_interrupter.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fd_set_adapter.hpp +41 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/fenced_block.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/function.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_arm_fenced_block.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_hppa_fenced_block.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_sync_fenced_block.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/gcc_x86_fenced_block.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_alloc_helpers.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_cont_helpers.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_invoke_helpers.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_tracking.hpp +161 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/handler_type_requirements.hpp +480 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/hash_map.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/buffer_sequence_adapter.ipp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/descriptor_ops.ipp +453 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/dev_poll_reactor.ipp +432 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/epoll_reactor.ipp +688 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/eventfd_select_interrupter.ipp +167 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/handler_tracking.ipp +307 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/kqueue_reactor.ipp +498 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/pipe_select_interrupter.ipp +126 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_event.ipp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_mutex.ipp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_thread.ipp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/posix_tss_ptr.ipp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_descriptor_service.ipp +210 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_serial_port_service.ipp +153 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/reactive_socket_service_base.ipp +269 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/resolver_service_base.ipp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/select_reactor.ipp +315 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/service_registry.ipp +190 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/signal_set_service.ipp +649 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_ops.ipp +3470 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/socket_select_interrupter.ipp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/strand_service.ipp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.hpp +80 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/task_io_service.ipp +476 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/throw_error.ipp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_ptime.ipp +86 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/impl/timer_queue_set.ipp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/io_control.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/keyword_tss_ptr.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/kqueue_reactor.hpp +222 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/limits.hpp +26 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/local_free_on_block_exit.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/macos_fenced_block.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/memory.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/mutex.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/noncopyable.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_event.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_fenced_block.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_mutex.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_reactor.hpp +69 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_signal_blocker.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_socket_service.hpp +500 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_static_mutex.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_thread.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/null_tss_ptr.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/object_pool.hpp +148 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/old_win_sdk_compat.hpp +216 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/op_queue.hpp +158 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/operation.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pipe_select_interrupter.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/pop_options.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_event.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_fd_set_adapter.hpp +120 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_mutex.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_signal_blocker.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_static_mutex.hpp +66 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_thread.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/posix_tss_ptr.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/push_options.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_descriptor_service.hpp +324 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_null_buffers_op.hpp +90 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_serial_port_service.hpp +236 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_accept_op.hpp +138 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_connect_op.hpp +108 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recv_op.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvfrom_op.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_recvmsg_op.hpp +127 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_send_op.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_sendto_op.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service.hpp +460 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactive_socket_service_base.hpp +452 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_fwd.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/reactor_op_queue.hpp +170 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/regex_fwd.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_endpoint_op.hpp +123 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolve_op.hpp +133 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/resolver_service_base.hpp +131 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_lock.hpp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/scoped_ptr.hpp +81 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_interrupter.hpp +48 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/select_reactor.hpp +221 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/service_registry.hpp +146 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/shared_ptr.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_blocker.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_handler.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_init.hpp +49 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_op.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/signal_set_service.hpp +218 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_holder.hpp +100 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_ops.hpp +336 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_option.hpp +318 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_select_interrupter.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/socket_types.hpp +410 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/solaris_fenced_block.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/static_mutex.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_event.hpp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_fenced_block.hpp +64 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_mutex.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_static_mutex.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/std_thread.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/strand_service.hpp +144 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service.hpp +203 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_operation.hpp +78 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/task_io_service_thread_info.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread.hpp +58 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/thread_info_base.hpp +93 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_error.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/throw_exception.hpp +53 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue.hpp +333 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_base.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_ptime.hpp +95 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_queue_set.hpp +68 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/timer_scheduler_fwd.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/tss_ptr.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/type_traits.hpp +60 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/variadic_templates.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_handler.hpp +85 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wait_op.hpp +47 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/weak_ptr.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/win_iocp_serial_port_service.hpp +230 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/winsock_init.hpp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/detail/wrapped_handler.hpp +293 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/error.hpp +345 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/basic_endpoint.hpp +195 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/datagram_protocol.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/endpoint.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/detail/impl/endpoint.ipp +111 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/raw_protocol.hpp +123 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/seq_packet_protocol.hpp +124 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/generic/stream_protocol.hpp +129 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_alloc_hook.hpp +83 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_continuation_hook.hpp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_invoke_hook.hpp +87 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/handler_type.hpp +114 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/high_resolution_timer.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_read_stream.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/buffered_write_stream.hpp +340 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/connect.hpp +432 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/error.ipp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/handler_alloc_hook.ipp +79 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.hpp +156 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/io_service.ipp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read.hpp +755 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_at.hpp +812 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/read_until.hpp +1149 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/serial_port_base.ipp +556 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/spawn.hpp +355 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.cpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/src.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/use_future.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write.hpp +767 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/impl/write_at.hpp +827 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/io_service.hpp +772 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address.hpp +202 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v4.hpp +243 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/address_v6.hpp +248 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_endpoint.hpp +265 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver.hpp +270 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_entry.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_iterator.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/basic_resolver_query.hpp +246 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/endpoint.hpp +141 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/impl/endpoint.ipp +206 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/detail/socket_option.hpp +571 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/host_name.hpp +44 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/icmp.hpp +117 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address.ipp +228 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v4.ipp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.hpp +55 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/address_v6.ipp +300 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/basic_endpoint.hpp +57 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/impl/host_name.ipp +56 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/multicast.hpp +193 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_query_base.hpp +132 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/resolver_service.hpp +178 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/tcp.hpp +157 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/udp.hpp +113 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/unicast.hpp +72 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ip/v6_only.hpp +71 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_read_buffered.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/is_write_buffered.hpp +61 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/basic_endpoint.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/connect_pair.hpp +106 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/datagram_protocol.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/endpoint.hpp +135 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/detail/impl/endpoint.ipp +130 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/local/stream_protocol.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/placeholders.hpp +125 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_descriptor.hpp +492 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/basic_stream_descriptor.hpp +364 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/descriptor_base.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/posix/stream_descriptor_service.hpp +262 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/raw_socket_service.hpp +438 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read.hpp +633 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_at.hpp +666 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/read_until.hpp +925 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/seq_packet_socket_service.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port.hpp +38 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_base.hpp +169 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/serial_port_service.hpp +255 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/signal_set_service.hpp +136 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_acceptor_service.hpp +308 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/socket_base.hpp +522 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/spawn.hpp +267 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/basic_context.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context.hpp +789 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_base.hpp +194 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/context_service.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/buffered_handshake_op.hpp +112 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/engine.hpp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/handshake_op.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/engine.ipp +327 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/impl/openssl_init.ipp +166 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/io.hpp +351 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_init.hpp +103 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/openssl_types.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/password_callback.hpp +74 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/read_op.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/shutdown_op.hpp +62 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/stream_core.hpp +128 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/verify_callback.hpp +70 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/detail/write_op.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/error.hpp +115 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/context.ipp +1177 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/error.ipp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/rfc2818_verification.ipp +168 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/impl/src.hpp +28 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/basic_context.hpp +436 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/context_service.hpp +176 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_context_service.hpp +396 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_operation.hpp +526 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/detail/openssl_stream_service.hpp +573 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream.hpp +503 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/old/stream_service.hpp +186 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/rfc2818_verification.hpp +102 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream.hpp +758 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_base.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/stream_service.hpp +42 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_context.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/ssl/verify_mode.hpp +65 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/steady_timer.hpp +63 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/strand.hpp +254 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/stream_socket_service.hpp +382 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/streambuf.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/system_timer.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/time_traits.hpp +88 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/unyield.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/use_future.hpp +94 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/version.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/wait_traits.hpp +43 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/waitable_timer_service.hpp +170 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_handle.hpp +283 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_object_handle.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_random_access_handle.hpp +378 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/basic_stream_handle.hpp +361 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/object_handle_service.hpp +179 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/overlapped_ptr.hpp +118 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/random_access_handle_service.hpp +222 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle.hpp +39 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/windows/stream_handle_service.hpp +220 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write.hpp +620 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/write_at.hpp +672 -0
- data/src/cxx_supportlib/vendor-modified/boost/asio/yield.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono.hpp +20 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/chrono_io.hpp +34 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/chrono.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/chrono.hpp +242 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/process_cpu_clocks.hpp +356 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/mac/thread_clock.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/chrono.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/process_cpu_clocks.hpp +354 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/posix/thread_clock.hpp +92 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/process_cpu_clocks.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/inlined/thread_clock.hpp +46 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/no_warning/signed_unsigned_cmp.hpp +54 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/detail/scan_keyword.hpp +163 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/floor.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/include.hpp +23 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_get.hpp +593 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_io.hpp +295 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_put.hpp +317 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_style.hpp +35 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/duration_units.hpp +1003 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/ios_base_state.hpp +152 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_get.hpp +330 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_io.hpp +1243 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_put.hpp +261 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/time_point_units.hpp +260 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/timezone.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/ios_base_state_ptr.hpp +437 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/manip_base.hpp +101 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io/utility/to_string.hpp +50 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/io_v1/chrono_io.hpp +637 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/process_cpu_clocks.hpp +525 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/round.hpp +59 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/thread_clock.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/chrono/chrono.hpp +32 -0
- data/src/cxx_supportlib/vendor-modified/boost/chrono/typeof/boost/ratio.hpp +24 -0
- data/src/cxx_supportlib/vendor-modified/boost/detail/atomic_count.hpp +21 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/common_factor_rt.hpp +460 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_log2.hpp +112 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/integer_mask.hpp +126 -0
- data/src/cxx_supportlib/vendor-modified/boost/integer/static_min_max.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/chrono.cpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/process_cpu_clocks.cpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/chrono/src/thread_clock.cpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/libs/random/src/random_device.cpp +250 -0
- data/src/cxx_supportlib/vendor-modified/boost/pointer_cast.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/random.hpp +91 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/additive_combine.hpp +283 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/bernoulli_distribution.hpp +197 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/beta_distribution.hpp +184 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/binomial_distribution.hpp +434 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/cauchy_distribution.hpp +214 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/chi_squared_distribution.hpp +209 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/auto_link.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/config.hpp +18 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/const_mod.hpp +216 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/disable_warnings.hpp +29 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/enable_warnings.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_bits.hpp +36 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/generator_seed_seq.hpp +40 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/int_float_pair.hpp +121 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/integer_log2.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/iterator_mixin.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/large_arithmetic.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/operators.hpp +84 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/polynomial.hpp +384 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/ptr_helper.hpp +67 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed.hpp +115 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/seed_impl.hpp +398 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/signed_unsigned_tools.hpp +89 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/uniform_int_float.hpp +76 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/detail/vector_io.hpp +75 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discard_block.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/discrete_distribution.hpp +636 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/exponential_distribution.hpp +386 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/extreme_value_distribution.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/fisher_f_distribution.hpp +183 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/gamma_distribution.hpp +292 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/generate_canonical.hpp +96 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/geometric_distribution.hpp +267 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/hyperexponential_distribution.hpp +883 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/independent_bits.hpp +271 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/inversive_congruential.hpp +267 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/lagged_fibonacci.hpp +537 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/laplace_distribution.hpp +175 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_congruential.hpp +466 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/linear_feedback_shift.hpp +217 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/lognormal_distribution.hpp +254 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/mersenne_twister.hpp +682 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/negative_binomial_distribution.hpp +220 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/non_central_chi_squared_distribution.hpp +221 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/normal_distribution.hpp +374 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_constant_distribution.hpp +466 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/piecewise_linear_distribution.hpp +531 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/poisson_distribution.hpp +360 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/random_device.hpp +143 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/random_number_generator.hpp +73 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/ranlux.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/seed_seq.hpp +118 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_order.hpp +269 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/shuffle_output.hpp +51 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/student_t_distribution.hpp +180 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/subtract_with_carry.hpp +613 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/taus88.hpp +45 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/traits.hpp +107 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/triangle_distribution.hpp +232 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_01.hpp +257 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int.hpp +99 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_int_distribution.hpp +419 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_on_sphere.hpp +284 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real.hpp +82 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_real_distribution.hpp +241 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/uniform_smallint.hpp +307 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/variate_generator.hpp +122 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/weibull_distribution.hpp +177 -0
- data/src/cxx_supportlib/vendor-modified/boost/random/xor_combine.hpp +208 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio.hpp +14 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/detail/ratio_io.hpp +1342 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/include.hpp +16 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/abs.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/arithmetic.hpp +22 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/comparison.hpp +19 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/divides.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/equal_to.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/gcd.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/greater_equal.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/lcm.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/less_equal.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/minus.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/negate.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/not_equal_to.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/numeric_cast.hpp +31 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/plus.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_c_tag.hpp +25 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/rational_constant.hpp +15 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/sign.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/mpl/times.hpp +30 -0
- data/src/cxx_supportlib/vendor-modified/boost/ratio/ratio_io.hpp +1076 -0
- data/src/cxx_supportlib/vendor-modified/boost/rational.hpp +1002 -0
- data/src/cxx_supportlib/vendor-modified/modp_b64.cpp +11 -0
- data/src/helper-scripts/rack-preloader.rb +1 -1
- data/src/nginx_module/{ConfigurationCommands.c → ConfigGeneral/AutoGeneratedDefinitions.c} +351 -134
- data/src/nginx_module/{ConfigurationCommands.c.cxxcodebuilder → ConfigGeneral/AutoGeneratedDefinitions.c.cxxcodebuilder} +14 -25
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c +396 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedManifestDefaultsInitialization.c.cxxcodebuilder +160 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c +831 -0
- data/src/nginx_module/ConfigGeneral/AutoGeneratedSetterFuncs.c.cxxcodebuilder +168 -0
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.c +887 -0
- data/src/nginx_module/ConfigGeneral/ManifestGeneration.h +100 -0
- data/src/nginx_module/Configuration.c +165 -621
- data/src/nginx_module/Configuration.h +43 -33
- data/src/nginx_module/ContentHandler.c +46 -40
- data/src/nginx_module/LocationConfig/AutoGeneratedCreateFunction.c +282 -0
- data/src/nginx_module/{CreateLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder} +43 -17
- data/src/nginx_module/{CacheLocationConfig.c → LocationConfig/AutoGeneratedHeaderSerialization.c} +148 -180
- data/src/nginx_module/{CacheLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedHeaderSerialization.c.cxxcodebuilder} +13 -11
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c +595 -0
- data/src/nginx_module/LocationConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +190 -0
- data/src/nginx_module/{MergeLocationConfig.c → LocationConfig/AutoGeneratedMergeFunction.c} +32 -42
- data/src/nginx_module/{MergeLocationConfig.c.cxxcodebuilder → LocationConfig/AutoGeneratedMergeFunction.c.cxxcodebuilder} +18 -11
- data/src/nginx_module/LocationConfig/AutoGeneratedStruct.h +220 -0
- data/src/nginx_module/{LocationConfig.h.cxxcodebuilder → LocationConfig/AutoGeneratedStruct.h.cxxcodebuilder} +70 -48
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c +163 -0
- data/src/nginx_module/MainConfig/AutoGeneratedCreateFunction.c.cxxcodebuilder +125 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c +303 -0
- data/src/nginx_module/MainConfig/AutoGeneratedManifestGeneration.c.cxxcodebuilder +173 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h +133 -0
- data/src/nginx_module/MainConfig/AutoGeneratedStruct.h.cxxcodebuilder +154 -0
- data/src/nginx_module/config +13 -4
- data/src/nginx_module/ngx_http_passenger_module.c +154 -84
- data/src/ruby_supportlib/phusion_passenger.rb +2 -2
- data/src/ruby_supportlib/phusion_passenger/apache2/config_options.rb +613 -131
- data/src/ruby_supportlib/phusion_passenger/apache2/config_utils.rb +52 -0
- data/src/ruby_supportlib/phusion_passenger/common_library.rb +18 -4
- data/src/ruby_supportlib/phusion_passenger/config/main.rb +2 -0
- data/src/ruby_supportlib/phusion_passenger/config/system_properties_command.rb +104 -0
- data/src/ruby_supportlib/phusion_passenger/constants.rb +0 -2
- data/src/ruby_supportlib/phusion_passenger/nginx/config_options.rb +470 -138
- data/src/ruby_supportlib/phusion_passenger/packaging.rb +1 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info.rb +17 -0
- data/src/ruby_supportlib/phusion_passenger/platform_info/apache.rb +11 -1
- data/src/ruby_supportlib/phusion_passenger/platform_info/compiler.rb +7 -7
- data/src/ruby_supportlib/phusion_passenger/platform_info/networking.rb +293 -0
- data/src/ruby_supportlib/phusion_passenger/standalone/config_options_list.rb +8 -54
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command.rb +1 -5
- data/src/ruby_supportlib/phusion_passenger/standalone/start_command/builtin_engine.rb +4 -7
- data/src/ruby_supportlib/phusion_passenger/vendor/daemon_controller.rb +1 -1
- data/src/schema_printer/SchemaPrinterMain.cpp +78 -0
- data/src/schema_printer/SchemaPrinterMain.cpp.cxxcodebuilder +116 -0
- metadata +671 -30
- data/src/apache2_module/Configuration.cpp +0 -737
- data/src/apache2_module/Configuration.hpp +0 -274
- data/src/apache2_module/ConfigurationCommands.cpp +0 -199
- data/src/apache2_module/ConfigurationFields.hpp +0 -187
- data/src/apache2_module/ConfigurationSetters.cpp +0 -436
- data/src/apache2_module/ConfigurationSetters.cpp.cxxcodebuilder +0 -144
- data/src/apache2_module/CreateDirConfig.cpp +0 -68
- data/src/apache2_module/CreateDirConfig.cpp.cxxcodebuilder +0 -81
- data/src/apache2_module/MergeDirConfig.cpp +0 -155
- data/src/apache2_module/SetHeaders.cpp +0 -111
- data/src/nginx_module/CreateLocationConfig.c +0 -100
- data/src/nginx_module/LocationConfig.h +0 -95
@@ -0,0 +1,51 @@
|
|
1
|
+
/* boost random/shuffle_output.hpp header file
|
2
|
+
*
|
3
|
+
* Copyright Jens Maurer 2000-2001
|
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
|
+
* Revision history
|
13
|
+
* 2001-02-18 moved to individual header files
|
14
|
+
*/
|
15
|
+
|
16
|
+
#ifndef BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
|
17
|
+
#define BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
|
18
|
+
|
19
|
+
#include <boost/random/shuffle_order.hpp>
|
20
|
+
|
21
|
+
namespace boost {
|
22
|
+
namespace random {
|
23
|
+
|
24
|
+
/// \cond
|
25
|
+
|
26
|
+
template<typename URNG, int k,
|
27
|
+
typename URNG::result_type val = 0>
|
28
|
+
class shuffle_output : public shuffle_order_engine<URNG, k>
|
29
|
+
{
|
30
|
+
typedef shuffle_order_engine<URNG, k> base_t;
|
31
|
+
public:
|
32
|
+
typedef typename base_t::result_type result_type;
|
33
|
+
shuffle_output() {}
|
34
|
+
template<class T>
|
35
|
+
explicit shuffle_output(T& arg) : base_t(arg) {}
|
36
|
+
template<class T>
|
37
|
+
explicit shuffle_output(const T& arg) : base_t(arg) {}
|
38
|
+
template<class It>
|
39
|
+
shuffle_output(It& first, It last) : base_t(first, last) {}
|
40
|
+
result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
41
|
+
{ return (this->base().min)(); }
|
42
|
+
result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
43
|
+
{ return (this->base().max)(); }
|
44
|
+
};
|
45
|
+
|
46
|
+
/// \endcond
|
47
|
+
|
48
|
+
}
|
49
|
+
}
|
50
|
+
|
51
|
+
#endif // BOOST_RANDOM_SHUFFLE_OUTPUT_HPP
|
@@ -0,0 +1,180 @@
|
|
1
|
+
/* boost random/student_t_distribution.hpp header file
|
2
|
+
*
|
3
|
+
* Copyright Steven Watanabe 2011
|
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
|
+
#ifndef BOOST_RANDOM_STUDENT_T_DISTRIBUTION_HPP
|
14
|
+
#define BOOST_RANDOM_STUDENT_T_DISTRIBUTION_HPP
|
15
|
+
|
16
|
+
#include <boost/config/no_tr1/cmath.hpp>
|
17
|
+
#include <iosfwd>
|
18
|
+
#include <boost/config.hpp>
|
19
|
+
#include <boost/limits.hpp>
|
20
|
+
#include <boost/random/detail/operators.hpp>
|
21
|
+
#include <boost/random/chi_squared_distribution.hpp>
|
22
|
+
#include <boost/random/normal_distribution.hpp>
|
23
|
+
|
24
|
+
namespace boost {
|
25
|
+
namespace random {
|
26
|
+
|
27
|
+
/**
|
28
|
+
* The Student t distribution is a real valued distribution with one
|
29
|
+
* parameter n, the number of degrees of freedom.
|
30
|
+
*
|
31
|
+
* It has \f$\displaystyle p(x) =
|
32
|
+
* \frac{1}{\sqrt{n\pi}}
|
33
|
+
* \frac{\Gamma((n+1)/2)}{\Gamma(n/2)}
|
34
|
+
* \left(1+\frac{x^2}{n}\right)^{-(n+1)/2}
|
35
|
+
* \f$.
|
36
|
+
*/
|
37
|
+
template<class RealType = double>
|
38
|
+
class student_t_distribution {
|
39
|
+
public:
|
40
|
+
typedef RealType result_type;
|
41
|
+
typedef RealType input_type;
|
42
|
+
|
43
|
+
class param_type {
|
44
|
+
public:
|
45
|
+
typedef student_t_distribution distribution_type;
|
46
|
+
|
47
|
+
/**
|
48
|
+
* Constructs a @c param_type with "n" degrees of freedom.
|
49
|
+
*
|
50
|
+
* Requires: n > 0
|
51
|
+
*/
|
52
|
+
explicit param_type(RealType n_arg = RealType(1.0))
|
53
|
+
: _n(n_arg)
|
54
|
+
{}
|
55
|
+
|
56
|
+
/** Returns the number of degrees of freedom of the distribution. */
|
57
|
+
RealType n() const { return _n; }
|
58
|
+
|
59
|
+
/** Writes a @c param_type to a @c std::ostream. */
|
60
|
+
BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, param_type, parm)
|
61
|
+
{ os << parm._n; return os; }
|
62
|
+
|
63
|
+
/** Reads a @c param_type from a @c std::istream. */
|
64
|
+
BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, param_type, parm)
|
65
|
+
{ is >> parm._n; return is; }
|
66
|
+
|
67
|
+
/** Returns true if the two sets of parameters are the same. */
|
68
|
+
BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(param_type, lhs, rhs)
|
69
|
+
{ return lhs._n == rhs._n; }
|
70
|
+
|
71
|
+
/** Returns true if the two sets of parameters are the different. */
|
72
|
+
BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(param_type)
|
73
|
+
|
74
|
+
private:
|
75
|
+
RealType _n;
|
76
|
+
};
|
77
|
+
|
78
|
+
/**
|
79
|
+
* Constructs an @c student_t_distribution with "n" degrees of freedom.
|
80
|
+
*
|
81
|
+
* Requires: n > 0
|
82
|
+
*/
|
83
|
+
explicit student_t_distribution(RealType n_arg = RealType(1.0))
|
84
|
+
: _normal(), _chi_squared(n_arg)
|
85
|
+
{}
|
86
|
+
/** Constructs an @c student_t_distribution from its parameters. */
|
87
|
+
explicit student_t_distribution(const param_type& parm)
|
88
|
+
: _normal(), _chi_squared(parm.n())
|
89
|
+
{}
|
90
|
+
|
91
|
+
/**
|
92
|
+
* Returns a random variate distributed according to the
|
93
|
+
* Student t distribution.
|
94
|
+
*/
|
95
|
+
template<class URNG>
|
96
|
+
RealType operator()(URNG& urng)
|
97
|
+
{
|
98
|
+
using std::sqrt;
|
99
|
+
return _normal(urng) / sqrt(_chi_squared(urng) / n());
|
100
|
+
}
|
101
|
+
|
102
|
+
/**
|
103
|
+
* Returns a random variate distributed accordint to the Student
|
104
|
+
* t distribution with parameters specified by @c param.
|
105
|
+
*/
|
106
|
+
template<class URNG>
|
107
|
+
RealType operator()(URNG& urng, const param_type& parm) const
|
108
|
+
{
|
109
|
+
return student_t_distribution(parm)(urng);
|
110
|
+
}
|
111
|
+
|
112
|
+
/** Returns the number of degrees of freedom. */
|
113
|
+
RealType n() const { return _chi_squared.n(); }
|
114
|
+
|
115
|
+
/** Returns the smallest value that the distribution can produce. */
|
116
|
+
RealType min BOOST_PREVENT_MACRO_SUBSTITUTION () const
|
117
|
+
{ return -std::numeric_limits<RealType>::infinity(); }
|
118
|
+
/** Returns the largest value that the distribution can produce. */
|
119
|
+
RealType max BOOST_PREVENT_MACRO_SUBSTITUTION () const
|
120
|
+
{ return std::numeric_limits<RealType>::infinity(); }
|
121
|
+
|
122
|
+
/** Returns the parameters of the distribution. */
|
123
|
+
param_type param() const { return param_type(n()); }
|
124
|
+
/** Sets the parameters of the distribution. */
|
125
|
+
void param(const param_type& parm)
|
126
|
+
{
|
127
|
+
typedef chi_squared_distribution<RealType> chi_squared_type;
|
128
|
+
typename chi_squared_type::param_type chi_squared_param(parm.n());
|
129
|
+
_chi_squared.param(chi_squared_param);
|
130
|
+
}
|
131
|
+
|
132
|
+
/**
|
133
|
+
* Effects: Subsequent uses of the distribution do not depend
|
134
|
+
* on values produced by any engine prior to invoking reset.
|
135
|
+
*/
|
136
|
+
void reset()
|
137
|
+
{
|
138
|
+
_normal.reset();
|
139
|
+
_chi_squared.reset();
|
140
|
+
}
|
141
|
+
|
142
|
+
/** Writes a @c student_t_distribution to a @c std::ostream. */
|
143
|
+
BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, student_t_distribution, td)
|
144
|
+
{
|
145
|
+
os << td.param();
|
146
|
+
return os;
|
147
|
+
}
|
148
|
+
|
149
|
+
/** Reads a @c student_t_distribution from a @c std::istream. */
|
150
|
+
BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, student_t_distribution, td)
|
151
|
+
{
|
152
|
+
param_type parm;
|
153
|
+
if(is >> parm) {
|
154
|
+
td.param(parm);
|
155
|
+
}
|
156
|
+
return is;
|
157
|
+
}
|
158
|
+
|
159
|
+
/**
|
160
|
+
* Returns true if the two instances of @c student_t_distribution will
|
161
|
+
* return identical sequences of values given equal generators.
|
162
|
+
*/
|
163
|
+
BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(student_t_distribution, lhs, rhs)
|
164
|
+
{ return lhs._normal == rhs._normal && lhs._chi_squared == rhs._chi_squared; }
|
165
|
+
|
166
|
+
/**
|
167
|
+
* Returns true if the two instances of @c student_t_distribution will
|
168
|
+
* return different sequences of values given equal generators.
|
169
|
+
*/
|
170
|
+
BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(student_t_distribution)
|
171
|
+
|
172
|
+
private:
|
173
|
+
normal_distribution<RealType> _normal;
|
174
|
+
chi_squared_distribution<RealType> _chi_squared;
|
175
|
+
};
|
176
|
+
|
177
|
+
} // namespace random
|
178
|
+
} // namespace boost
|
179
|
+
|
180
|
+
#endif // BOOST_RANDOM_STUDENT_T_DISTRIBUTION_HPP
|
@@ -0,0 +1,613 @@
|
|
1
|
+
/* boost random/subtract_with_carry.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
|
+
* Revision history
|
13
|
+
* 2002-03-02 created
|
14
|
+
*/
|
15
|
+
|
16
|
+
#ifndef BOOST_RANDOM_SUBTRACT_WITH_CARRY_HPP
|
17
|
+
#define BOOST_RANDOM_SUBTRACT_WITH_CARRY_HPP
|
18
|
+
|
19
|
+
#include <boost/config/no_tr1/cmath.hpp> // std::pow
|
20
|
+
#include <iostream>
|
21
|
+
#include <algorithm> // std::equal
|
22
|
+
#include <stdexcept>
|
23
|
+
#include <boost/config.hpp>
|
24
|
+
#include <boost/limits.hpp>
|
25
|
+
#include <boost/cstdint.hpp>
|
26
|
+
#include <boost/static_assert.hpp>
|
27
|
+
#include <boost/integer/static_log2.hpp>
|
28
|
+
#include <boost/integer/integer_mask.hpp>
|
29
|
+
#include <boost/detail/workaround.hpp>
|
30
|
+
#include <boost/random/detail/config.hpp>
|
31
|
+
#include <boost/random/detail/seed.hpp>
|
32
|
+
#include <boost/random/detail/operators.hpp>
|
33
|
+
#include <boost/random/detail/seed_impl.hpp>
|
34
|
+
#include <boost/random/detail/generator_seed_seq.hpp>
|
35
|
+
#include <boost/random/linear_congruential.hpp>
|
36
|
+
|
37
|
+
|
38
|
+
namespace boost {
|
39
|
+
namespace random {
|
40
|
+
|
41
|
+
namespace detail {
|
42
|
+
|
43
|
+
struct subtract_with_carry_discard
|
44
|
+
{
|
45
|
+
template<class Engine>
|
46
|
+
static void apply(Engine& eng, boost::uintmax_t z)
|
47
|
+
{
|
48
|
+
typedef typename Engine::result_type IntType;
|
49
|
+
const std::size_t short_lag = Engine::short_lag;
|
50
|
+
const std::size_t long_lag = Engine::long_lag;
|
51
|
+
std::size_t k = eng.k;
|
52
|
+
IntType carry = eng.carry;
|
53
|
+
if(k != 0) {
|
54
|
+
// increment k until it becomes 0.
|
55
|
+
if(k < short_lag) {
|
56
|
+
std::size_t limit = (short_lag - k) < z?
|
57
|
+
short_lag : (k + static_cast<std::size_t>(z));
|
58
|
+
for(std::size_t j = k; j < limit; ++j) {
|
59
|
+
carry = eng.do_update(j, j + long_lag - short_lag, carry);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
std::size_t limit = (long_lag - k) < z?
|
63
|
+
long_lag : (k + static_cast<std::size_t>(z));
|
64
|
+
std::size_t start = (k < short_lag ? short_lag : k);
|
65
|
+
for(std::size_t j = start; j < limit; ++j) {
|
66
|
+
carry = eng.do_update(j, j - short_lag, carry);
|
67
|
+
}
|
68
|
+
}
|
69
|
+
|
70
|
+
k = ((z % long_lag) + k) % long_lag;
|
71
|
+
|
72
|
+
if(k < z) {
|
73
|
+
// main loop: update full blocks from k = 0 to long_lag
|
74
|
+
for(std::size_t i = 0; i < (z - k) / long_lag; ++i) {
|
75
|
+
for(std::size_t j = 0; j < short_lag; ++j) {
|
76
|
+
carry = eng.do_update(j, j + long_lag - short_lag, carry);
|
77
|
+
}
|
78
|
+
for(std::size_t j = short_lag; j < long_lag; ++j) {
|
79
|
+
carry = eng.do_update(j, j - short_lag, carry);
|
80
|
+
}
|
81
|
+
}
|
82
|
+
|
83
|
+
// Update the last partial block
|
84
|
+
std::size_t limit = short_lag < k? short_lag : k;
|
85
|
+
for(std::size_t j = 0; j < limit; ++j) {
|
86
|
+
carry = eng.do_update(j, j + long_lag - short_lag, carry);
|
87
|
+
}
|
88
|
+
for(std::size_t j = short_lag; j < k; ++j) {
|
89
|
+
carry = eng.do_update(j, j - short_lag, carry);
|
90
|
+
}
|
91
|
+
}
|
92
|
+
eng.carry = carry;
|
93
|
+
eng.k = k;
|
94
|
+
}
|
95
|
+
};
|
96
|
+
|
97
|
+
}
|
98
|
+
|
99
|
+
/**
|
100
|
+
* Instantiations of @c subtract_with_carry_engine model a
|
101
|
+
* \pseudo_random_number_generator. The algorithm is
|
102
|
+
* described in
|
103
|
+
*
|
104
|
+
* @blockquote
|
105
|
+
* "A New Class of Random Number Generators", George
|
106
|
+
* Marsaglia and Arif Zaman, Annals of Applied Probability,
|
107
|
+
* Volume 1, Number 3 (1991), 462-480.
|
108
|
+
* @endblockquote
|
109
|
+
*/
|
110
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
111
|
+
class subtract_with_carry_engine
|
112
|
+
{
|
113
|
+
public:
|
114
|
+
typedef IntType result_type;
|
115
|
+
BOOST_STATIC_CONSTANT(std::size_t, word_size = w);
|
116
|
+
BOOST_STATIC_CONSTANT(std::size_t, long_lag = r);
|
117
|
+
BOOST_STATIC_CONSTANT(std::size_t, short_lag = s);
|
118
|
+
BOOST_STATIC_CONSTANT(uint32_t, default_seed = 19780503u);
|
119
|
+
|
120
|
+
// Required by the old Boost.Random concepts
|
121
|
+
BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
|
122
|
+
// Backwards compatibility
|
123
|
+
BOOST_STATIC_CONSTANT(result_type, modulus = (result_type(1) << w));
|
124
|
+
|
125
|
+
BOOST_STATIC_ASSERT(std::numeric_limits<result_type>::is_integer);
|
126
|
+
|
127
|
+
/**
|
128
|
+
* Constructs a new @c subtract_with_carry_engine and seeds
|
129
|
+
* it with the default seed.
|
130
|
+
*/
|
131
|
+
subtract_with_carry_engine() { seed(); }
|
132
|
+
/**
|
133
|
+
* Constructs a new @c subtract_with_carry_engine and seeds
|
134
|
+
* it with @c value.
|
135
|
+
*/
|
136
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry_engine,
|
137
|
+
IntType, value)
|
138
|
+
{ seed(value); }
|
139
|
+
/**
|
140
|
+
* Constructs a new @c subtract_with_carry_engine and seeds
|
141
|
+
* it with values produced by @c seq.generate().
|
142
|
+
*/
|
143
|
+
BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(subtract_with_carry_engine,
|
144
|
+
SeedSeq, seq)
|
145
|
+
{ seed(seq); }
|
146
|
+
/**
|
147
|
+
* Constructs a new @c subtract_with_carry_engine and seeds
|
148
|
+
* it with values from a range. first is updated to point
|
149
|
+
* one past the last value consumed. If there are not
|
150
|
+
* enough elements in the range to fill the entire state of
|
151
|
+
* the generator, throws @c std::invalid_argument.
|
152
|
+
*/
|
153
|
+
template<class It> subtract_with_carry_engine(It& first, It last)
|
154
|
+
{ seed(first,last); }
|
155
|
+
|
156
|
+
// compiler-generated copy ctor and assignment operator are fine
|
157
|
+
|
158
|
+
/** Seeds the generator with the default seed. */
|
159
|
+
void seed() { seed(default_seed); }
|
160
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry_engine,
|
161
|
+
IntType, value)
|
162
|
+
{
|
163
|
+
typedef linear_congruential_engine<uint32_t,40014,0,2147483563> gen_t;
|
164
|
+
gen_t intgen(static_cast<boost::uint32_t>(value == 0 ? default_seed : value));
|
165
|
+
detail::generator_seed_seq<gen_t> gen(intgen);
|
166
|
+
seed(gen);
|
167
|
+
}
|
168
|
+
|
169
|
+
/** Seeds the generator with values produced by @c seq.generate(). */
|
170
|
+
BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(subtract_with_carry, SeedSeq, seq)
|
171
|
+
{
|
172
|
+
detail::seed_array_int<w>(seq, x);
|
173
|
+
carry = (x[long_lag-1] == 0);
|
174
|
+
k = 0;
|
175
|
+
}
|
176
|
+
|
177
|
+
/**
|
178
|
+
* Seeds the generator with values from a range. Updates @c first to
|
179
|
+
* point one past the last consumed value. If the range does not
|
180
|
+
* contain enough elements to fill the entire state of the generator,
|
181
|
+
* throws @c std::invalid_argument.
|
182
|
+
*/
|
183
|
+
template<class It>
|
184
|
+
void seed(It& first, It last)
|
185
|
+
{
|
186
|
+
detail::fill_array_int<w>(first, last, x);
|
187
|
+
carry = (x[long_lag-1] == 0);
|
188
|
+
k = 0;
|
189
|
+
}
|
190
|
+
|
191
|
+
/** Returns the smallest value that the generator can produce. */
|
192
|
+
static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
193
|
+
{ return 0; }
|
194
|
+
/** Returns the largest value that the generator can produce. */
|
195
|
+
static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
196
|
+
{ return boost::low_bits_mask_t<w>::sig_bits; }
|
197
|
+
|
198
|
+
/** Returns the next value of the generator. */
|
199
|
+
result_type operator()()
|
200
|
+
{
|
201
|
+
std::size_t short_index =
|
202
|
+
(k < short_lag)?
|
203
|
+
(k + long_lag - short_lag) :
|
204
|
+
(k - short_lag);
|
205
|
+
carry = do_update(k, short_index, carry);
|
206
|
+
IntType result = x[k];
|
207
|
+
++k;
|
208
|
+
if(k >= long_lag)
|
209
|
+
k = 0;
|
210
|
+
return result;
|
211
|
+
}
|
212
|
+
|
213
|
+
/** Advances the state of the generator by @c z. */
|
214
|
+
void discard(boost::uintmax_t z)
|
215
|
+
{
|
216
|
+
detail::subtract_with_carry_discard::apply(*this, z);
|
217
|
+
}
|
218
|
+
|
219
|
+
/** Fills a range with random values. */
|
220
|
+
template<class It>
|
221
|
+
void generate(It first, It last)
|
222
|
+
{ detail::generate_from_int(*this, first, last); }
|
223
|
+
|
224
|
+
/** Writes a @c subtract_with_carry_engine to a @c std::ostream. */
|
225
|
+
BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, subtract_with_carry_engine, f)
|
226
|
+
{
|
227
|
+
for(unsigned int j = 0; j < f.long_lag; ++j)
|
228
|
+
os << f.compute(j) << ' ';
|
229
|
+
os << f.carry;
|
230
|
+
return os;
|
231
|
+
}
|
232
|
+
|
233
|
+
/** Reads a @c subtract_with_carry_engine from a @c std::istream. */
|
234
|
+
BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, subtract_with_carry_engine, f)
|
235
|
+
{
|
236
|
+
for(unsigned int j = 0; j < f.long_lag; ++j)
|
237
|
+
is >> f.x[j] >> std::ws;
|
238
|
+
is >> f.carry;
|
239
|
+
f.k = 0;
|
240
|
+
return is;
|
241
|
+
}
|
242
|
+
|
243
|
+
/**
|
244
|
+
* Returns true if the two generators will produce identical
|
245
|
+
* sequences of values.
|
246
|
+
*/
|
247
|
+
BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_engine, x, y)
|
248
|
+
{
|
249
|
+
for(unsigned int j = 0; j < r; ++j)
|
250
|
+
if(x.compute(j) != y.compute(j))
|
251
|
+
return false;
|
252
|
+
return true;
|
253
|
+
}
|
254
|
+
|
255
|
+
/**
|
256
|
+
* Returns true if the two generators will produce different
|
257
|
+
* sequences of values.
|
258
|
+
*/
|
259
|
+
BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(subtract_with_carry_engine)
|
260
|
+
|
261
|
+
private:
|
262
|
+
/// \cond show_private
|
263
|
+
// returns x(i-r+index), where index is in 0..r-1
|
264
|
+
IntType compute(unsigned int index) const
|
265
|
+
{
|
266
|
+
return x[(k+index) % long_lag];
|
267
|
+
}
|
268
|
+
|
269
|
+
friend struct detail::subtract_with_carry_discard;
|
270
|
+
|
271
|
+
IntType do_update(std::size_t current, std::size_t short_index, IntType carry)
|
272
|
+
{
|
273
|
+
IntType delta;
|
274
|
+
IntType temp = x[current] + carry;
|
275
|
+
if (x[short_index] >= temp) {
|
276
|
+
// x(n) >= 0
|
277
|
+
delta = x[short_index] - temp;
|
278
|
+
carry = 0;
|
279
|
+
} else {
|
280
|
+
// x(n) < 0
|
281
|
+
delta = modulus - temp + x[short_index];
|
282
|
+
carry = 1;
|
283
|
+
}
|
284
|
+
x[current] = delta;
|
285
|
+
return carry;
|
286
|
+
}
|
287
|
+
/// \endcond
|
288
|
+
|
289
|
+
// state representation; next output (state) is x(i)
|
290
|
+
// x[0] ... x[k] x[k+1] ... x[long_lag-1] represents
|
291
|
+
// x(i-k) ... x(i) x(i+1) ... x(i-k+long_lag-1)
|
292
|
+
// speed: base: 20-25 nsec
|
293
|
+
// ranlux_4: 230 nsec, ranlux_7: 430 nsec, ranlux_14: 810 nsec
|
294
|
+
// This state representation makes operator== and save/restore more
|
295
|
+
// difficult, because we've already computed "too much" and thus
|
296
|
+
// have to undo some steps to get at x(i-r) etc.
|
297
|
+
|
298
|
+
// state representation: next output (state) is x(i)
|
299
|
+
// x[0] ... x[k] x[k+1] ... x[long_lag-1] represents
|
300
|
+
// x(i-k) ... x(i) x(i-long_lag+1) ... x(i-k-1)
|
301
|
+
// speed: base 28 nsec
|
302
|
+
// ranlux_4: 370 nsec, ranlux_7: 688 nsec, ranlux_14: 1343 nsec
|
303
|
+
IntType x[long_lag];
|
304
|
+
std::size_t k;
|
305
|
+
IntType carry;
|
306
|
+
};
|
307
|
+
|
308
|
+
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
309
|
+
// A definition is required even for integral static constants
|
310
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
311
|
+
const bool subtract_with_carry_engine<IntType, w, s, r>::has_fixed_range;
|
312
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
313
|
+
const IntType subtract_with_carry_engine<IntType, w, s, r>::modulus;
|
314
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
315
|
+
const std::size_t subtract_with_carry_engine<IntType, w, s, r>::word_size;
|
316
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
317
|
+
const std::size_t subtract_with_carry_engine<IntType, w, s, r>::long_lag;
|
318
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
319
|
+
const std::size_t subtract_with_carry_engine<IntType, w, s, r>::short_lag;
|
320
|
+
template<class IntType, std::size_t w, std::size_t s, std::size_t r>
|
321
|
+
const uint32_t subtract_with_carry_engine<IntType, w, s, r>::default_seed;
|
322
|
+
#endif
|
323
|
+
|
324
|
+
|
325
|
+
// use a floating-point representation to produce values in [0..1)
|
326
|
+
/**
|
327
|
+
* Instantiations of \subtract_with_carry_01_engine model a
|
328
|
+
* \pseudo_random_number_generator. The algorithm is
|
329
|
+
* described in
|
330
|
+
*
|
331
|
+
* @blockquote
|
332
|
+
* "A New Class of Random Number Generators", George
|
333
|
+
* Marsaglia and Arif Zaman, Annals of Applied Probability,
|
334
|
+
* Volume 1, Number 3 (1991), 462-480.
|
335
|
+
* @endblockquote
|
336
|
+
*/
|
337
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
338
|
+
class subtract_with_carry_01_engine
|
339
|
+
{
|
340
|
+
public:
|
341
|
+
typedef RealType result_type;
|
342
|
+
BOOST_STATIC_CONSTANT(bool, has_fixed_range = false);
|
343
|
+
BOOST_STATIC_CONSTANT(std::size_t, word_size = w);
|
344
|
+
BOOST_STATIC_CONSTANT(std::size_t, long_lag = r);
|
345
|
+
BOOST_STATIC_CONSTANT(std::size_t, short_lag = s);
|
346
|
+
BOOST_STATIC_CONSTANT(boost::uint32_t, default_seed = 19780503u);
|
347
|
+
|
348
|
+
BOOST_STATIC_ASSERT(!std::numeric_limits<result_type>::is_integer);
|
349
|
+
|
350
|
+
/** Creates a new \subtract_with_carry_01_engine using the default seed. */
|
351
|
+
subtract_with_carry_01_engine() { init_modulus(); seed(); }
|
352
|
+
/** Creates a new subtract_with_carry_01_engine and seeds it with value. */
|
353
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry_01_engine,
|
354
|
+
boost::uint32_t, value)
|
355
|
+
{ init_modulus(); seed(value); }
|
356
|
+
/**
|
357
|
+
* Creates a new \subtract_with_carry_01_engine and seeds with values
|
358
|
+
* produced by seq.generate().
|
359
|
+
*/
|
360
|
+
BOOST_RANDOM_DETAIL_SEED_SEQ_CONSTRUCTOR(subtract_with_carry_01_engine,
|
361
|
+
SeedSeq, seq)
|
362
|
+
{ init_modulus(); seed(seq); }
|
363
|
+
/**
|
364
|
+
* Creates a new \subtract_with_carry_01_engine and seeds it with values
|
365
|
+
* from a range. Advances first to point one past the last consumed
|
366
|
+
* value. If the range does not contain enough elements to fill the
|
367
|
+
* entire state, throws @c std::invalid_argument.
|
368
|
+
*/
|
369
|
+
template<class It> subtract_with_carry_01_engine(It& first, It last)
|
370
|
+
{ init_modulus(); seed(first,last); }
|
371
|
+
|
372
|
+
private:
|
373
|
+
/// \cond show_private
|
374
|
+
void init_modulus()
|
375
|
+
{
|
376
|
+
#ifndef BOOST_NO_STDC_NAMESPACE
|
377
|
+
// allow for Koenig lookup
|
378
|
+
using std::pow;
|
379
|
+
#endif
|
380
|
+
_modulus = pow(RealType(2), RealType(word_size));
|
381
|
+
}
|
382
|
+
/// \endcond
|
383
|
+
|
384
|
+
public:
|
385
|
+
// compiler-generated copy ctor and assignment operator are fine
|
386
|
+
|
387
|
+
/** Seeds the generator with the default seed. */
|
388
|
+
void seed() { seed(default_seed); }
|
389
|
+
|
390
|
+
/** Seeds the generator with @c value. */
|
391
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry_01_engine,
|
392
|
+
boost::uint32_t, value)
|
393
|
+
{
|
394
|
+
typedef linear_congruential_engine<uint32_t, 40014, 0, 2147483563> gen_t;
|
395
|
+
gen_t intgen(value == 0 ? default_seed : value);
|
396
|
+
detail::generator_seed_seq<gen_t> gen(intgen);
|
397
|
+
seed(gen);
|
398
|
+
}
|
399
|
+
|
400
|
+
/** Seeds the generator with values produced by @c seq.generate(). */
|
401
|
+
BOOST_RANDOM_DETAIL_SEED_SEQ_SEED(subtract_with_carry_01_engine,
|
402
|
+
SeedSeq, seq)
|
403
|
+
{
|
404
|
+
detail::seed_array_real<w>(seq, x);
|
405
|
+
carry = (x[long_lag-1] ? result_type(0) : result_type(1 / _modulus));
|
406
|
+
k = 0;
|
407
|
+
}
|
408
|
+
|
409
|
+
/**
|
410
|
+
* Seeds the generator with values from a range. Updates first to
|
411
|
+
* point one past the last consumed element. If there are not
|
412
|
+
* enough elements in the range to fill the entire state, throws
|
413
|
+
* @c std::invalid_argument.
|
414
|
+
*/
|
415
|
+
template<class It>
|
416
|
+
void seed(It& first, It last)
|
417
|
+
{
|
418
|
+
detail::fill_array_real<w>(first, last, x);
|
419
|
+
carry = (x[long_lag-1] ? result_type(0) : result_type(1 / _modulus));
|
420
|
+
k = 0;
|
421
|
+
}
|
422
|
+
|
423
|
+
/** Returns the smallest value that the generator can produce. */
|
424
|
+
static result_type min BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
425
|
+
{ return result_type(0); }
|
426
|
+
/** Returns the largest value that the generator can produce. */
|
427
|
+
static result_type max BOOST_PREVENT_MACRO_SUBSTITUTION ()
|
428
|
+
{ return result_type(1); }
|
429
|
+
|
430
|
+
/** Returns the next value of the generator. */
|
431
|
+
result_type operator()()
|
432
|
+
{
|
433
|
+
std::size_t short_index =
|
434
|
+
(k < short_lag) ?
|
435
|
+
(k + long_lag - short_lag) :
|
436
|
+
(k - short_lag);
|
437
|
+
carry = do_update(k, short_index, carry);
|
438
|
+
RealType result = x[k];
|
439
|
+
++k;
|
440
|
+
if(k >= long_lag)
|
441
|
+
k = 0;
|
442
|
+
return result;
|
443
|
+
}
|
444
|
+
|
445
|
+
/** Advances the state of the generator by @c z. */
|
446
|
+
void discard(boost::uintmax_t z)
|
447
|
+
{ detail::subtract_with_carry_discard::apply(*this, z); }
|
448
|
+
|
449
|
+
/** Fills a range with random values. */
|
450
|
+
template<class Iter>
|
451
|
+
void generate(Iter first, Iter last)
|
452
|
+
{ detail::generate_from_real(*this, first, last); }
|
453
|
+
|
454
|
+
/** Writes a \subtract_with_carry_01_engine to a @c std::ostream. */
|
455
|
+
BOOST_RANDOM_DETAIL_OSTREAM_OPERATOR(os, subtract_with_carry_01_engine, f)
|
456
|
+
{
|
457
|
+
std::ios_base::fmtflags oldflags =
|
458
|
+
os.flags(os.dec | os.fixed | os.left);
|
459
|
+
for(unsigned int j = 0; j < f.long_lag; ++j)
|
460
|
+
os << (f.compute(j) * f._modulus) << ' ';
|
461
|
+
os << (f.carry * f._modulus);
|
462
|
+
os.flags(oldflags);
|
463
|
+
return os;
|
464
|
+
}
|
465
|
+
|
466
|
+
/** Reads a \subtract_with_carry_01_engine from a @c std::istream. */
|
467
|
+
BOOST_RANDOM_DETAIL_ISTREAM_OPERATOR(is, subtract_with_carry_01_engine, f)
|
468
|
+
{
|
469
|
+
RealType value;
|
470
|
+
for(unsigned int j = 0; j < long_lag; ++j) {
|
471
|
+
is >> value >> std::ws;
|
472
|
+
f.x[j] = value / f._modulus;
|
473
|
+
}
|
474
|
+
is >> value;
|
475
|
+
f.carry = value / f._modulus;
|
476
|
+
f.k = 0;
|
477
|
+
return is;
|
478
|
+
}
|
479
|
+
|
480
|
+
/** Returns true if the two generators will produce identical sequences. */
|
481
|
+
BOOST_RANDOM_DETAIL_EQUALITY_OPERATOR(subtract_with_carry_01_engine, x, y)
|
482
|
+
{
|
483
|
+
for(unsigned int j = 0; j < r; ++j)
|
484
|
+
if(x.compute(j) != y.compute(j))
|
485
|
+
return false;
|
486
|
+
return true;
|
487
|
+
}
|
488
|
+
|
489
|
+
/** Returns true if the two generators will produce different sequences. */
|
490
|
+
BOOST_RANDOM_DETAIL_INEQUALITY_OPERATOR(subtract_with_carry_01_engine)
|
491
|
+
|
492
|
+
private:
|
493
|
+
/// \cond show_private
|
494
|
+
RealType compute(unsigned int index) const
|
495
|
+
{
|
496
|
+
return x[(k+index) % long_lag];
|
497
|
+
}
|
498
|
+
|
499
|
+
friend struct detail::subtract_with_carry_discard;
|
500
|
+
|
501
|
+
RealType do_update(std::size_t current, std::size_t short_index, RealType carry)
|
502
|
+
{
|
503
|
+
RealType delta = x[short_index] - x[current] - carry;
|
504
|
+
if(delta < 0) {
|
505
|
+
delta += RealType(1);
|
506
|
+
carry = RealType(1)/_modulus;
|
507
|
+
} else {
|
508
|
+
carry = 0;
|
509
|
+
}
|
510
|
+
x[current] = delta;
|
511
|
+
return carry;
|
512
|
+
}
|
513
|
+
/// \endcond
|
514
|
+
std::size_t k;
|
515
|
+
RealType carry;
|
516
|
+
RealType x[long_lag];
|
517
|
+
RealType _modulus;
|
518
|
+
};
|
519
|
+
|
520
|
+
#ifndef BOOST_NO_INCLASS_MEMBER_INITIALIZATION
|
521
|
+
// A definition is required even for integral static constants
|
522
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
523
|
+
const bool subtract_with_carry_01_engine<RealType, w, s, r>::has_fixed_range;
|
524
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
525
|
+
const std::size_t subtract_with_carry_01_engine<RealType, w, s, r>::word_size;
|
526
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
527
|
+
const std::size_t subtract_with_carry_01_engine<RealType, w, s, r>::long_lag;
|
528
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
529
|
+
const std::size_t subtract_with_carry_01_engine<RealType, w, s, r>::short_lag;
|
530
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
531
|
+
const uint32_t subtract_with_carry_01_engine<RealType, w, s, r>::default_seed;
|
532
|
+
#endif
|
533
|
+
|
534
|
+
|
535
|
+
/// \cond show_deprecated
|
536
|
+
|
537
|
+
template<class IntType, IntType m, unsigned s, unsigned r, IntType v>
|
538
|
+
class subtract_with_carry :
|
539
|
+
public subtract_with_carry_engine<IntType,
|
540
|
+
boost::static_log2<m>::value, s, r>
|
541
|
+
{
|
542
|
+
typedef subtract_with_carry_engine<IntType,
|
543
|
+
boost::static_log2<m>::value, s, r> base_type;
|
544
|
+
public:
|
545
|
+
subtract_with_carry() {}
|
546
|
+
BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(subtract_with_carry, Gen, gen)
|
547
|
+
{ seed(gen); }
|
548
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry,
|
549
|
+
IntType, val)
|
550
|
+
{ seed(val); }
|
551
|
+
template<class It>
|
552
|
+
subtract_with_carry(It& first, It last) : base_type(first, last) {}
|
553
|
+
void seed() { base_type::seed(); }
|
554
|
+
BOOST_RANDOM_DETAIL_GENERATOR_SEED(subtract_with_carry, Gen, gen)
|
555
|
+
{
|
556
|
+
detail::generator_seed_seq<Gen> seq(gen);
|
557
|
+
base_type::seed(seq);
|
558
|
+
}
|
559
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry, IntType, val)
|
560
|
+
{ base_type::seed(val); }
|
561
|
+
template<class It>
|
562
|
+
void seed(It& first, It last) { base_type::seed(first, last); }
|
563
|
+
};
|
564
|
+
|
565
|
+
template<class RealType, int w, unsigned s, unsigned r, int v = 0>
|
566
|
+
class subtract_with_carry_01 :
|
567
|
+
public subtract_with_carry_01_engine<RealType, w, s, r>
|
568
|
+
{
|
569
|
+
typedef subtract_with_carry_01_engine<RealType, w, s, r> base_type;
|
570
|
+
public:
|
571
|
+
subtract_with_carry_01() {}
|
572
|
+
BOOST_RANDOM_DETAIL_GENERATOR_CONSTRUCTOR(subtract_with_carry_01, Gen, gen)
|
573
|
+
{ seed(gen); }
|
574
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_CONSTRUCTOR(subtract_with_carry_01,
|
575
|
+
uint32_t, val)
|
576
|
+
{ seed(val); }
|
577
|
+
template<class It>
|
578
|
+
subtract_with_carry_01(It& first, It last) : base_type(first, last) {}
|
579
|
+
void seed() { base_type::seed(); }
|
580
|
+
BOOST_RANDOM_DETAIL_GENERATOR_SEED(subtract_with_carry_01, Gen, gen)
|
581
|
+
{
|
582
|
+
detail::generator_seed_seq<Gen> seq(gen);
|
583
|
+
base_type::seed(seq);
|
584
|
+
}
|
585
|
+
BOOST_RANDOM_DETAIL_ARITHMETIC_SEED(subtract_with_carry_01, uint32_t, val)
|
586
|
+
{ base_type::seed(val); }
|
587
|
+
template<class It>
|
588
|
+
void seed(It& first, It last) { base_type::seed(first, last); }
|
589
|
+
};
|
590
|
+
|
591
|
+
/// \endcond
|
592
|
+
|
593
|
+
namespace detail {
|
594
|
+
|
595
|
+
template<class Engine>
|
596
|
+
struct generator_bits;
|
597
|
+
|
598
|
+
template<class RealType, std::size_t w, std::size_t s, std::size_t r>
|
599
|
+
struct generator_bits<subtract_with_carry_01_engine<RealType, w, s, r> > {
|
600
|
+
static std::size_t value() { return w; }
|
601
|
+
};
|
602
|
+
|
603
|
+
template<class RealType, int w, unsigned s, unsigned r, int v>
|
604
|
+
struct generator_bits<subtract_with_carry_01<RealType, w, s, r, v> > {
|
605
|
+
static std::size_t value() { return w; }
|
606
|
+
};
|
607
|
+
|
608
|
+
}
|
609
|
+
|
610
|
+
} // namespace random
|
611
|
+
} // namespace boost
|
612
|
+
|
613
|
+
#endif // BOOST_RANDOM_SUBTRACT_WITH_CARRY_HPP
|