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,220 @@
|
|
1
|
+
//
|
2
|
+
// completion_condition.hpp
|
3
|
+
// ~~~~~~~~~~~~~~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef BOOST_ASIO_COMPLETION_CONDITION_HPP
|
12
|
+
#define BOOST_ASIO_COMPLETION_CONDITION_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/detail/config.hpp>
|
19
|
+
#include <cstddef>
|
20
|
+
|
21
|
+
#include <boost/asio/detail/push_options.hpp>
|
22
|
+
|
23
|
+
namespace boost {
|
24
|
+
namespace asio {
|
25
|
+
|
26
|
+
namespace detail {
|
27
|
+
|
28
|
+
// The default maximum number of bytes to transfer in a single operation.
|
29
|
+
enum default_max_transfer_size_t { default_max_transfer_size = 65536 };
|
30
|
+
|
31
|
+
// Adapt result of old-style completion conditions (which had a bool result
|
32
|
+
// where true indicated that the operation was complete).
|
33
|
+
inline std::size_t adapt_completion_condition_result(bool result)
|
34
|
+
{
|
35
|
+
return result ? 0 : default_max_transfer_size;
|
36
|
+
}
|
37
|
+
|
38
|
+
// Adapt result of current completion conditions (which have a size_t result
|
39
|
+
// where 0 means the operation is complete, and otherwise the result is the
|
40
|
+
// maximum number of bytes to transfer on the next underlying operation).
|
41
|
+
inline std::size_t adapt_completion_condition_result(std::size_t result)
|
42
|
+
{
|
43
|
+
return result;
|
44
|
+
}
|
45
|
+
|
46
|
+
class transfer_all_t
|
47
|
+
{
|
48
|
+
public:
|
49
|
+
typedef std::size_t result_type;
|
50
|
+
|
51
|
+
template <typename Error>
|
52
|
+
std::size_t operator()(const Error& err, std::size_t)
|
53
|
+
{
|
54
|
+
return !!err ? 0 : default_max_transfer_size;
|
55
|
+
}
|
56
|
+
};
|
57
|
+
|
58
|
+
class transfer_at_least_t
|
59
|
+
{
|
60
|
+
public:
|
61
|
+
typedef std::size_t result_type;
|
62
|
+
|
63
|
+
explicit transfer_at_least_t(std::size_t minimum)
|
64
|
+
: minimum_(minimum)
|
65
|
+
{
|
66
|
+
}
|
67
|
+
|
68
|
+
template <typename Error>
|
69
|
+
std::size_t operator()(const Error& err, std::size_t bytes_transferred)
|
70
|
+
{
|
71
|
+
return (!!err || bytes_transferred >= minimum_)
|
72
|
+
? 0 : default_max_transfer_size;
|
73
|
+
}
|
74
|
+
|
75
|
+
private:
|
76
|
+
std::size_t minimum_;
|
77
|
+
};
|
78
|
+
|
79
|
+
class transfer_exactly_t
|
80
|
+
{
|
81
|
+
public:
|
82
|
+
typedef std::size_t result_type;
|
83
|
+
|
84
|
+
explicit transfer_exactly_t(std::size_t size)
|
85
|
+
: size_(size)
|
86
|
+
{
|
87
|
+
}
|
88
|
+
|
89
|
+
template <typename Error>
|
90
|
+
std::size_t operator()(const Error& err, std::size_t bytes_transferred)
|
91
|
+
{
|
92
|
+
return (!!err || bytes_transferred >= size_) ? 0 :
|
93
|
+
(size_ - bytes_transferred < default_max_transfer_size
|
94
|
+
? size_ - bytes_transferred : std::size_t(default_max_transfer_size));
|
95
|
+
}
|
96
|
+
|
97
|
+
private:
|
98
|
+
std::size_t size_;
|
99
|
+
};
|
100
|
+
|
101
|
+
} // namespace detail
|
102
|
+
|
103
|
+
/**
|
104
|
+
* @defgroup completion_condition Completion Condition Function Objects
|
105
|
+
*
|
106
|
+
* Function objects used for determining when a read or write operation should
|
107
|
+
* complete.
|
108
|
+
*/
|
109
|
+
/*@{*/
|
110
|
+
|
111
|
+
/// Return a completion condition function object that indicates that a read or
|
112
|
+
/// write operation should continue until all of the data has been transferred,
|
113
|
+
/// or until an error occurs.
|
114
|
+
/**
|
115
|
+
* This function is used to create an object, of unspecified type, that meets
|
116
|
+
* CompletionCondition requirements.
|
117
|
+
*
|
118
|
+
* @par Example
|
119
|
+
* Reading until a buffer is full:
|
120
|
+
* @code
|
121
|
+
* boost::array<char, 128> buf;
|
122
|
+
* boost::system::error_code ec;
|
123
|
+
* std::size_t n = boost::asio::read(
|
124
|
+
* sock, boost::asio::buffer(buf),
|
125
|
+
* boost::asio::transfer_all(), ec);
|
126
|
+
* if (ec)
|
127
|
+
* {
|
128
|
+
* // An error occurred.
|
129
|
+
* }
|
130
|
+
* else
|
131
|
+
* {
|
132
|
+
* // n == 128
|
133
|
+
* }
|
134
|
+
* @endcode
|
135
|
+
*/
|
136
|
+
#if defined(GENERATING_DOCUMENTATION)
|
137
|
+
unspecified transfer_all();
|
138
|
+
#else
|
139
|
+
inline detail::transfer_all_t transfer_all()
|
140
|
+
{
|
141
|
+
return detail::transfer_all_t();
|
142
|
+
}
|
143
|
+
#endif
|
144
|
+
|
145
|
+
/// Return a completion condition function object that indicates that a read or
|
146
|
+
/// write operation should continue until a minimum number of bytes has been
|
147
|
+
/// transferred, or until an error occurs.
|
148
|
+
/**
|
149
|
+
* This function is used to create an object, of unspecified type, that meets
|
150
|
+
* CompletionCondition requirements.
|
151
|
+
*
|
152
|
+
* @par Example
|
153
|
+
* Reading until a buffer is full or contains at least 64 bytes:
|
154
|
+
* @code
|
155
|
+
* boost::array<char, 128> buf;
|
156
|
+
* boost::system::error_code ec;
|
157
|
+
* std::size_t n = boost::asio::read(
|
158
|
+
* sock, boost::asio::buffer(buf),
|
159
|
+
* boost::asio::transfer_at_least(64), ec);
|
160
|
+
* if (ec)
|
161
|
+
* {
|
162
|
+
* // An error occurred.
|
163
|
+
* }
|
164
|
+
* else
|
165
|
+
* {
|
166
|
+
* // n >= 64 && n <= 128
|
167
|
+
* }
|
168
|
+
* @endcode
|
169
|
+
*/
|
170
|
+
#if defined(GENERATING_DOCUMENTATION)
|
171
|
+
unspecified transfer_at_least(std::size_t minimum);
|
172
|
+
#else
|
173
|
+
inline detail::transfer_at_least_t transfer_at_least(std::size_t minimum)
|
174
|
+
{
|
175
|
+
return detail::transfer_at_least_t(minimum);
|
176
|
+
}
|
177
|
+
#endif
|
178
|
+
|
179
|
+
/// Return a completion condition function object that indicates that a read or
|
180
|
+
/// write operation should continue until an exact number of bytes has been
|
181
|
+
/// transferred, or until an error occurs.
|
182
|
+
/**
|
183
|
+
* This function is used to create an object, of unspecified type, that meets
|
184
|
+
* CompletionCondition requirements.
|
185
|
+
*
|
186
|
+
* @par Example
|
187
|
+
* Reading until a buffer is full or contains exactly 64 bytes:
|
188
|
+
* @code
|
189
|
+
* boost::array<char, 128> buf;
|
190
|
+
* boost::system::error_code ec;
|
191
|
+
* std::size_t n = boost::asio::read(
|
192
|
+
* sock, boost::asio::buffer(buf),
|
193
|
+
* boost::asio::transfer_exactly(64), ec);
|
194
|
+
* if (ec)
|
195
|
+
* {
|
196
|
+
* // An error occurred.
|
197
|
+
* }
|
198
|
+
* else
|
199
|
+
* {
|
200
|
+
* // n == 64
|
201
|
+
* }
|
202
|
+
* @endcode
|
203
|
+
*/
|
204
|
+
#if defined(GENERATING_DOCUMENTATION)
|
205
|
+
unspecified transfer_exactly(std::size_t size);
|
206
|
+
#else
|
207
|
+
inline detail::transfer_exactly_t transfer_exactly(std::size_t size)
|
208
|
+
{
|
209
|
+
return detail::transfer_exactly_t(size);
|
210
|
+
}
|
211
|
+
#endif
|
212
|
+
|
213
|
+
/*@}*/
|
214
|
+
|
215
|
+
} // namespace asio
|
216
|
+
} // namespace boost
|
217
|
+
|
218
|
+
#include <boost/asio/detail/pop_options.hpp>
|
219
|
+
|
220
|
+
#endif // BOOST_ASIO_COMPLETION_CONDITION_HPP
|
@@ -0,0 +1,825 @@
|
|
1
|
+
//
|
2
|
+
// connect.hpp
|
3
|
+
// ~~~~~~~~~~~
|
4
|
+
//
|
5
|
+
// Copyright (c) 2003-2017 Christopher M. Kohlhoff (chris at kohlhoff dot com)
|
6
|
+
//
|
7
|
+
// Distributed under the Boost Software License, Version 1.0. (See accompanying
|
8
|
+
// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
|
9
|
+
//
|
10
|
+
|
11
|
+
#ifndef BOOST_ASIO_CONNECT_HPP
|
12
|
+
#define BOOST_ASIO_CONNECT_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/detail/config.hpp>
|
19
|
+
#include <boost/asio/async_result.hpp>
|
20
|
+
#include <boost/asio/basic_socket.hpp>
|
21
|
+
#include <boost/asio/error.hpp>
|
22
|
+
|
23
|
+
#include <boost/asio/detail/push_options.hpp>
|
24
|
+
|
25
|
+
namespace boost {
|
26
|
+
namespace asio {
|
27
|
+
|
28
|
+
/**
|
29
|
+
* @defgroup connect boost::asio::connect
|
30
|
+
*
|
31
|
+
* @brief Establishes a socket connection by trying each endpoint in a sequence.
|
32
|
+
*/
|
33
|
+
/*@{*/
|
34
|
+
|
35
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
36
|
+
/**
|
37
|
+
* This function attempts to connect a socket to one of a sequence of
|
38
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
39
|
+
* function, once for each endpoint in the sequence, until a connection is
|
40
|
+
* successfully established.
|
41
|
+
*
|
42
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
43
|
+
* be closed.
|
44
|
+
*
|
45
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
46
|
+
*
|
47
|
+
* @returns On success, an iterator denoting the successfully connected
|
48
|
+
* endpoint. Otherwise, the end iterator.
|
49
|
+
*
|
50
|
+
* @throws boost::system::system_error Thrown on failure. If the sequence is
|
51
|
+
* empty, the associated @c error_code is boost::asio::error::not_found.
|
52
|
+
* Otherwise, contains the error from the last connection attempt.
|
53
|
+
*
|
54
|
+
* @note This overload assumes that a default constructed object of type @c
|
55
|
+
* Iterator represents the end of the sequence. This is a valid assumption for
|
56
|
+
* iterator types such as @c boost::asio::ip::tcp::resolver::iterator.
|
57
|
+
*
|
58
|
+
* @par Example
|
59
|
+
* @code tcp::resolver r(io_service);
|
60
|
+
* tcp::resolver::query q("host", "service");
|
61
|
+
* tcp::socket s(io_service);
|
62
|
+
* boost::asio::connect(s, r.resolve(q)); @endcode
|
63
|
+
*/
|
64
|
+
template <typename Protocol, typename SocketService, typename Iterator>
|
65
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s, Iterator begin);
|
66
|
+
|
67
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
68
|
+
/**
|
69
|
+
* This function attempts to connect a socket to one of a sequence of
|
70
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
71
|
+
* function, once for each endpoint in the sequence, until a connection is
|
72
|
+
* successfully established.
|
73
|
+
*
|
74
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
75
|
+
* be closed.
|
76
|
+
*
|
77
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
78
|
+
*
|
79
|
+
* @param ec Set to indicate what error occurred, if any. If the sequence is
|
80
|
+
* empty, set to boost::asio::error::not_found. Otherwise, contains the error
|
81
|
+
* from the last connection attempt.
|
82
|
+
*
|
83
|
+
* @returns On success, an iterator denoting the successfully connected
|
84
|
+
* endpoint. Otherwise, the end iterator.
|
85
|
+
*
|
86
|
+
* @note This overload assumes that a default constructed object of type @c
|
87
|
+
* Iterator represents the end of the sequence. This is a valid assumption for
|
88
|
+
* iterator types such as @c boost::asio::ip::tcp::resolver::iterator.
|
89
|
+
*
|
90
|
+
* @par Example
|
91
|
+
* @code tcp::resolver r(io_service);
|
92
|
+
* tcp::resolver::query q("host", "service");
|
93
|
+
* tcp::socket s(io_service);
|
94
|
+
* boost::system::error_code ec;
|
95
|
+
* boost::asio::connect(s, r.resolve(q), ec);
|
96
|
+
* if (ec)
|
97
|
+
* {
|
98
|
+
* // An error occurred.
|
99
|
+
* } @endcode
|
100
|
+
*/
|
101
|
+
template <typename Protocol, typename SocketService, typename Iterator>
|
102
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s,
|
103
|
+
Iterator begin, boost::system::error_code& ec);
|
104
|
+
|
105
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
106
|
+
/**
|
107
|
+
* This function attempts to connect a socket to one of a sequence of
|
108
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
109
|
+
* function, once for each endpoint in the sequence, until a connection is
|
110
|
+
* successfully established.
|
111
|
+
*
|
112
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
113
|
+
* be closed.
|
114
|
+
*
|
115
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
116
|
+
*
|
117
|
+
* @param end An iterator pointing to the end of a sequence of endpoints.
|
118
|
+
*
|
119
|
+
* @returns On success, an iterator denoting the successfully connected
|
120
|
+
* endpoint. Otherwise, the end iterator.
|
121
|
+
*
|
122
|
+
* @throws boost::system::system_error Thrown on failure. If the sequence is
|
123
|
+
* empty, the associated @c error_code is boost::asio::error::not_found.
|
124
|
+
* Otherwise, contains the error from the last connection attempt.
|
125
|
+
*
|
126
|
+
* @par Example
|
127
|
+
* @code tcp::resolver r(io_service);
|
128
|
+
* tcp::resolver::query q("host", "service");
|
129
|
+
* tcp::resolver::iterator i = r.resolve(q), end;
|
130
|
+
* tcp::socket s(io_service);
|
131
|
+
* boost::asio::connect(s, i, end); @endcode
|
132
|
+
*/
|
133
|
+
template <typename Protocol, typename SocketService, typename Iterator>
|
134
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s,
|
135
|
+
Iterator begin, Iterator end);
|
136
|
+
|
137
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
138
|
+
/**
|
139
|
+
* This function attempts to connect a socket to one of a sequence of
|
140
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
141
|
+
* function, once for each endpoint in the sequence, until a connection is
|
142
|
+
* successfully established.
|
143
|
+
*
|
144
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
145
|
+
* be closed.
|
146
|
+
*
|
147
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
148
|
+
*
|
149
|
+
* @param end An iterator pointing to the end of a sequence of endpoints.
|
150
|
+
*
|
151
|
+
* @param ec Set to indicate what error occurred, if any. If the sequence is
|
152
|
+
* empty, set to boost::asio::error::not_found. Otherwise, contains the error
|
153
|
+
* from the last connection attempt.
|
154
|
+
*
|
155
|
+
* @returns On success, an iterator denoting the successfully connected
|
156
|
+
* endpoint. Otherwise, the end iterator.
|
157
|
+
*
|
158
|
+
* @par Example
|
159
|
+
* @code tcp::resolver r(io_service);
|
160
|
+
* tcp::resolver::query q("host", "service");
|
161
|
+
* tcp::resolver::iterator i = r.resolve(q), end;
|
162
|
+
* tcp::socket s(io_service);
|
163
|
+
* boost::system::error_code ec;
|
164
|
+
* boost::asio::connect(s, i, end, ec);
|
165
|
+
* if (ec)
|
166
|
+
* {
|
167
|
+
* // An error occurred.
|
168
|
+
* } @endcode
|
169
|
+
*/
|
170
|
+
template <typename Protocol, typename SocketService, typename Iterator>
|
171
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s,
|
172
|
+
Iterator begin, Iterator end, boost::system::error_code& ec);
|
173
|
+
|
174
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
175
|
+
/**
|
176
|
+
* This function attempts to connect a socket to one of a sequence of
|
177
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
178
|
+
* function, once for each endpoint in the sequence, until a connection is
|
179
|
+
* successfully established.
|
180
|
+
*
|
181
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
182
|
+
* be closed.
|
183
|
+
*
|
184
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
185
|
+
*
|
186
|
+
* @param connect_condition A function object that is called prior to each
|
187
|
+
* connection attempt. The signature of the function object must be:
|
188
|
+
* @code Iterator connect_condition(
|
189
|
+
* const boost::system::error_code& ec,
|
190
|
+
* Iterator next); @endcode
|
191
|
+
* The @c ec parameter contains the result from the most recent connect
|
192
|
+
* operation. Before the first connection attempt, @c ec is always set to
|
193
|
+
* indicate success. The @c next parameter is an iterator pointing to the next
|
194
|
+
* endpoint to be tried. The function object should return the next iterator,
|
195
|
+
* but is permitted to return a different iterator so that endpoints may be
|
196
|
+
* skipped. The implementation guarantees that the function object will never
|
197
|
+
* be called with the end iterator.
|
198
|
+
*
|
199
|
+
* @returns On success, an iterator denoting the successfully connected
|
200
|
+
* endpoint. Otherwise, the end iterator.
|
201
|
+
*
|
202
|
+
* @throws boost::system::system_error Thrown on failure. If the sequence is
|
203
|
+
* empty, the associated @c error_code is boost::asio::error::not_found.
|
204
|
+
* Otherwise, contains the error from the last connection attempt.
|
205
|
+
*
|
206
|
+
* @note This overload assumes that a default constructed object of type @c
|
207
|
+
* Iterator represents the end of the sequence. This is a valid assumption for
|
208
|
+
* iterator types such as @c boost::asio::ip::tcp::resolver::iterator.
|
209
|
+
*
|
210
|
+
* @par Example
|
211
|
+
* The following connect condition function object can be used to output
|
212
|
+
* information about the individual connection attempts:
|
213
|
+
* @code struct my_connect_condition
|
214
|
+
* {
|
215
|
+
* template <typename Iterator>
|
216
|
+
* Iterator operator()(
|
217
|
+
* const boost::system::error_code& ec,
|
218
|
+
* Iterator next)
|
219
|
+
* {
|
220
|
+
* if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
221
|
+
* std::cout << "Trying: " << next->endpoint() << std::endl;
|
222
|
+
* return next;
|
223
|
+
* }
|
224
|
+
* }; @endcode
|
225
|
+
* It would be used with the boost::asio::connect function as follows:
|
226
|
+
* @code tcp::resolver r(io_service);
|
227
|
+
* tcp::resolver::query q("host", "service");
|
228
|
+
* tcp::socket s(io_service);
|
229
|
+
* tcp::resolver::iterator i = boost::asio::connect(
|
230
|
+
* s, r.resolve(q), my_connect_condition());
|
231
|
+
* std::cout << "Connected to: " << i->endpoint() << std::endl; @endcode
|
232
|
+
*/
|
233
|
+
template <typename Protocol, typename SocketService,
|
234
|
+
typename Iterator, typename ConnectCondition>
|
235
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s,
|
236
|
+
Iterator begin, ConnectCondition connect_condition);
|
237
|
+
|
238
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
239
|
+
/**
|
240
|
+
* This function attempts to connect a socket to one of a sequence of
|
241
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
242
|
+
* function, once for each endpoint in the sequence, until a connection is
|
243
|
+
* successfully established.
|
244
|
+
*
|
245
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
246
|
+
* be closed.
|
247
|
+
*
|
248
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
249
|
+
*
|
250
|
+
* @param connect_condition A function object that is called prior to each
|
251
|
+
* connection attempt. The signature of the function object must be:
|
252
|
+
* @code Iterator connect_condition(
|
253
|
+
* const boost::system::error_code& ec,
|
254
|
+
* Iterator next); @endcode
|
255
|
+
* The @c ec parameter contains the result from the most recent connect
|
256
|
+
* operation. Before the first connection attempt, @c ec is always set to
|
257
|
+
* indicate success. The @c next parameter is an iterator pointing to the next
|
258
|
+
* endpoint to be tried. The function object should return the next iterator,
|
259
|
+
* but is permitted to return a different iterator so that endpoints may be
|
260
|
+
* skipped. The implementation guarantees that the function object will never
|
261
|
+
* be called with the end iterator.
|
262
|
+
*
|
263
|
+
* @param ec Set to indicate what error occurred, if any. If the sequence is
|
264
|
+
* empty, set to boost::asio::error::not_found. Otherwise, contains the error
|
265
|
+
* from the last connection attempt.
|
266
|
+
*
|
267
|
+
* @returns On success, an iterator denoting the successfully connected
|
268
|
+
* endpoint. Otherwise, the end iterator.
|
269
|
+
*
|
270
|
+
* @note This overload assumes that a default constructed object of type @c
|
271
|
+
* Iterator represents the end of the sequence. This is a valid assumption for
|
272
|
+
* iterator types such as @c boost::asio::ip::tcp::resolver::iterator.
|
273
|
+
*
|
274
|
+
* @par Example
|
275
|
+
* The following connect condition function object can be used to output
|
276
|
+
* information about the individual connection attempts:
|
277
|
+
* @code struct my_connect_condition
|
278
|
+
* {
|
279
|
+
* template <typename Iterator>
|
280
|
+
* Iterator operator()(
|
281
|
+
* const boost::system::error_code& ec,
|
282
|
+
* Iterator next)
|
283
|
+
* {
|
284
|
+
* if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
285
|
+
* std::cout << "Trying: " << next->endpoint() << std::endl;
|
286
|
+
* return next;
|
287
|
+
* }
|
288
|
+
* }; @endcode
|
289
|
+
* It would be used with the boost::asio::connect function as follows:
|
290
|
+
* @code tcp::resolver r(io_service);
|
291
|
+
* tcp::resolver::query q("host", "service");
|
292
|
+
* tcp::socket s(io_service);
|
293
|
+
* boost::system::error_code ec;
|
294
|
+
* tcp::resolver::iterator i = boost::asio::connect(
|
295
|
+
* s, r.resolve(q), my_connect_condition(), ec);
|
296
|
+
* if (ec)
|
297
|
+
* {
|
298
|
+
* // An error occurred.
|
299
|
+
* }
|
300
|
+
* else
|
301
|
+
* {
|
302
|
+
* std::cout << "Connected to: " << i->endpoint() << std::endl;
|
303
|
+
* } @endcode
|
304
|
+
*/
|
305
|
+
template <typename Protocol, typename SocketService,
|
306
|
+
typename Iterator, typename ConnectCondition>
|
307
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s, Iterator begin,
|
308
|
+
ConnectCondition connect_condition, boost::system::error_code& ec);
|
309
|
+
|
310
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
311
|
+
/**
|
312
|
+
* This function attempts to connect a socket to one of a sequence of
|
313
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
314
|
+
* function, once for each endpoint in the sequence, until a connection is
|
315
|
+
* successfully established.
|
316
|
+
*
|
317
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
318
|
+
* be closed.
|
319
|
+
*
|
320
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
321
|
+
*
|
322
|
+
* @param end An iterator pointing to the end of a sequence of endpoints.
|
323
|
+
*
|
324
|
+
* @param connect_condition A function object that is called prior to each
|
325
|
+
* connection attempt. The signature of the function object must be:
|
326
|
+
* @code Iterator connect_condition(
|
327
|
+
* const boost::system::error_code& ec,
|
328
|
+
* Iterator next); @endcode
|
329
|
+
* The @c ec parameter contains the result from the most recent connect
|
330
|
+
* operation. Before the first connection attempt, @c ec is always set to
|
331
|
+
* indicate success. The @c next parameter is an iterator pointing to the next
|
332
|
+
* endpoint to be tried. The function object should return the next iterator,
|
333
|
+
* but is permitted to return a different iterator so that endpoints may be
|
334
|
+
* skipped. The implementation guarantees that the function object will never
|
335
|
+
* be called with the end iterator.
|
336
|
+
*
|
337
|
+
* @returns On success, an iterator denoting the successfully connected
|
338
|
+
* endpoint. Otherwise, the end iterator.
|
339
|
+
*
|
340
|
+
* @throws boost::system::system_error Thrown on failure. If the sequence is
|
341
|
+
* empty, the associated @c error_code is boost::asio::error::not_found.
|
342
|
+
* Otherwise, contains the error from the last connection attempt.
|
343
|
+
*
|
344
|
+
* @par Example
|
345
|
+
* The following connect condition function object can be used to output
|
346
|
+
* information about the individual connection attempts:
|
347
|
+
* @code struct my_connect_condition
|
348
|
+
* {
|
349
|
+
* template <typename Iterator>
|
350
|
+
* Iterator operator()(
|
351
|
+
* const boost::system::error_code& ec,
|
352
|
+
* Iterator next)
|
353
|
+
* {
|
354
|
+
* if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
355
|
+
* std::cout << "Trying: " << next->endpoint() << std::endl;
|
356
|
+
* return next;
|
357
|
+
* }
|
358
|
+
* }; @endcode
|
359
|
+
* It would be used with the boost::asio::connect function as follows:
|
360
|
+
* @code tcp::resolver r(io_service);
|
361
|
+
* tcp::resolver::query q("host", "service");
|
362
|
+
* tcp::resolver::iterator i = r.resolve(q), end;
|
363
|
+
* tcp::socket s(io_service);
|
364
|
+
* i = boost::asio::connect(s, i, end, my_connect_condition());
|
365
|
+
* std::cout << "Connected to: " << i->endpoint() << std::endl; @endcode
|
366
|
+
*/
|
367
|
+
template <typename Protocol, typename SocketService,
|
368
|
+
typename Iterator, typename ConnectCondition>
|
369
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s, Iterator begin,
|
370
|
+
Iterator end, ConnectCondition connect_condition);
|
371
|
+
|
372
|
+
/// Establishes a socket connection by trying each endpoint in a sequence.
|
373
|
+
/**
|
374
|
+
* This function attempts to connect a socket to one of a sequence of
|
375
|
+
* endpoints. It does this by repeated calls to the socket's @c connect member
|
376
|
+
* function, once for each endpoint in the sequence, until a connection is
|
377
|
+
* successfully established.
|
378
|
+
*
|
379
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
380
|
+
* be closed.
|
381
|
+
*
|
382
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
383
|
+
*
|
384
|
+
* @param end An iterator pointing to the end of a sequence of endpoints.
|
385
|
+
*
|
386
|
+
* @param connect_condition A function object that is called prior to each
|
387
|
+
* connection attempt. The signature of the function object must be:
|
388
|
+
* @code Iterator connect_condition(
|
389
|
+
* const boost::system::error_code& ec,
|
390
|
+
* Iterator next); @endcode
|
391
|
+
* The @c ec parameter contains the result from the most recent connect
|
392
|
+
* operation. Before the first connection attempt, @c ec is always set to
|
393
|
+
* indicate success. The @c next parameter is an iterator pointing to the next
|
394
|
+
* endpoint to be tried. The function object should return the next iterator,
|
395
|
+
* but is permitted to return a different iterator so that endpoints may be
|
396
|
+
* skipped. The implementation guarantees that the function object will never
|
397
|
+
* be called with the end iterator.
|
398
|
+
*
|
399
|
+
* @param ec Set to indicate what error occurred, if any. If the sequence is
|
400
|
+
* empty, set to boost::asio::error::not_found. Otherwise, contains the error
|
401
|
+
* from the last connection attempt.
|
402
|
+
*
|
403
|
+
* @returns On success, an iterator denoting the successfully connected
|
404
|
+
* endpoint. Otherwise, the end iterator.
|
405
|
+
*
|
406
|
+
* @par Example
|
407
|
+
* The following connect condition function object can be used to output
|
408
|
+
* information about the individual connection attempts:
|
409
|
+
* @code struct my_connect_condition
|
410
|
+
* {
|
411
|
+
* template <typename Iterator>
|
412
|
+
* Iterator operator()(
|
413
|
+
* const boost::system::error_code& ec,
|
414
|
+
* Iterator next)
|
415
|
+
* {
|
416
|
+
* if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
417
|
+
* std::cout << "Trying: " << next->endpoint() << std::endl;
|
418
|
+
* return next;
|
419
|
+
* }
|
420
|
+
* }; @endcode
|
421
|
+
* It would be used with the boost::asio::connect function as follows:
|
422
|
+
* @code tcp::resolver r(io_service);
|
423
|
+
* tcp::resolver::query q("host", "service");
|
424
|
+
* tcp::resolver::iterator i = r.resolve(q), end;
|
425
|
+
* tcp::socket s(io_service);
|
426
|
+
* boost::system::error_code ec;
|
427
|
+
* i = boost::asio::connect(s, i, end, my_connect_condition(), ec);
|
428
|
+
* if (ec)
|
429
|
+
* {
|
430
|
+
* // An error occurred.
|
431
|
+
* }
|
432
|
+
* else
|
433
|
+
* {
|
434
|
+
* std::cout << "Connected to: " << i->endpoint() << std::endl;
|
435
|
+
* } @endcode
|
436
|
+
*/
|
437
|
+
template <typename Protocol, typename SocketService,
|
438
|
+
typename Iterator, typename ConnectCondition>
|
439
|
+
Iterator connect(basic_socket<Protocol, SocketService>& s,
|
440
|
+
Iterator begin, Iterator end, ConnectCondition connect_condition,
|
441
|
+
boost::system::error_code& ec);
|
442
|
+
|
443
|
+
/*@}*/
|
444
|
+
|
445
|
+
/**
|
446
|
+
* @defgroup async_connect boost::asio::async_connect
|
447
|
+
*
|
448
|
+
* @brief Asynchronously establishes a socket connection by trying each
|
449
|
+
* endpoint in a sequence.
|
450
|
+
*/
|
451
|
+
/*@{*/
|
452
|
+
|
453
|
+
/// Asynchronously establishes a socket connection by trying each endpoint in a
|
454
|
+
/// sequence.
|
455
|
+
/**
|
456
|
+
* This function attempts to connect a socket to one of a sequence of
|
457
|
+
* endpoints. It does this by repeated calls to the socket's @c async_connect
|
458
|
+
* member function, once for each endpoint in the sequence, until a connection
|
459
|
+
* is successfully established.
|
460
|
+
*
|
461
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
462
|
+
* be closed.
|
463
|
+
*
|
464
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
465
|
+
*
|
466
|
+
* @param handler The handler to be called when the connect operation
|
467
|
+
* completes. Copies will be made of the handler as required. The function
|
468
|
+
* signature of the handler must be:
|
469
|
+
* @code void handler(
|
470
|
+
* // Result of operation. if the sequence is empty, set to
|
471
|
+
* // boost::asio::error::not_found. Otherwise, contains the
|
472
|
+
* // error from the last connection attempt.
|
473
|
+
* const boost::system::error_code& error,
|
474
|
+
*
|
475
|
+
* // On success, an iterator denoting the successfully
|
476
|
+
* // connected endpoint. Otherwise, the end iterator.
|
477
|
+
* Iterator iterator
|
478
|
+
* ); @endcode
|
479
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
480
|
+
* not, the handler will not be invoked from within this function. Invocation
|
481
|
+
* of the handler will be performed in a manner equivalent to using
|
482
|
+
* boost::asio::io_service::post().
|
483
|
+
*
|
484
|
+
* @note This overload assumes that a default constructed object of type @c
|
485
|
+
* Iterator represents the end of the sequence. This is a valid assumption for
|
486
|
+
* iterator types such as @c boost::asio::ip::tcp::resolver::iterator.
|
487
|
+
*
|
488
|
+
* @par Example
|
489
|
+
* @code tcp::resolver r(io_service);
|
490
|
+
* tcp::resolver::query q("host", "service");
|
491
|
+
* tcp::socket s(io_service);
|
492
|
+
*
|
493
|
+
* // ...
|
494
|
+
*
|
495
|
+
* r.async_resolve(q, resolve_handler);
|
496
|
+
*
|
497
|
+
* // ...
|
498
|
+
*
|
499
|
+
* void resolve_handler(
|
500
|
+
* const boost::system::error_code& ec,
|
501
|
+
* tcp::resolver::iterator i)
|
502
|
+
* {
|
503
|
+
* if (!ec)
|
504
|
+
* {
|
505
|
+
* boost::asio::async_connect(s, i, connect_handler);
|
506
|
+
* }
|
507
|
+
* }
|
508
|
+
*
|
509
|
+
* // ...
|
510
|
+
*
|
511
|
+
* void connect_handler(
|
512
|
+
* const boost::system::error_code& ec,
|
513
|
+
* tcp::resolver::iterator i)
|
514
|
+
* {
|
515
|
+
* // ...
|
516
|
+
* } @endcode
|
517
|
+
*/
|
518
|
+
template <typename Protocol, typename SocketService,
|
519
|
+
typename Iterator, typename ComposedConnectHandler>
|
520
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
|
521
|
+
void (boost::system::error_code, Iterator))
|
522
|
+
async_connect(basic_socket<Protocol, SocketService>& s,
|
523
|
+
Iterator begin, BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler);
|
524
|
+
|
525
|
+
/// Asynchronously establishes a socket connection by trying each endpoint in a
|
526
|
+
/// sequence.
|
527
|
+
/**
|
528
|
+
* This function attempts to connect a socket to one of a sequence of
|
529
|
+
* endpoints. It does this by repeated calls to the socket's @c async_connect
|
530
|
+
* member function, once for each endpoint in the sequence, until a connection
|
531
|
+
* is successfully established.
|
532
|
+
*
|
533
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
534
|
+
* be closed.
|
535
|
+
*
|
536
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
537
|
+
*
|
538
|
+
* @param end An iterator pointing to the end of a sequence of endpoints.
|
539
|
+
*
|
540
|
+
* @param handler The handler to be called when the connect operation
|
541
|
+
* completes. Copies will be made of the handler as required. The function
|
542
|
+
* signature of the handler must be:
|
543
|
+
* @code void handler(
|
544
|
+
* // Result of operation. if the sequence is empty, set to
|
545
|
+
* // boost::asio::error::not_found. Otherwise, contains the
|
546
|
+
* // error from the last connection attempt.
|
547
|
+
* const boost::system::error_code& error,
|
548
|
+
*
|
549
|
+
* // On success, an iterator denoting the successfully
|
550
|
+
* // connected endpoint. Otherwise, the end iterator.
|
551
|
+
* Iterator iterator
|
552
|
+
* ); @endcode
|
553
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
554
|
+
* not, the handler will not be invoked from within this function. Invocation
|
555
|
+
* of the handler will be performed in a manner equivalent to using
|
556
|
+
* boost::asio::io_service::post().
|
557
|
+
*
|
558
|
+
* @par Example
|
559
|
+
* @code tcp::resolver r(io_service);
|
560
|
+
* tcp::resolver::query q("host", "service");
|
561
|
+
* tcp::socket s(io_service);
|
562
|
+
*
|
563
|
+
* // ...
|
564
|
+
*
|
565
|
+
* r.async_resolve(q, resolve_handler);
|
566
|
+
*
|
567
|
+
* // ...
|
568
|
+
*
|
569
|
+
* void resolve_handler(
|
570
|
+
* const boost::system::error_code& ec,
|
571
|
+
* tcp::resolver::iterator i)
|
572
|
+
* {
|
573
|
+
* if (!ec)
|
574
|
+
* {
|
575
|
+
* tcp::resolver::iterator end;
|
576
|
+
* boost::asio::async_connect(s, i, end, connect_handler);
|
577
|
+
* }
|
578
|
+
* }
|
579
|
+
*
|
580
|
+
* // ...
|
581
|
+
*
|
582
|
+
* void connect_handler(
|
583
|
+
* const boost::system::error_code& ec,
|
584
|
+
* tcp::resolver::iterator i)
|
585
|
+
* {
|
586
|
+
* // ...
|
587
|
+
* } @endcode
|
588
|
+
*/
|
589
|
+
template <typename Protocol, typename SocketService,
|
590
|
+
typename Iterator, typename ComposedConnectHandler>
|
591
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
|
592
|
+
void (boost::system::error_code, Iterator))
|
593
|
+
async_connect(basic_socket<Protocol, SocketService>& s,
|
594
|
+
Iterator begin, Iterator end,
|
595
|
+
BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler);
|
596
|
+
|
597
|
+
/// Asynchronously establishes a socket connection by trying each endpoint in a
|
598
|
+
/// sequence.
|
599
|
+
/**
|
600
|
+
* This function attempts to connect a socket to one of a sequence of
|
601
|
+
* endpoints. It does this by repeated calls to the socket's @c async_connect
|
602
|
+
* member function, once for each endpoint in the sequence, until a connection
|
603
|
+
* is successfully established.
|
604
|
+
*
|
605
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
606
|
+
* be closed.
|
607
|
+
*
|
608
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
609
|
+
*
|
610
|
+
* @param connect_condition A function object that is called prior to each
|
611
|
+
* connection attempt. The signature of the function object must be:
|
612
|
+
* @code Iterator connect_condition(
|
613
|
+
* const boost::system::error_code& ec,
|
614
|
+
* Iterator next); @endcode
|
615
|
+
* The @c ec parameter contains the result from the most recent connect
|
616
|
+
* operation. Before the first connection attempt, @c ec is always set to
|
617
|
+
* indicate success. The @c next parameter is an iterator pointing to the next
|
618
|
+
* endpoint to be tried. The function object should return the next iterator,
|
619
|
+
* but is permitted to return a different iterator so that endpoints may be
|
620
|
+
* skipped. The implementation guarantees that the function object will never
|
621
|
+
* be called with the end iterator.
|
622
|
+
*
|
623
|
+
* @param handler The handler to be called when the connect operation
|
624
|
+
* completes. Copies will be made of the handler as required. The function
|
625
|
+
* signature of the handler must be:
|
626
|
+
* @code void handler(
|
627
|
+
* // Result of operation. if the sequence is empty, set to
|
628
|
+
* // boost::asio::error::not_found. Otherwise, contains the
|
629
|
+
* // error from the last connection attempt.
|
630
|
+
* const boost::system::error_code& error,
|
631
|
+
*
|
632
|
+
* // On success, an iterator denoting the successfully
|
633
|
+
* // connected endpoint. Otherwise, the end iterator.
|
634
|
+
* Iterator iterator
|
635
|
+
* ); @endcode
|
636
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
637
|
+
* not, the handler will not be invoked from within this function. Invocation
|
638
|
+
* of the handler will be performed in a manner equivalent to using
|
639
|
+
* boost::asio::io_service::post().
|
640
|
+
*
|
641
|
+
* @note This overload assumes that a default constructed object of type @c
|
642
|
+
* Iterator represents the end of the sequence. This is a valid assumption for
|
643
|
+
* iterator types such as @c boost::asio::ip::tcp::resolver::iterator.
|
644
|
+
*
|
645
|
+
* @par Example
|
646
|
+
* The following connect condition function object can be used to output
|
647
|
+
* information about the individual connection attempts:
|
648
|
+
* @code struct my_connect_condition
|
649
|
+
* {
|
650
|
+
* template <typename Iterator>
|
651
|
+
* Iterator operator()(
|
652
|
+
* const boost::system::error_code& ec,
|
653
|
+
* Iterator next)
|
654
|
+
* {
|
655
|
+
* if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
656
|
+
* std::cout << "Trying: " << next->endpoint() << std::endl;
|
657
|
+
* return next;
|
658
|
+
* }
|
659
|
+
* }; @endcode
|
660
|
+
* It would be used with the boost::asio::connect function as follows:
|
661
|
+
* @code tcp::resolver r(io_service);
|
662
|
+
* tcp::resolver::query q("host", "service");
|
663
|
+
* tcp::socket s(io_service);
|
664
|
+
*
|
665
|
+
* // ...
|
666
|
+
*
|
667
|
+
* r.async_resolve(q, resolve_handler);
|
668
|
+
*
|
669
|
+
* // ...
|
670
|
+
*
|
671
|
+
* void resolve_handler(
|
672
|
+
* const boost::system::error_code& ec,
|
673
|
+
* tcp::resolver::iterator i)
|
674
|
+
* {
|
675
|
+
* if (!ec)
|
676
|
+
* {
|
677
|
+
* boost::asio::async_connect(s, i,
|
678
|
+
* my_connect_condition(),
|
679
|
+
* connect_handler);
|
680
|
+
* }
|
681
|
+
* }
|
682
|
+
*
|
683
|
+
* // ...
|
684
|
+
*
|
685
|
+
* void connect_handler(
|
686
|
+
* const boost::system::error_code& ec,
|
687
|
+
* tcp::resolver::iterator i)
|
688
|
+
* {
|
689
|
+
* if (ec)
|
690
|
+
* {
|
691
|
+
* // An error occurred.
|
692
|
+
* }
|
693
|
+
* else
|
694
|
+
* {
|
695
|
+
* std::cout << "Connected to: " << i->endpoint() << std::endl;
|
696
|
+
* }
|
697
|
+
* } @endcode
|
698
|
+
*/
|
699
|
+
template <typename Protocol, typename SocketService, typename Iterator,
|
700
|
+
typename ConnectCondition, typename ComposedConnectHandler>
|
701
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
|
702
|
+
void (boost::system::error_code, Iterator))
|
703
|
+
async_connect(basic_socket<Protocol, SocketService>& s, Iterator begin,
|
704
|
+
ConnectCondition connect_condition,
|
705
|
+
BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler);
|
706
|
+
|
707
|
+
/// Asynchronously establishes a socket connection by trying each endpoint in a
|
708
|
+
/// sequence.
|
709
|
+
/**
|
710
|
+
* This function attempts to connect a socket to one of a sequence of
|
711
|
+
* endpoints. It does this by repeated calls to the socket's @c async_connect
|
712
|
+
* member function, once for each endpoint in the sequence, until a connection
|
713
|
+
* is successfully established.
|
714
|
+
*
|
715
|
+
* @param s The socket to be connected. If the socket is already open, it will
|
716
|
+
* be closed.
|
717
|
+
*
|
718
|
+
* @param begin An iterator pointing to the start of a sequence of endpoints.
|
719
|
+
*
|
720
|
+
* @param end An iterator pointing to the end of a sequence of endpoints.
|
721
|
+
*
|
722
|
+
* @param connect_condition A function object that is called prior to each
|
723
|
+
* connection attempt. The signature of the function object must be:
|
724
|
+
* @code Iterator connect_condition(
|
725
|
+
* const boost::system::error_code& ec,
|
726
|
+
* Iterator next); @endcode
|
727
|
+
* The @c ec parameter contains the result from the most recent connect
|
728
|
+
* operation. Before the first connection attempt, @c ec is always set to
|
729
|
+
* indicate success. The @c next parameter is an iterator pointing to the next
|
730
|
+
* endpoint to be tried. The function object should return the next iterator,
|
731
|
+
* but is permitted to return a different iterator so that endpoints may be
|
732
|
+
* skipped. The implementation guarantees that the function object will never
|
733
|
+
* be called with the end iterator.
|
734
|
+
*
|
735
|
+
* @param handler The handler to be called when the connect operation
|
736
|
+
* completes. Copies will be made of the handler as required. The function
|
737
|
+
* signature of the handler must be:
|
738
|
+
* @code void handler(
|
739
|
+
* // Result of operation. if the sequence is empty, set to
|
740
|
+
* // boost::asio::error::not_found. Otherwise, contains the
|
741
|
+
* // error from the last connection attempt.
|
742
|
+
* const boost::system::error_code& error,
|
743
|
+
*
|
744
|
+
* // On success, an iterator denoting the successfully
|
745
|
+
* // connected endpoint. Otherwise, the end iterator.
|
746
|
+
* Iterator iterator
|
747
|
+
* ); @endcode
|
748
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
749
|
+
* not, the handler will not be invoked from within this function. Invocation
|
750
|
+
* of the handler will be performed in a manner equivalent to using
|
751
|
+
* boost::asio::io_service::post().
|
752
|
+
*
|
753
|
+
* @par Example
|
754
|
+
* The following connect condition function object can be used to output
|
755
|
+
* information about the individual connection attempts:
|
756
|
+
* @code struct my_connect_condition
|
757
|
+
* {
|
758
|
+
* template <typename Iterator>
|
759
|
+
* Iterator operator()(
|
760
|
+
* const boost::system::error_code& ec,
|
761
|
+
* Iterator next)
|
762
|
+
* {
|
763
|
+
* if (ec) std::cout << "Error: " << ec.message() << std::endl;
|
764
|
+
* std::cout << "Trying: " << next->endpoint() << std::endl;
|
765
|
+
* return next;
|
766
|
+
* }
|
767
|
+
* }; @endcode
|
768
|
+
* It would be used with the boost::asio::connect function as follows:
|
769
|
+
* @code tcp::resolver r(io_service);
|
770
|
+
* tcp::resolver::query q("host", "service");
|
771
|
+
* tcp::socket s(io_service);
|
772
|
+
*
|
773
|
+
* // ...
|
774
|
+
*
|
775
|
+
* r.async_resolve(q, resolve_handler);
|
776
|
+
*
|
777
|
+
* // ...
|
778
|
+
*
|
779
|
+
* void resolve_handler(
|
780
|
+
* const boost::system::error_code& ec,
|
781
|
+
* tcp::resolver::iterator i)
|
782
|
+
* {
|
783
|
+
* if (!ec)
|
784
|
+
* {
|
785
|
+
* tcp::resolver::iterator end;
|
786
|
+
* boost::asio::async_connect(s, i, end,
|
787
|
+
* my_connect_condition(),
|
788
|
+
* connect_handler);
|
789
|
+
* }
|
790
|
+
* }
|
791
|
+
*
|
792
|
+
* // ...
|
793
|
+
*
|
794
|
+
* void connect_handler(
|
795
|
+
* const boost::system::error_code& ec,
|
796
|
+
* tcp::resolver::iterator i)
|
797
|
+
* {
|
798
|
+
* if (ec)
|
799
|
+
* {
|
800
|
+
* // An error occurred.
|
801
|
+
* }
|
802
|
+
* else
|
803
|
+
* {
|
804
|
+
* std::cout << "Connected to: " << i->endpoint() << std::endl;
|
805
|
+
* }
|
806
|
+
* } @endcode
|
807
|
+
*/
|
808
|
+
template <typename Protocol, typename SocketService, typename Iterator,
|
809
|
+
typename ConnectCondition, typename ComposedConnectHandler>
|
810
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ComposedConnectHandler,
|
811
|
+
void (boost::system::error_code, Iterator))
|
812
|
+
async_connect(basic_socket<Protocol, SocketService>& s,
|
813
|
+
Iterator begin, Iterator end, ConnectCondition connect_condition,
|
814
|
+
BOOST_ASIO_MOVE_ARG(ComposedConnectHandler) handler);
|
815
|
+
|
816
|
+
/*@}*/
|
817
|
+
|
818
|
+
} // namespace asio
|
819
|
+
} // namespace boost
|
820
|
+
|
821
|
+
#include <boost/asio/detail/pop_options.hpp>
|
822
|
+
|
823
|
+
#include <boost/asio/impl/connect.hpp>
|
824
|
+
|
825
|
+
#endif
|