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,854 @@
|
|
1
|
+
//
|
2
|
+
// basic_stream_socket.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_BASIC_STREAM_SOCKET_HPP
|
12
|
+
#define BOOST_ASIO_BASIC_STREAM_SOCKET_HPP
|
13
|
+
|
14
|
+
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
|
15
|
+
# pragma once
|
16
|
+
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
|
17
|
+
|
18
|
+
#include <boost/asio/detail/config.hpp>
|
19
|
+
#include <cstddef>
|
20
|
+
#include <boost/asio/async_result.hpp>
|
21
|
+
#include <boost/asio/basic_socket.hpp>
|
22
|
+
#include <boost/asio/detail/handler_type_requirements.hpp>
|
23
|
+
#include <boost/asio/detail/throw_error.hpp>
|
24
|
+
#include <boost/asio/error.hpp>
|
25
|
+
#include <boost/asio/stream_socket_service.hpp>
|
26
|
+
|
27
|
+
#include <boost/asio/detail/push_options.hpp>
|
28
|
+
|
29
|
+
namespace boost {
|
30
|
+
namespace asio {
|
31
|
+
|
32
|
+
/// Provides stream-oriented socket functionality.
|
33
|
+
/**
|
34
|
+
* The basic_stream_socket class template provides asynchronous and blocking
|
35
|
+
* stream-oriented socket functionality.
|
36
|
+
*
|
37
|
+
* @par Thread Safety
|
38
|
+
* @e Distinct @e objects: Safe.@n
|
39
|
+
* @e Shared @e objects: Unsafe.
|
40
|
+
*
|
41
|
+
* @par Concepts:
|
42
|
+
* AsyncReadStream, AsyncWriteStream, Stream, SyncReadStream, SyncWriteStream.
|
43
|
+
*/
|
44
|
+
template <typename Protocol,
|
45
|
+
typename StreamSocketService = stream_socket_service<Protocol> >
|
46
|
+
class basic_stream_socket
|
47
|
+
: public basic_socket<Protocol, StreamSocketService>
|
48
|
+
{
|
49
|
+
public:
|
50
|
+
/// (Deprecated: Use native_handle_type.) The native representation of a
|
51
|
+
/// socket.
|
52
|
+
typedef typename StreamSocketService::native_handle_type native_type;
|
53
|
+
|
54
|
+
/// The native representation of a socket.
|
55
|
+
typedef typename StreamSocketService::native_handle_type native_handle_type;
|
56
|
+
|
57
|
+
/// The protocol type.
|
58
|
+
typedef Protocol protocol_type;
|
59
|
+
|
60
|
+
/// The endpoint type.
|
61
|
+
typedef typename Protocol::endpoint endpoint_type;
|
62
|
+
|
63
|
+
/// Construct a basic_stream_socket without opening it.
|
64
|
+
/**
|
65
|
+
* This constructor creates a stream socket without opening it. The socket
|
66
|
+
* needs to be opened and then connected or accepted before data can be sent
|
67
|
+
* or received on it.
|
68
|
+
*
|
69
|
+
* @param io_service The io_service object that the stream socket will use to
|
70
|
+
* dispatch handlers for any asynchronous operations performed on the socket.
|
71
|
+
*/
|
72
|
+
explicit basic_stream_socket(boost::asio::io_service& io_service)
|
73
|
+
: basic_socket<Protocol, StreamSocketService>(io_service)
|
74
|
+
{
|
75
|
+
}
|
76
|
+
|
77
|
+
/// Construct and open a basic_stream_socket.
|
78
|
+
/**
|
79
|
+
* This constructor creates and opens a stream socket. The socket needs to be
|
80
|
+
* connected or accepted before data can be sent or received on it.
|
81
|
+
*
|
82
|
+
* @param io_service The io_service object that the stream socket will use to
|
83
|
+
* dispatch handlers for any asynchronous operations performed on the socket.
|
84
|
+
*
|
85
|
+
* @param protocol An object specifying protocol parameters to be used.
|
86
|
+
*
|
87
|
+
* @throws boost::system::system_error Thrown on failure.
|
88
|
+
*/
|
89
|
+
basic_stream_socket(boost::asio::io_service& io_service,
|
90
|
+
const protocol_type& protocol)
|
91
|
+
: basic_socket<Protocol, StreamSocketService>(io_service, protocol)
|
92
|
+
{
|
93
|
+
}
|
94
|
+
|
95
|
+
/// Construct a basic_stream_socket, opening it and binding it to the given
|
96
|
+
/// local endpoint.
|
97
|
+
/**
|
98
|
+
* This constructor creates a stream socket and automatically opens it bound
|
99
|
+
* to the specified endpoint on the local machine. The protocol used is the
|
100
|
+
* protocol associated with the given endpoint.
|
101
|
+
*
|
102
|
+
* @param io_service The io_service object that the stream socket will use to
|
103
|
+
* dispatch handlers for any asynchronous operations performed on the socket.
|
104
|
+
*
|
105
|
+
* @param endpoint An endpoint on the local machine to which the stream
|
106
|
+
* socket will be bound.
|
107
|
+
*
|
108
|
+
* @throws boost::system::system_error Thrown on failure.
|
109
|
+
*/
|
110
|
+
basic_stream_socket(boost::asio::io_service& io_service,
|
111
|
+
const endpoint_type& endpoint)
|
112
|
+
: basic_socket<Protocol, StreamSocketService>(io_service, endpoint)
|
113
|
+
{
|
114
|
+
}
|
115
|
+
|
116
|
+
/// Construct a basic_stream_socket on an existing native socket.
|
117
|
+
/**
|
118
|
+
* This constructor creates a stream socket object to hold an existing native
|
119
|
+
* socket.
|
120
|
+
*
|
121
|
+
* @param io_service The io_service object that the stream socket will use to
|
122
|
+
* dispatch handlers for any asynchronous operations performed on the socket.
|
123
|
+
*
|
124
|
+
* @param protocol An object specifying protocol parameters to be used.
|
125
|
+
*
|
126
|
+
* @param native_socket The new underlying socket implementation.
|
127
|
+
*
|
128
|
+
* @throws boost::system::system_error Thrown on failure.
|
129
|
+
*/
|
130
|
+
basic_stream_socket(boost::asio::io_service& io_service,
|
131
|
+
const protocol_type& protocol, const native_handle_type& native_socket)
|
132
|
+
: basic_socket<Protocol, StreamSocketService>(
|
133
|
+
io_service, protocol, native_socket)
|
134
|
+
{
|
135
|
+
}
|
136
|
+
|
137
|
+
#if defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
138
|
+
/// Move-construct a basic_stream_socket from another.
|
139
|
+
/**
|
140
|
+
* This constructor moves a stream socket from one object to another.
|
141
|
+
*
|
142
|
+
* @param other The other basic_stream_socket object from which the move
|
143
|
+
* will occur.
|
144
|
+
*
|
145
|
+
* @note Following the move, the moved-from object is in the same state as if
|
146
|
+
* constructed using the @c basic_stream_socket(io_service&) constructor.
|
147
|
+
*/
|
148
|
+
basic_stream_socket(basic_stream_socket&& other)
|
149
|
+
: basic_socket<Protocol, StreamSocketService>(
|
150
|
+
BOOST_ASIO_MOVE_CAST(basic_stream_socket)(other))
|
151
|
+
{
|
152
|
+
}
|
153
|
+
|
154
|
+
/// Move-assign a basic_stream_socket from another.
|
155
|
+
/**
|
156
|
+
* This assignment operator moves a stream socket from one object to another.
|
157
|
+
*
|
158
|
+
* @param other The other basic_stream_socket object from which the move
|
159
|
+
* will occur.
|
160
|
+
*
|
161
|
+
* @note Following the move, the moved-from object is in the same state as if
|
162
|
+
* constructed using the @c basic_stream_socket(io_service&) constructor.
|
163
|
+
*/
|
164
|
+
basic_stream_socket& operator=(basic_stream_socket&& other)
|
165
|
+
{
|
166
|
+
basic_socket<Protocol, StreamSocketService>::operator=(
|
167
|
+
BOOST_ASIO_MOVE_CAST(basic_stream_socket)(other));
|
168
|
+
return *this;
|
169
|
+
}
|
170
|
+
|
171
|
+
/// Move-construct a basic_stream_socket from a socket of another protocol
|
172
|
+
/// type.
|
173
|
+
/**
|
174
|
+
* This constructor moves a stream socket from one object to another.
|
175
|
+
*
|
176
|
+
* @param other The other basic_stream_socket object from which the move
|
177
|
+
* will occur.
|
178
|
+
*
|
179
|
+
* @note Following the move, the moved-from object is in the same state as if
|
180
|
+
* constructed using the @c basic_stream_socket(io_service&) constructor.
|
181
|
+
*/
|
182
|
+
template <typename Protocol1, typename StreamSocketService1>
|
183
|
+
basic_stream_socket(
|
184
|
+
basic_stream_socket<Protocol1, StreamSocketService1>&& other,
|
185
|
+
typename enable_if<is_convertible<Protocol1, Protocol>::value>::type* = 0)
|
186
|
+
: basic_socket<Protocol, StreamSocketService>(
|
187
|
+
BOOST_ASIO_MOVE_CAST2(basic_stream_socket<
|
188
|
+
Protocol1, StreamSocketService1>)(other))
|
189
|
+
{
|
190
|
+
}
|
191
|
+
|
192
|
+
/// Move-assign a basic_stream_socket from a socket of another protocol type.
|
193
|
+
/**
|
194
|
+
* This assignment operator moves a stream socket from one object to another.
|
195
|
+
*
|
196
|
+
* @param other The other basic_stream_socket object from which the move
|
197
|
+
* will occur.
|
198
|
+
*
|
199
|
+
* @note Following the move, the moved-from object is in the same state as if
|
200
|
+
* constructed using the @c basic_stream_socket(io_service&) constructor.
|
201
|
+
*/
|
202
|
+
template <typename Protocol1, typename StreamSocketService1>
|
203
|
+
typename enable_if<is_convertible<Protocol1, Protocol>::value,
|
204
|
+
basic_stream_socket>::type& operator=(
|
205
|
+
basic_stream_socket<Protocol1, StreamSocketService1>&& other)
|
206
|
+
{
|
207
|
+
basic_socket<Protocol, StreamSocketService>::operator=(
|
208
|
+
BOOST_ASIO_MOVE_CAST2(basic_stream_socket<
|
209
|
+
Protocol1, StreamSocketService1>)(other));
|
210
|
+
return *this;
|
211
|
+
}
|
212
|
+
#endif // defined(BOOST_ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
|
213
|
+
|
214
|
+
/// Send some data on the socket.
|
215
|
+
/**
|
216
|
+
* This function is used to send data on the stream socket. The function
|
217
|
+
* call will block until one or more bytes of the data has been sent
|
218
|
+
* successfully, or an until error occurs.
|
219
|
+
*
|
220
|
+
* @param buffers One or more data buffers to be sent on the socket.
|
221
|
+
*
|
222
|
+
* @returns The number of bytes sent.
|
223
|
+
*
|
224
|
+
* @throws boost::system::system_error Thrown on failure.
|
225
|
+
*
|
226
|
+
* @note The send operation may not transmit all of the data to the peer.
|
227
|
+
* Consider using the @ref write function if you need to ensure that all data
|
228
|
+
* is written before the blocking operation completes.
|
229
|
+
*
|
230
|
+
* @par Example
|
231
|
+
* To send a single data buffer use the @ref buffer function as follows:
|
232
|
+
* @code
|
233
|
+
* socket.send(boost::asio::buffer(data, size));
|
234
|
+
* @endcode
|
235
|
+
* See the @ref buffer documentation for information on sending multiple
|
236
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
237
|
+
* std::vector.
|
238
|
+
*/
|
239
|
+
template <typename ConstBufferSequence>
|
240
|
+
std::size_t send(const ConstBufferSequence& buffers)
|
241
|
+
{
|
242
|
+
boost::system::error_code ec;
|
243
|
+
std::size_t s = this->get_service().send(
|
244
|
+
this->get_implementation(), buffers, 0, ec);
|
245
|
+
boost::asio::detail::throw_error(ec, "send");
|
246
|
+
return s;
|
247
|
+
}
|
248
|
+
|
249
|
+
/// Send some data on the socket.
|
250
|
+
/**
|
251
|
+
* This function is used to send data on the stream socket. The function
|
252
|
+
* call will block until one or more bytes of the data has been sent
|
253
|
+
* successfully, or an until error occurs.
|
254
|
+
*
|
255
|
+
* @param buffers One or more data buffers to be sent on the socket.
|
256
|
+
*
|
257
|
+
* @param flags Flags specifying how the send call is to be made.
|
258
|
+
*
|
259
|
+
* @returns The number of bytes sent.
|
260
|
+
*
|
261
|
+
* @throws boost::system::system_error Thrown on failure.
|
262
|
+
*
|
263
|
+
* @note The send operation may not transmit all of the data to the peer.
|
264
|
+
* Consider using the @ref write function if you need to ensure that all data
|
265
|
+
* is written before the blocking operation completes.
|
266
|
+
*
|
267
|
+
* @par Example
|
268
|
+
* To send a single data buffer use the @ref buffer function as follows:
|
269
|
+
* @code
|
270
|
+
* socket.send(boost::asio::buffer(data, size), 0);
|
271
|
+
* @endcode
|
272
|
+
* See the @ref buffer documentation for information on sending multiple
|
273
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
274
|
+
* std::vector.
|
275
|
+
*/
|
276
|
+
template <typename ConstBufferSequence>
|
277
|
+
std::size_t send(const ConstBufferSequence& buffers,
|
278
|
+
socket_base::message_flags flags)
|
279
|
+
{
|
280
|
+
boost::system::error_code ec;
|
281
|
+
std::size_t s = this->get_service().send(
|
282
|
+
this->get_implementation(), buffers, flags, ec);
|
283
|
+
boost::asio::detail::throw_error(ec, "send");
|
284
|
+
return s;
|
285
|
+
}
|
286
|
+
|
287
|
+
/// Send some data on the socket.
|
288
|
+
/**
|
289
|
+
* This function is used to send data on the stream socket. The function
|
290
|
+
* call will block until one or more bytes of the data has been sent
|
291
|
+
* successfully, or an until error occurs.
|
292
|
+
*
|
293
|
+
* @param buffers One or more data buffers to be sent on the socket.
|
294
|
+
*
|
295
|
+
* @param flags Flags specifying how the send call is to be made.
|
296
|
+
*
|
297
|
+
* @param ec Set to indicate what error occurred, if any.
|
298
|
+
*
|
299
|
+
* @returns The number of bytes sent. Returns 0 if an error occurred.
|
300
|
+
*
|
301
|
+
* @note The send operation may not transmit all of the data to the peer.
|
302
|
+
* Consider using the @ref write function if you need to ensure that all data
|
303
|
+
* is written before the blocking operation completes.
|
304
|
+
*/
|
305
|
+
template <typename ConstBufferSequence>
|
306
|
+
std::size_t send(const ConstBufferSequence& buffers,
|
307
|
+
socket_base::message_flags flags, boost::system::error_code& ec)
|
308
|
+
{
|
309
|
+
return this->get_service().send(
|
310
|
+
this->get_implementation(), buffers, flags, ec);
|
311
|
+
}
|
312
|
+
|
313
|
+
/// Start an asynchronous send.
|
314
|
+
/**
|
315
|
+
* This function is used to asynchronously send data on the stream socket.
|
316
|
+
* The function call always returns immediately.
|
317
|
+
*
|
318
|
+
* @param buffers One or more data buffers to be sent on the socket. Although
|
319
|
+
* the buffers object may be copied as necessary, ownership of the underlying
|
320
|
+
* memory blocks is retained by the caller, which must guarantee that they
|
321
|
+
* remain valid until the handler is called.
|
322
|
+
*
|
323
|
+
* @param handler The handler to be called when the send operation completes.
|
324
|
+
* Copies will be made of the handler as required. The function signature of
|
325
|
+
* the handler must be:
|
326
|
+
* @code void handler(
|
327
|
+
* const boost::system::error_code& error, // Result of operation.
|
328
|
+
* std::size_t bytes_transferred // Number of bytes sent.
|
329
|
+
* ); @endcode
|
330
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
331
|
+
* not, the handler will not be invoked from within this function. Invocation
|
332
|
+
* of the handler will be performed in a manner equivalent to using
|
333
|
+
* boost::asio::io_service::post().
|
334
|
+
*
|
335
|
+
* @note The send operation may not transmit all of the data to the peer.
|
336
|
+
* Consider using the @ref async_write function if you need to ensure that all
|
337
|
+
* data is written before the asynchronous operation completes.
|
338
|
+
*
|
339
|
+
* @par Example
|
340
|
+
* To send a single data buffer use the @ref buffer function as follows:
|
341
|
+
* @code
|
342
|
+
* socket.async_send(boost::asio::buffer(data, size), handler);
|
343
|
+
* @endcode
|
344
|
+
* See the @ref buffer documentation for information on sending multiple
|
345
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
346
|
+
* std::vector.
|
347
|
+
*/
|
348
|
+
template <typename ConstBufferSequence, typename WriteHandler>
|
349
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
|
350
|
+
void (boost::system::error_code, std::size_t))
|
351
|
+
async_send(const ConstBufferSequence& buffers,
|
352
|
+
BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
|
353
|
+
{
|
354
|
+
// If you get an error on the following line it means that your handler does
|
355
|
+
// not meet the documented type requirements for a WriteHandler.
|
356
|
+
BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check;
|
357
|
+
|
358
|
+
return this->get_service().async_send(
|
359
|
+
this->get_implementation(), buffers, 0,
|
360
|
+
BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
|
361
|
+
}
|
362
|
+
|
363
|
+
/// Start an asynchronous send.
|
364
|
+
/**
|
365
|
+
* This function is used to asynchronously send data on the stream socket.
|
366
|
+
* The function call always returns immediately.
|
367
|
+
*
|
368
|
+
* @param buffers One or more data buffers to be sent on the socket. Although
|
369
|
+
* the buffers object may be copied as necessary, ownership of the underlying
|
370
|
+
* memory blocks is retained by the caller, which must guarantee that they
|
371
|
+
* remain valid until the handler is called.
|
372
|
+
*
|
373
|
+
* @param flags Flags specifying how the send call is to be made.
|
374
|
+
*
|
375
|
+
* @param handler The handler to be called when the send operation completes.
|
376
|
+
* Copies will be made of the handler as required. The function signature of
|
377
|
+
* the handler must be:
|
378
|
+
* @code void handler(
|
379
|
+
* const boost::system::error_code& error, // Result of operation.
|
380
|
+
* std::size_t bytes_transferred // Number of bytes sent.
|
381
|
+
* ); @endcode
|
382
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
383
|
+
* not, the handler will not be invoked from within this function. Invocation
|
384
|
+
* of the handler will be performed in a manner equivalent to using
|
385
|
+
* boost::asio::io_service::post().
|
386
|
+
*
|
387
|
+
* @note The send operation may not transmit all of the data to the peer.
|
388
|
+
* Consider using the @ref async_write function if you need to ensure that all
|
389
|
+
* data is written before the asynchronous operation completes.
|
390
|
+
*
|
391
|
+
* @par Example
|
392
|
+
* To send a single data buffer use the @ref buffer function as follows:
|
393
|
+
* @code
|
394
|
+
* socket.async_send(boost::asio::buffer(data, size), 0, handler);
|
395
|
+
* @endcode
|
396
|
+
* See the @ref buffer documentation for information on sending multiple
|
397
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
398
|
+
* std::vector.
|
399
|
+
*/
|
400
|
+
template <typename ConstBufferSequence, typename WriteHandler>
|
401
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
|
402
|
+
void (boost::system::error_code, std::size_t))
|
403
|
+
async_send(const ConstBufferSequence& buffers,
|
404
|
+
socket_base::message_flags flags,
|
405
|
+
BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
|
406
|
+
{
|
407
|
+
// If you get an error on the following line it means that your handler does
|
408
|
+
// not meet the documented type requirements for a WriteHandler.
|
409
|
+
BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check;
|
410
|
+
|
411
|
+
return this->get_service().async_send(
|
412
|
+
this->get_implementation(), buffers, flags,
|
413
|
+
BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
|
414
|
+
}
|
415
|
+
|
416
|
+
/// Receive some data on the socket.
|
417
|
+
/**
|
418
|
+
* This function is used to receive data on the stream socket. The function
|
419
|
+
* call will block until one or more bytes of data has been received
|
420
|
+
* successfully, or until an error occurs.
|
421
|
+
*
|
422
|
+
* @param buffers One or more buffers into which the data will be received.
|
423
|
+
*
|
424
|
+
* @returns The number of bytes received.
|
425
|
+
*
|
426
|
+
* @throws boost::system::system_error Thrown on failure. An error code of
|
427
|
+
* boost::asio::error::eof indicates that the connection was closed by the
|
428
|
+
* peer.
|
429
|
+
*
|
430
|
+
* @note The receive operation may not receive all of the requested number of
|
431
|
+
* bytes. Consider using the @ref read function if you need to ensure that the
|
432
|
+
* requested amount of data is read before the blocking operation completes.
|
433
|
+
*
|
434
|
+
* @par Example
|
435
|
+
* To receive into a single data buffer use the @ref buffer function as
|
436
|
+
* follows:
|
437
|
+
* @code
|
438
|
+
* socket.receive(boost::asio::buffer(data, size));
|
439
|
+
* @endcode
|
440
|
+
* See the @ref buffer documentation for information on receiving into
|
441
|
+
* multiple buffers in one go, and how to use it with arrays, boost::array or
|
442
|
+
* std::vector.
|
443
|
+
*/
|
444
|
+
template <typename MutableBufferSequence>
|
445
|
+
std::size_t receive(const MutableBufferSequence& buffers)
|
446
|
+
{
|
447
|
+
boost::system::error_code ec;
|
448
|
+
std::size_t s = this->get_service().receive(
|
449
|
+
this->get_implementation(), buffers, 0, ec);
|
450
|
+
boost::asio::detail::throw_error(ec, "receive");
|
451
|
+
return s;
|
452
|
+
}
|
453
|
+
|
454
|
+
/// Receive some data on the socket.
|
455
|
+
/**
|
456
|
+
* This function is used to receive data on the stream socket. The function
|
457
|
+
* call will block until one or more bytes of data has been received
|
458
|
+
* successfully, or until an error occurs.
|
459
|
+
*
|
460
|
+
* @param buffers One or more buffers into which the data will be received.
|
461
|
+
*
|
462
|
+
* @param flags Flags specifying how the receive call is to be made.
|
463
|
+
*
|
464
|
+
* @returns The number of bytes received.
|
465
|
+
*
|
466
|
+
* @throws boost::system::system_error Thrown on failure. An error code of
|
467
|
+
* boost::asio::error::eof indicates that the connection was closed by the
|
468
|
+
* peer.
|
469
|
+
*
|
470
|
+
* @note The receive operation may not receive all of the requested number of
|
471
|
+
* bytes. Consider using the @ref read function if you need to ensure that the
|
472
|
+
* requested amount of data is read before the blocking operation completes.
|
473
|
+
*
|
474
|
+
* @par Example
|
475
|
+
* To receive into a single data buffer use the @ref buffer function as
|
476
|
+
* follows:
|
477
|
+
* @code
|
478
|
+
* socket.receive(boost::asio::buffer(data, size), 0);
|
479
|
+
* @endcode
|
480
|
+
* See the @ref buffer documentation for information on receiving into
|
481
|
+
* multiple buffers in one go, and how to use it with arrays, boost::array or
|
482
|
+
* std::vector.
|
483
|
+
*/
|
484
|
+
template <typename MutableBufferSequence>
|
485
|
+
std::size_t receive(const MutableBufferSequence& buffers,
|
486
|
+
socket_base::message_flags flags)
|
487
|
+
{
|
488
|
+
boost::system::error_code ec;
|
489
|
+
std::size_t s = this->get_service().receive(
|
490
|
+
this->get_implementation(), buffers, flags, ec);
|
491
|
+
boost::asio::detail::throw_error(ec, "receive");
|
492
|
+
return s;
|
493
|
+
}
|
494
|
+
|
495
|
+
/// Receive some data on a connected socket.
|
496
|
+
/**
|
497
|
+
* This function is used to receive data on the stream socket. The function
|
498
|
+
* call will block until one or more bytes of data has been received
|
499
|
+
* successfully, or until an error occurs.
|
500
|
+
*
|
501
|
+
* @param buffers One or more buffers into which the data will be received.
|
502
|
+
*
|
503
|
+
* @param flags Flags specifying how the receive call is to be made.
|
504
|
+
*
|
505
|
+
* @param ec Set to indicate what error occurred, if any.
|
506
|
+
*
|
507
|
+
* @returns The number of bytes received. Returns 0 if an error occurred.
|
508
|
+
*
|
509
|
+
* @note The receive operation may not receive all of the requested number of
|
510
|
+
* bytes. Consider using the @ref read function if you need to ensure that the
|
511
|
+
* requested amount of data is read before the blocking operation completes.
|
512
|
+
*/
|
513
|
+
template <typename MutableBufferSequence>
|
514
|
+
std::size_t receive(const MutableBufferSequence& buffers,
|
515
|
+
socket_base::message_flags flags, boost::system::error_code& ec)
|
516
|
+
{
|
517
|
+
return this->get_service().receive(
|
518
|
+
this->get_implementation(), buffers, flags, ec);
|
519
|
+
}
|
520
|
+
|
521
|
+
/// Start an asynchronous receive.
|
522
|
+
/**
|
523
|
+
* This function is used to asynchronously receive data from the stream
|
524
|
+
* socket. The function call always returns immediately.
|
525
|
+
*
|
526
|
+
* @param buffers One or more buffers into which the data will be received.
|
527
|
+
* Although the buffers object may be copied as necessary, ownership of the
|
528
|
+
* underlying memory blocks is retained by the caller, which must guarantee
|
529
|
+
* that they remain valid until the handler is called.
|
530
|
+
*
|
531
|
+
* @param handler The handler to be called when the receive operation
|
532
|
+
* completes. Copies will be made of the handler as required. The function
|
533
|
+
* signature of the handler must be:
|
534
|
+
* @code void handler(
|
535
|
+
* const boost::system::error_code& error, // Result of operation.
|
536
|
+
* std::size_t bytes_transferred // Number of bytes received.
|
537
|
+
* ); @endcode
|
538
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
539
|
+
* not, the handler will not be invoked from within this function. Invocation
|
540
|
+
* of the handler will be performed in a manner equivalent to using
|
541
|
+
* boost::asio::io_service::post().
|
542
|
+
*
|
543
|
+
* @note The receive operation may not receive all of the requested number of
|
544
|
+
* bytes. Consider using the @ref async_read function if you need to ensure
|
545
|
+
* that the requested amount of data is received before the asynchronous
|
546
|
+
* operation completes.
|
547
|
+
*
|
548
|
+
* @par Example
|
549
|
+
* To receive into a single data buffer use the @ref buffer function as
|
550
|
+
* follows:
|
551
|
+
* @code
|
552
|
+
* socket.async_receive(boost::asio::buffer(data, size), handler);
|
553
|
+
* @endcode
|
554
|
+
* See the @ref buffer documentation for information on receiving into
|
555
|
+
* multiple buffers in one go, and how to use it with arrays, boost::array or
|
556
|
+
* std::vector.
|
557
|
+
*/
|
558
|
+
template <typename MutableBufferSequence, typename ReadHandler>
|
559
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
560
|
+
void (boost::system::error_code, std::size_t))
|
561
|
+
async_receive(const MutableBufferSequence& buffers,
|
562
|
+
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
563
|
+
{
|
564
|
+
// If you get an error on the following line it means that your handler does
|
565
|
+
// not meet the documented type requirements for a ReadHandler.
|
566
|
+
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
567
|
+
|
568
|
+
return this->get_service().async_receive(this->get_implementation(),
|
569
|
+
buffers, 0, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
570
|
+
}
|
571
|
+
|
572
|
+
/// Start an asynchronous receive.
|
573
|
+
/**
|
574
|
+
* This function is used to asynchronously receive data from the stream
|
575
|
+
* socket. The function call always returns immediately.
|
576
|
+
*
|
577
|
+
* @param buffers One or more buffers into which the data will be received.
|
578
|
+
* Although the buffers object may be copied as necessary, ownership of the
|
579
|
+
* underlying memory blocks is retained by the caller, which must guarantee
|
580
|
+
* that they remain valid until the handler is called.
|
581
|
+
*
|
582
|
+
* @param flags Flags specifying how the receive call is to be made.
|
583
|
+
*
|
584
|
+
* @param handler The handler to be called when the receive operation
|
585
|
+
* completes. Copies will be made of the handler as required. The function
|
586
|
+
* signature of the handler must be:
|
587
|
+
* @code void handler(
|
588
|
+
* const boost::system::error_code& error, // Result of operation.
|
589
|
+
* std::size_t bytes_transferred // Number of bytes received.
|
590
|
+
* ); @endcode
|
591
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
592
|
+
* not, the handler will not be invoked from within this function. Invocation
|
593
|
+
* of the handler will be performed in a manner equivalent to using
|
594
|
+
* boost::asio::io_service::post().
|
595
|
+
*
|
596
|
+
* @note The receive operation may not receive all of the requested number of
|
597
|
+
* bytes. Consider using the @ref async_read function if you need to ensure
|
598
|
+
* that the requested amount of data is received before the asynchronous
|
599
|
+
* operation completes.
|
600
|
+
*
|
601
|
+
* @par Example
|
602
|
+
* To receive into a single data buffer use the @ref buffer function as
|
603
|
+
* follows:
|
604
|
+
* @code
|
605
|
+
* socket.async_receive(boost::asio::buffer(data, size), 0, handler);
|
606
|
+
* @endcode
|
607
|
+
* See the @ref buffer documentation for information on receiving into
|
608
|
+
* multiple buffers in one go, and how to use it with arrays, boost::array or
|
609
|
+
* std::vector.
|
610
|
+
*/
|
611
|
+
template <typename MutableBufferSequence, typename ReadHandler>
|
612
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
613
|
+
void (boost::system::error_code, std::size_t))
|
614
|
+
async_receive(const MutableBufferSequence& buffers,
|
615
|
+
socket_base::message_flags flags,
|
616
|
+
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
617
|
+
{
|
618
|
+
// If you get an error on the following line it means that your handler does
|
619
|
+
// not meet the documented type requirements for a ReadHandler.
|
620
|
+
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
621
|
+
|
622
|
+
return this->get_service().async_receive(this->get_implementation(),
|
623
|
+
buffers, flags, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
624
|
+
}
|
625
|
+
|
626
|
+
/// Write some data to the socket.
|
627
|
+
/**
|
628
|
+
* This function is used to write data to the stream socket. The function call
|
629
|
+
* will block until one or more bytes of the data has been written
|
630
|
+
* successfully, or until an error occurs.
|
631
|
+
*
|
632
|
+
* @param buffers One or more data buffers to be written to the socket.
|
633
|
+
*
|
634
|
+
* @returns The number of bytes written.
|
635
|
+
*
|
636
|
+
* @throws boost::system::system_error Thrown on failure. An error code of
|
637
|
+
* boost::asio::error::eof indicates that the connection was closed by the
|
638
|
+
* peer.
|
639
|
+
*
|
640
|
+
* @note The write_some operation may not transmit all of the data to the
|
641
|
+
* peer. Consider using the @ref write function if you need to ensure that
|
642
|
+
* all data is written before the blocking operation completes.
|
643
|
+
*
|
644
|
+
* @par Example
|
645
|
+
* To write a single data buffer use the @ref buffer function as follows:
|
646
|
+
* @code
|
647
|
+
* socket.write_some(boost::asio::buffer(data, size));
|
648
|
+
* @endcode
|
649
|
+
* See the @ref buffer documentation for information on writing multiple
|
650
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
651
|
+
* std::vector.
|
652
|
+
*/
|
653
|
+
template <typename ConstBufferSequence>
|
654
|
+
std::size_t write_some(const ConstBufferSequence& buffers)
|
655
|
+
{
|
656
|
+
boost::system::error_code ec;
|
657
|
+
std::size_t s = this->get_service().send(
|
658
|
+
this->get_implementation(), buffers, 0, ec);
|
659
|
+
boost::asio::detail::throw_error(ec, "write_some");
|
660
|
+
return s;
|
661
|
+
}
|
662
|
+
|
663
|
+
/// Write some data to the socket.
|
664
|
+
/**
|
665
|
+
* This function is used to write data to the stream socket. The function call
|
666
|
+
* will block until one or more bytes of the data has been written
|
667
|
+
* successfully, or until an error occurs.
|
668
|
+
*
|
669
|
+
* @param buffers One or more data buffers to be written to the socket.
|
670
|
+
*
|
671
|
+
* @param ec Set to indicate what error occurred, if any.
|
672
|
+
*
|
673
|
+
* @returns The number of bytes written. Returns 0 if an error occurred.
|
674
|
+
*
|
675
|
+
* @note The write_some operation may not transmit all of the data to the
|
676
|
+
* peer. Consider using the @ref write function if you need to ensure that
|
677
|
+
* all data is written before the blocking operation completes.
|
678
|
+
*/
|
679
|
+
template <typename ConstBufferSequence>
|
680
|
+
std::size_t write_some(const ConstBufferSequence& buffers,
|
681
|
+
boost::system::error_code& ec)
|
682
|
+
{
|
683
|
+
return this->get_service().send(this->get_implementation(), buffers, 0, ec);
|
684
|
+
}
|
685
|
+
|
686
|
+
/// Start an asynchronous write.
|
687
|
+
/**
|
688
|
+
* This function is used to asynchronously write data to the stream socket.
|
689
|
+
* The function call always returns immediately.
|
690
|
+
*
|
691
|
+
* @param buffers One or more data buffers to be written to the socket.
|
692
|
+
* Although the buffers object may be copied as necessary, ownership of the
|
693
|
+
* underlying memory blocks is retained by the caller, which must guarantee
|
694
|
+
* that they remain valid until the handler is called.
|
695
|
+
*
|
696
|
+
* @param handler The handler to be called when the write operation completes.
|
697
|
+
* Copies will be made of the handler as required. The function signature of
|
698
|
+
* the handler must be:
|
699
|
+
* @code void handler(
|
700
|
+
* const boost::system::error_code& error, // Result of operation.
|
701
|
+
* std::size_t bytes_transferred // Number of bytes written.
|
702
|
+
* ); @endcode
|
703
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
704
|
+
* not, the handler will not be invoked from within this function. Invocation
|
705
|
+
* of the handler will be performed in a manner equivalent to using
|
706
|
+
* boost::asio::io_service::post().
|
707
|
+
*
|
708
|
+
* @note The write operation may not transmit all of the data to the peer.
|
709
|
+
* Consider using the @ref async_write function if you need to ensure that all
|
710
|
+
* data is written before the asynchronous operation completes.
|
711
|
+
*
|
712
|
+
* @par Example
|
713
|
+
* To write a single data buffer use the @ref buffer function as follows:
|
714
|
+
* @code
|
715
|
+
* socket.async_write_some(boost::asio::buffer(data, size), handler);
|
716
|
+
* @endcode
|
717
|
+
* See the @ref buffer documentation for information on writing multiple
|
718
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
719
|
+
* std::vector.
|
720
|
+
*/
|
721
|
+
template <typename ConstBufferSequence, typename WriteHandler>
|
722
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(WriteHandler,
|
723
|
+
void (boost::system::error_code, std::size_t))
|
724
|
+
async_write_some(const ConstBufferSequence& buffers,
|
725
|
+
BOOST_ASIO_MOVE_ARG(WriteHandler) handler)
|
726
|
+
{
|
727
|
+
// If you get an error on the following line it means that your handler does
|
728
|
+
// not meet the documented type requirements for a WriteHandler.
|
729
|
+
BOOST_ASIO_WRITE_HANDLER_CHECK(WriteHandler, handler) type_check;
|
730
|
+
|
731
|
+
return this->get_service().async_send(this->get_implementation(),
|
732
|
+
buffers, 0, BOOST_ASIO_MOVE_CAST(WriteHandler)(handler));
|
733
|
+
}
|
734
|
+
|
735
|
+
/// Read some data from the socket.
|
736
|
+
/**
|
737
|
+
* This function is used to read data from the stream socket. The function
|
738
|
+
* call will block until one or more bytes of data has been read successfully,
|
739
|
+
* or until an error occurs.
|
740
|
+
*
|
741
|
+
* @param buffers One or more buffers into which the data will be read.
|
742
|
+
*
|
743
|
+
* @returns The number of bytes read.
|
744
|
+
*
|
745
|
+
* @throws boost::system::system_error Thrown on failure. An error code of
|
746
|
+
* boost::asio::error::eof indicates that the connection was closed by the
|
747
|
+
* peer.
|
748
|
+
*
|
749
|
+
* @note The read_some operation may not read all of the requested number of
|
750
|
+
* bytes. Consider using the @ref read function if you need to ensure that
|
751
|
+
* the requested amount of data is read before the blocking operation
|
752
|
+
* completes.
|
753
|
+
*
|
754
|
+
* @par Example
|
755
|
+
* To read into a single data buffer use the @ref buffer function as follows:
|
756
|
+
* @code
|
757
|
+
* socket.read_some(boost::asio::buffer(data, size));
|
758
|
+
* @endcode
|
759
|
+
* See the @ref buffer documentation for information on reading into multiple
|
760
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
761
|
+
* std::vector.
|
762
|
+
*/
|
763
|
+
template <typename MutableBufferSequence>
|
764
|
+
std::size_t read_some(const MutableBufferSequence& buffers)
|
765
|
+
{
|
766
|
+
boost::system::error_code ec;
|
767
|
+
std::size_t s = this->get_service().receive(
|
768
|
+
this->get_implementation(), buffers, 0, ec);
|
769
|
+
boost::asio::detail::throw_error(ec, "read_some");
|
770
|
+
return s;
|
771
|
+
}
|
772
|
+
|
773
|
+
/// Read some data from the socket.
|
774
|
+
/**
|
775
|
+
* This function is used to read data from the stream socket. The function
|
776
|
+
* call will block until one or more bytes of data has been read successfully,
|
777
|
+
* or until an error occurs.
|
778
|
+
*
|
779
|
+
* @param buffers One or more buffers into which the data will be read.
|
780
|
+
*
|
781
|
+
* @param ec Set to indicate what error occurred, if any.
|
782
|
+
*
|
783
|
+
* @returns The number of bytes read. Returns 0 if an error occurred.
|
784
|
+
*
|
785
|
+
* @note The read_some operation may not read all of the requested number of
|
786
|
+
* bytes. Consider using the @ref read function if you need to ensure that
|
787
|
+
* the requested amount of data is read before the blocking operation
|
788
|
+
* completes.
|
789
|
+
*/
|
790
|
+
template <typename MutableBufferSequence>
|
791
|
+
std::size_t read_some(const MutableBufferSequence& buffers,
|
792
|
+
boost::system::error_code& ec)
|
793
|
+
{
|
794
|
+
return this->get_service().receive(
|
795
|
+
this->get_implementation(), buffers, 0, ec);
|
796
|
+
}
|
797
|
+
|
798
|
+
/// Start an asynchronous read.
|
799
|
+
/**
|
800
|
+
* This function is used to asynchronously read data from the stream socket.
|
801
|
+
* The function call always returns immediately.
|
802
|
+
*
|
803
|
+
* @param buffers One or more buffers into which the data will be read.
|
804
|
+
* Although the buffers object may be copied as necessary, ownership of the
|
805
|
+
* underlying memory blocks is retained by the caller, which must guarantee
|
806
|
+
* that they remain valid until the handler is called.
|
807
|
+
*
|
808
|
+
* @param handler The handler to be called when the read operation completes.
|
809
|
+
* Copies will be made of the handler as required. The function signature of
|
810
|
+
* the handler must be:
|
811
|
+
* @code void handler(
|
812
|
+
* const boost::system::error_code& error, // Result of operation.
|
813
|
+
* std::size_t bytes_transferred // Number of bytes read.
|
814
|
+
* ); @endcode
|
815
|
+
* Regardless of whether the asynchronous operation completes immediately or
|
816
|
+
* not, the handler will not be invoked from within this function. Invocation
|
817
|
+
* of the handler will be performed in a manner equivalent to using
|
818
|
+
* boost::asio::io_service::post().
|
819
|
+
*
|
820
|
+
* @note The read operation may not read all of the requested number of bytes.
|
821
|
+
* Consider using the @ref async_read function if you need to ensure that the
|
822
|
+
* requested amount of data is read before the asynchronous operation
|
823
|
+
* completes.
|
824
|
+
*
|
825
|
+
* @par Example
|
826
|
+
* To read into a single data buffer use the @ref buffer function as follows:
|
827
|
+
* @code
|
828
|
+
* socket.async_read_some(boost::asio::buffer(data, size), handler);
|
829
|
+
* @endcode
|
830
|
+
* See the @ref buffer documentation for information on reading into multiple
|
831
|
+
* buffers in one go, and how to use it with arrays, boost::array or
|
832
|
+
* std::vector.
|
833
|
+
*/
|
834
|
+
template <typename MutableBufferSequence, typename ReadHandler>
|
835
|
+
BOOST_ASIO_INITFN_RESULT_TYPE(ReadHandler,
|
836
|
+
void (boost::system::error_code, std::size_t))
|
837
|
+
async_read_some(const MutableBufferSequence& buffers,
|
838
|
+
BOOST_ASIO_MOVE_ARG(ReadHandler) handler)
|
839
|
+
{
|
840
|
+
// If you get an error on the following line it means that your handler does
|
841
|
+
// not meet the documented type requirements for a ReadHandler.
|
842
|
+
BOOST_ASIO_READ_HANDLER_CHECK(ReadHandler, handler) type_check;
|
843
|
+
|
844
|
+
return this->get_service().async_receive(this->get_implementation(),
|
845
|
+
buffers, 0, BOOST_ASIO_MOVE_CAST(ReadHandler)(handler));
|
846
|
+
}
|
847
|
+
};
|
848
|
+
|
849
|
+
} // namespace asio
|
850
|
+
} // namespace boost
|
851
|
+
|
852
|
+
#include <boost/asio/detail/pop_options.hpp>
|
853
|
+
|
854
|
+
#endif // BOOST_ASIO_BASIC_STREAM_SOCKET_HPP
|