diff --git a/tidal-link/link/.appveyor.yml b/tidal-link/link/.appveyor.yml index 27214e28d..aff8de98c 100644 --- a/tidal-link/link/.appveyor.yml +++ b/tidal-link/link/.appveyor.yml @@ -12,15 +12,15 @@ environment: - APPVEYOR_BUILD_WORKER_IMAGE: macos-catalina CONFIGURATION: Release XCODE_VERSION: 11.7 - - APPVEYOR_BUILD_WORKER_IMAGE: macos-catalina + - APPVEYOR_BUILD_WORKER_IMAGE: macos-bigsur CONFIGURATION: Debug - XCODE_VERSION: 12.3 + XCODE_VERSION: 12.5.1 - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey CONFIGURATION: Release - XCODE_VERSION: 12.5.1 + XCODE_VERSION: 13.4.1 - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey CONFIGURATION: Release - XCODE_VERSION: 13.2.1 + XCODE_VERSION: 14.1 - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004 AUDIO_DRIVER: Jack CONFIGURATION: Debug @@ -52,20 +52,10 @@ environment: GENERATOR: Ninja CXX: g++-7 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - AUDIO_DRIVER: Asio - THREAD_DESCRIPTION: OFF - CONFIGURATION: Release - GENERATOR: Visual Studio 14 2015 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - AUDIO_DRIVER: Asio + AUDIO_DRIVER: Wasapi THREAD_DESCRIPTION: OFF CONFIGURATION: Debug GENERATOR: Visual Studio 14 2015 Win64 - - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 - AUDIO_DRIVER: Asio - THREAD_DESCRIPTION: OFF - CONFIGURATION: Release - GENERATOR: Visual Studio 14 2015 Win64 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 AUDIO_DRIVER: Wasapi THREAD_DESCRIPTION: OFF @@ -88,7 +78,7 @@ environment: GENERATOR: Visual Studio 17 2022 - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004 ESP_IDF: true - IDF_RELEASE: v4.3.1 + IDF_RELEASE: v5.1.1 - APPVEYOR_BUILD_WORKER_IMAGE: Ubuntu2004 FORMATTING: true @@ -100,6 +90,7 @@ for: only: - APPVEYOR_BUILD_WORKER_IMAGE: macos-mojave - APPVEYOR_BUILD_WORKER_IMAGE: macos-catalina + - APPVEYOR_BUILD_WORKER_IMAGE: macos-bigsur - APPVEYOR_BUILD_WORKER_IMAGE: macos-monterey build_script: - sudo xcode-select -s /Applications/Xcode-$XCODE_VERSION.app @@ -114,7 +105,6 @@ for: - GENERATOR: Ninja install: - git submodule update --init --recursive - - sudo apt-get update - sudo apt-get install -y libjack-dev portaudio19-dev valgrind build_script: - python3 ci/configure.py --audio-driver $AUDIO_DRIVER --generator "$GENERATOR" --configuration $CONFIGURATION @@ -129,6 +119,7 @@ for: - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2019 - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2022 build_script: + - py -3 -m pip install setuptools - py -3 ci/configure.py --audio-driver %AUDIO_DRIVER% --thread-description %THREAD_DESCRIPTION% --generator "%GENERATOR%" --flags="-DCMAKE_SYSTEM_VERSION=10.0.18362.0" - py -3 ci/build.py --configuration %CONFIGURATION% test_script: diff --git a/tidal-link/link/Ableton Link Guidelines.pdf b/tidal-link/link/Ableton Link Guidelines.pdf new file mode 100644 index 000000000..09cf86ae3 Binary files /dev/null and b/tidal-link/link/Ableton Link Guidelines.pdf differ diff --git a/tidal-link/link/AbletonLinkConfig.cmake b/tidal-link/link/AbletonLinkConfig.cmake index 43b66e7d3..b036deb17 100644 --- a/tidal-link/link/AbletonLinkConfig.cmake +++ b/tidal-link/link/AbletonLinkConfig.cmake @@ -36,6 +36,11 @@ elseif(CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD|GNU") INTERFACE_COMPILE_DEFINITIONS LINK_PLATFORM_LINUX=1 ) + set_property(TARGET Ableton::Link APPEND PROPERTY + INTERFACE_LINK_LIBRARIES + atomic + pthread + ) endif() include(${CMAKE_CURRENT_LIST_DIR}/cmake_include/AsioStandaloneConfig.cmake) diff --git a/tidal-link/link/CMakeLists.txt b/tidal-link/link/CMakeLists.txt index 5924722da..52187f572 100644 --- a/tidal-link/link/CMakeLists.txt +++ b/tidal-link/link/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) project(Link) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) @@ -22,6 +22,8 @@ if(WIN32) option(LINK_BUILD_VLD "Build with VLD support (VLD must be installed separately)" OFF) endif() +option(LINK_BUILD_TESTS "Build unit test binaries" ON) + # ____ _ _ # | _ \ __ _| |_| |__ ___ # | |_) / _` | __| '_ \/ __| @@ -36,7 +38,9 @@ include(AbletonLinkConfig.cmake) include(extensions/abl_link/abl_link.cmake) add_subdirectory(include) +if(LINK_BUILD_TESTS) add_subdirectory(src) +endif() add_subdirectory(examples) add_subdirectory(extensions/abl_link) diff --git a/tidal-link/link/README.md b/tidal-link/link/README.md index ee2c6b1d9..094c2f997 100644 --- a/tidal-link/link/README.md +++ b/tidal-link/link/README.md @@ -108,7 +108,7 @@ implementations. Please see: [platforms/darwin/Clock.hpp](include/ableton/platforms/darwin/Clock.hpp) - Windows clock implementation in [platforms/windows/Clock.hpp](include/ableton/platforms/windows/Clock.hpp) -- C++ standard library `std::chrono::high_resolution_clock`-based implementation in +- C++ standard library `std::chrono::steady_clock`-based implementation in [platforms/stl/Clock.hpp](include/ableton/platforms/stl/Clock.hpp) Using the system time correctly in the context of an audio callback gets a little diff --git a/tidal-link/link/ci/build.py b/tidal-link/link/ci/build.py old mode 100644 new mode 100755 diff --git a/tidal-link/link/ci/check-formatting.py b/tidal-link/link/ci/check-formatting.py old mode 100644 new mode 100755 diff --git a/tidal-link/link/ci/configure.py b/tidal-link/link/ci/configure.py old mode 100644 new mode 100755 diff --git a/tidal-link/link/ci/run-tests.py b/tidal-link/link/ci/run-tests.py old mode 100644 new mode 100755 diff --git a/tidal-link/link/ci/run_valgrind_tests.sh b/tidal-link/link/ci/run_valgrind_tests.sh old mode 100644 new mode 100755 diff --git a/tidal-link/link/cmake_include/ConfigureCompileFlags.cmake b/tidal-link/link/cmake_include/ConfigureCompileFlags.cmake index 63bdfec57..ec6cd55e3 100644 --- a/tidal-link/link/cmake_include/ConfigureCompileFlags.cmake +++ b/tidal-link/link/cmake_include/ConfigureCompileFlags.cmake @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) set(build_flags_COMMON_LIST) set(build_flags_DEBUG_LIST) @@ -128,6 +128,8 @@ elseif(${CMAKE_CXX_COMPILER_ID} STREQUAL MSVC) "/wd4868" # Compiler may not enforce left-to-right evaluation order in braced initializer list "/wd5026" # Move constructor was implicitly defined as deleted "/wd5027" # Move assignment operator was implicitly defined as deleted + "/wd5262" # implicit fall-through + "/wd5264" # 'variable-name': 'const' variable is not used ) endif() diff --git a/tidal-link/link/examples/CMakeLists.txt b/tidal-link/link/examples/CMakeLists.txt index f75b00b1b..775b1dfd0 100644 --- a/tidal-link/link/examples/CMakeLists.txt +++ b/tidal-link/link/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) project(LinkExamples) # _ ____ ___ ___ @@ -11,7 +11,7 @@ project(LinkExamples) if(WIN32) function(configure_asio asio_sdk_path_OUT) # ASIO-related path/file variables - set(asio_download_root "https:/download.steinberg.net/sdk_downloads") + set(asio_download_root "https://download.steinberg.net/sdk_downloads") set(asio_file_name "asiosdk_2.3.3_2019-06-14.zip") set(asio_dir_name "asiosdk_2.3.3_2019-06-14") set(asio_working_dir "${CMAKE_BINARY_DIR}/modules") @@ -96,10 +96,6 @@ source_group("Audio Sources" FILES ${linkhut_audio_SOURCES}) # function(configure_linkhut_executable target) - if(CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD|GNU") - target_link_libraries(${target} atomic pthread) - endif() - target_link_libraries(${target} Ableton::Link) endfunction() diff --git a/tidal-link/link/examples/esp32/.gitignore b/tidal-link/link/examples/esp32/.gitignore index d054d8439..38c3a5f9e 100644 --- a/tidal-link/link/examples/esp32/.gitignore +++ b/tidal-link/link/examples/esp32/.gitignore @@ -1,3 +1,4 @@ build sdkconfig sdkconfig.old +managed_components diff --git a/tidal-link/link/examples/esp32/main/idf_component.yml b/tidal-link/link/examples/esp32/main/idf_component.yml new file mode 100644 index 000000000..75eccbfe8 --- /dev/null +++ b/tidal-link/link/examples/esp32/main/idf_component.yml @@ -0,0 +1,17 @@ +## IDF Component Manager Manifest File +dependencies: + espressif/asio: "*" + ## Required IDF version + idf: + version: ">=4.1.0" + # # Put list of dependencies here + # # For components maintained by Espressif: + # component: "~1.0.0" + # # For 3rd party components: + # username/component: ">=1.0.0,<2.0.0" + # username2/component2: + # version: "~1.0.0" + # # For transient dependencies `public` flag can be set. + # # `public` flag doesn't have an effect dependencies of the `main` component. + # # All dependencies of `main` are public by default. + # public: true diff --git a/tidal-link/link/examples/esp32/main/main.cpp b/tidal-link/link/examples/esp32/main/main.cpp index b44f45923..0a5c56ba2 100644 --- a/tidal-link/link/examples/esp32/main/main.cpp +++ b/tidal-link/link/examples/esp32/main/main.cpp @@ -1,6 +1,6 @@ #include #include -#include +#include #include #include #include @@ -21,38 +21,6 @@ char* if_indextoname(unsigned int ifIndex, char* ifName) return nullptr; } -void IRAM_ATTR timer_group0_isr(void* userParam) -{ - static BaseType_t xHigherPriorityTaskWoken = pdFALSE; - - TIMERG0.int_clr_timers.t0 = 1; - TIMERG0.hw_timer[0].config.alarm_en = 1; - - xSemaphoreGiveFromISR(userParam, &xHigherPriorityTaskWoken); - if (xHigherPriorityTaskWoken) - { - portYIELD_FROM_ISR(); - } -} - -void timerGroup0Init(int timerPeriodUS, void* userParam) -{ - timer_config_t config = {.alarm_en = TIMER_ALARM_EN, - .counter_en = TIMER_PAUSE, - .intr_type = TIMER_INTR_LEVEL, - .counter_dir = TIMER_COUNT_UP, - .auto_reload = TIMER_AUTORELOAD_EN, - .divider = 80}; - - timer_init(TIMER_GROUP_0, TIMER_0, &config); - timer_set_counter_value(TIMER_GROUP_0, TIMER_0, 0); - timer_set_alarm_value(TIMER_GROUP_0, TIMER_0, timerPeriodUS); - timer_enable_intr(TIMER_GROUP_0, TIMER_0); - timer_isr_register(TIMER_GROUP_0, TIMER_0, &timer_group0_isr, userParam, 0, nullptr); - - timer_start(TIMER_GROUP_0, TIMER_0); -} - void printTask(void* userParam) { auto link = static_cast(userParam); @@ -73,7 +41,6 @@ void printTask(void* userParam) void tickTask(void* userParam) { - SemaphoreHandle_t handle = static_cast(userParam); ableton::Link link(120.0f); link.enable(true); @@ -86,12 +53,10 @@ void tickTask(void* userParam) while (true) { - xSemaphoreTake(handle, portMAX_DELAY); - const auto state = link.captureAudioSessionState(); const auto phase = state.phaseAtTime(link.clock().micros(), 1.); gpio_set_level(LED, fmodf(phase, 1.) < 0.1); - portYIELD(); + vTaskDelay(1); } } @@ -102,8 +67,5 @@ extern "C" void app_main() ESP_ERROR_CHECK(esp_event_loop_create_default()); ESP_ERROR_CHECK(example_connect()); - SemaphoreHandle_t tickSemphr = xSemaphoreCreateBinary(); - timerGroup0Init(100, tickSemphr); - - xTaskCreate(tickTask, "tick", 8192, tickSemphr, configMAX_PRIORITIES - 1, nullptr); + xTaskCreate(tickTask, "tick", 8192, nullptr, configMAX_PRIORITIES - 1, nullptr); } diff --git a/tidal-link/link/examples/esp32/sdkconfig.defaults b/tidal-link/link/examples/esp32/sdkconfig.defaults index 75ebeae1c..33b93f576 100644 --- a/tidal-link/link/examples/esp32/sdkconfig.defaults +++ b/tidal-link/link/examples/esp32/sdkconfig.defaults @@ -1 +1,3 @@ CONFIG_COMPILER_CXX_EXCEPTIONS=y +CONFIG_PARTITION_TABLE_SINGLE_APP_LARGE=y + diff --git a/tidal-link/link/extensions/abl_link/abl_link.cmake b/tidal-link/link/extensions/abl_link/abl_link.cmake index 00efd1ee2..8e52a063b 100644 --- a/tidal-link/link/extensions/abl_link/abl_link.cmake +++ b/tidal-link/link/extensions/abl_link/abl_link.cmake @@ -13,7 +13,3 @@ target_include_directories(abl_link PUBLIC set_property(TARGET abl_link PROPERTY C_STANDARD 11) target_link_libraries(abl_link Ableton::Link) - -if(CMAKE_SYSTEM_NAME MATCHES "Linux|kFreeBSD|GNU") - target_link_libraries(abl_link atomic pthread) -endif() diff --git a/tidal-link/link/include/CMakeLists.txt b/tidal-link/link/include/CMakeLists.txt index 1c7b5ed96..2cf37b8f0 100644 --- a/tidal-link/link/include/CMakeLists.txt +++ b/tidal-link/link/include/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.0) +cmake_minimum_required(VERSION 3.5) project(LinkCore) # ____ @@ -19,6 +19,7 @@ set(link_core_HEADERS ${link_core_DIR}/LinearRegression.hpp ${link_core_DIR}/Measurement.hpp ${link_core_DIR}/MeasurementEndpointV4.hpp + ${link_core_DIR}/MeasurementEndpointV6.hpp ${link_core_DIR}/MeasurementService.hpp ${link_core_DIR}/Median.hpp ${link_core_DIR}/NodeId.hpp @@ -49,8 +50,9 @@ set(link_core_HEADERS set(link_discovery_DIR ${CMAKE_CURRENT_SOURCE_DIR}/ableton/discovery) set(link_discovery_HEADERS + ${link_discovery_DIR}/AsioTypes.hpp ${link_discovery_DIR}/InterfaceScanner.hpp - ${link_discovery_DIR}/IpV4Interface.hpp + ${link_discovery_DIR}/IpInterface.hpp ${link_discovery_DIR}/MessageTypes.hpp ${link_discovery_DIR}/NetworkByteStreamSerializable.hpp ${link_discovery_DIR}/Payload.hpp @@ -77,7 +79,6 @@ set(link_platform_HEADERS ${link_platform_DIR}/asio/Context.hpp ${link_platform_DIR}/asio/LockFreeCallbackDispatcher.hpp ${link_platform_DIR}/asio/Socket.hpp - ${link_platform_DIR}/asio/Util.hpp ) if(ESP_PLATFORM) diff --git a/tidal-link/link/include/ableton/Link.ipp b/tidal-link/link/include/ableton/Link.ipp index f8cbce832..28fb1e471 100644 --- a/tidal-link/link/include/ableton/Link.ipp +++ b/tidal-link/link/include/ableton/Link.ipp @@ -225,19 +225,33 @@ inline void BasicLink::SessionState::requestBeatAtTime( forceBeatAtTime(beat, time, quantum); } -template -inline void BasicLink::SessionState::forceBeatAtTime( - const double beat, const std::chrono::microseconds time, const double quantum) +inline void forceBeatAtTimeImpl(link::Timeline& timeline, + const link::Beats beat, + const std::chrono::microseconds time, + const link::Beats quantum) { // There are two components to the beat adjustment: a phase shift // and a beat magnitude adjustment. - const auto curBeatAtTime = link::Beats{beatAtTime(time, quantum)}; - const auto closestInPhase = - link::closestPhaseMatch(curBeatAtTime, link::Beats{beat}, link::Beats{quantum}); - mState.timeline = shiftClientTimeline(mState.timeline, closestInPhase - curBeatAtTime); + const auto curBeatAtTime = link::toPhaseEncodedBeats(timeline, time, quantum); + const auto closestInPhase = link::closestPhaseMatch(curBeatAtTime, beat, quantum); + timeline = shiftClientTimeline(timeline, closestInPhase - curBeatAtTime); // Now adjust the magnitude - mState.timeline.beatOrigin = - mState.timeline.beatOrigin + (link::Beats{beat} - closestInPhase); + timeline.beatOrigin = timeline.beatOrigin + beat - closestInPhase; +} + +template +inline void BasicLink::SessionState::forceBeatAtTime( + const double beat, std::chrono::microseconds time, const double quantum) +{ + forceBeatAtTimeImpl(mState.timeline, link::Beats{beat}, time, link::Beats{quantum}); + + // Due to quantization errors the resulting BeatTime at 'time' after forcing can be + // bigger than 'beat' which then violates intended behavior of the API and can lead + // i.e. to missing a downbeat. Thus we have to shift the timeline forwards. + if (beatAtTime(time, quantum) > beat) + { + forceBeatAtTimeImpl(mState.timeline, link::Beats{beat}, ++time, link::Beats{quantum}); + } } template diff --git a/tidal-link/link/include/ableton/platforms/asio/Util.hpp b/tidal-link/link/include/ableton/discovery/AsioTypes.hpp similarity index 61% rename from tidal-link/link/include/ableton/platforms/asio/Util.hpp rename to tidal-link/link/include/ableton/discovery/AsioTypes.hpp index b974c10cc..fe0e9a7a3 100644 --- a/tidal-link/link/include/ableton/platforms/asio/Util.hpp +++ b/tidal-link/link/include/ableton/discovery/AsioTypes.hpp @@ -1,4 +1,4 @@ -/* Copyright 2016, Ableton AG, Berlin. All rights reserved. +/* Copyright 2023, Ableton AG, Berlin. All rights reserved. * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -19,16 +19,19 @@ #pragma once -#include +#include namespace ableton { -namespace platforms -{ -namespace asio +namespace discovery { -// Utility for making v4 or v6 ip addresses from raw bytes in network byte-order +using IpAddress = LINK_ASIO_NAMESPACE::ip::address; +using IpAddressV4 = LINK_ASIO_NAMESPACE::ip::address_v4; +using IpAddressV6 = LINK_ASIO_NAMESPACE::ip::address_v6; +using UdpSocket = LINK_ASIO_NAMESPACE::ip::udp::socket; +using UdpEndpoint = LINK_ASIO_NAMESPACE::ip::udp::endpoint; + template AsioAddrType makeAddress(const char* pAddr) { @@ -38,6 +41,14 @@ AsioAddrType makeAddress(const char* pAddr) return AsioAddrType{bytes}; } -} // namespace asio -} // namespace platforms +template +AsioAddrType makeAddress(const char* pAddr, uint32_t scopeId) +{ + using namespace std; + typename AsioAddrType::bytes_type bytes; + copy(pAddr, pAddr + bytes.size(), begin(bytes)); + return AsioAddrType{bytes, scopeId}; +} + +} // namespace discovery } // namespace ableton diff --git a/tidal-link/link/include/ableton/discovery/InterfaceScanner.hpp b/tidal-link/link/include/ableton/discovery/InterfaceScanner.hpp index cb3adad56..c3a37f2b9 100644 --- a/tidal-link/link/include/ableton/discovery/InterfaceScanner.hpp +++ b/tidal-link/link/include/ableton/discovery/InterfaceScanner.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #include #include #include @@ -29,7 +29,7 @@ namespace ableton namespace discovery { -// Callback takes a range of asio::ip:address which is +// Callback takes a range of IpAddress which is // guaranteed to be sorted and unique template class InterfaceScanner @@ -64,7 +64,7 @@ class InterfaceScanner using namespace std; debug(mIo->log()) << "Scanning network interfaces"; // Rescan the hardware for available network interface addresses - vector addrs = mIo->scanNetworkInterfaces(); + vector addrs = mIo->scanNetworkInterfaces(); // Sort and unique them to guarantee consistent comparison sort(begin(addrs), end(addrs)); addrs.erase(unique(begin(addrs), end(addrs)), end(addrs)); diff --git a/tidal-link/link/include/ableton/discovery/IpV4Interface.hpp b/tidal-link/link/include/ableton/discovery/IpInterface.hpp similarity index 73% rename from tidal-link/link/include/ableton/discovery/IpV4Interface.hpp rename to tidal-link/link/include/ableton/discovery/IpInterface.hpp index 9967f5125..00a59db4c 100644 --- a/tidal-link/link/include/ableton/discovery/IpV4Interface.hpp +++ b/tidal-link/link/include/ableton/discovery/IpInterface.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #include namespace ableton @@ -27,9 +27,17 @@ namespace ableton namespace discovery { -inline asio::ip::udp::endpoint multicastEndpoint() +inline UdpEndpoint multicastEndpointV4() { - return {asio::ip::address_v4::from_string("224.76.78.75"), 20808}; + return {IpAddressV4::from_string("224.76.78.75"), 20808}; +} + +inline UdpEndpoint multicastEndpointV6(uint64_t scopeId) +{ + // This is a non-permanently-assigned link-local multicast address (RFC4291) + return { + ::LINK_ASIO_NAMESPACE::ip::make_address("ff12::8080%" + std::to_string(scopeId)), + 20808}; } // Type tags for dispatching between unicast and multicast packets @@ -41,22 +49,22 @@ struct UnicastTag }; template -class IpV4Interface +class IpInterface { public: using Socket = typename util::Injected::type::template Socket; - IpV4Interface(util::Injected io, const asio::ip::address_v4& addr) + IpInterface(util::Injected io, const IpAddress& addr) : mIo(std::move(io)) , mMulticastReceiveSocket(mIo->template openMulticastSocket(addr)) , mSendSocket(mIo->template openUnicastSocket(addr)) { } - IpV4Interface(const IpV4Interface&) = delete; - IpV4Interface& operator=(const IpV4Interface&) = delete; + IpInterface(const IpInterface&) = delete; + IpInterface& operator=(const IpInterface&) = delete; - IpV4Interface(IpV4Interface&& rhs) + IpInterface(IpInterface&& rhs) : mIo(std::move(rhs.mIo)) , mMulticastReceiveSocket(std::move(rhs.mMulticastReceiveSocket)) , mSendSocket(std::move(rhs.mSendSocket)) @@ -65,7 +73,7 @@ class IpV4Interface std::size_t send( - const uint8_t* const pData, const size_t numBytes, const asio::ip::udp::endpoint& to) + const uint8_t* const pData, const size_t numBytes, const UdpEndpoint& to) { return mSendSocket.send(pData, numBytes, to); } @@ -83,7 +91,7 @@ class IpV4Interface SocketReceiver(std::move(handler))); } - asio::ip::udp::endpoint endpoint() const + UdpEndpoint endpoint() const { return mSendSocket.endpoint(); } @@ -98,8 +106,7 @@ class IpV4Interface } template - void operator()( - const asio::ip::udp::endpoint& from, const It messageBegin, const It messageEnd) + void operator()(const UdpEndpoint& from, const It messageBegin, const It messageEnd) { mHandler(Tag{}, from, messageBegin, messageEnd); } @@ -113,8 +120,8 @@ class IpV4Interface }; template -IpV4Interface makeIpV4Interface( - util::Injected io, const asio::ip::address_v4& addr) +IpInterface makeIpInterface( + util::Injected io, const IpAddress& addr) { return {std::move(io), addr}; } diff --git a/tidal-link/link/include/ableton/discovery/NetworkByteStreamSerializable.hpp b/tidal-link/link/include/ableton/discovery/NetworkByteStreamSerializable.hpp index 49a119530..6a39bba92 100644 --- a/tidal-link/link/include/ableton/discovery/NetworkByteStreamSerializable.hpp +++ b/tidal-link/link/include/ableton/discovery/NetworkByteStreamSerializable.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #if defined(LINK_PLATFORM_MACOSX) #include #elif defined(LINK_PLATFORM_LINUX) diff --git a/tidal-link/link/include/ableton/discovery/Payload.hpp b/tidal-link/link/include/ableton/discovery/Payload.hpp index 1d48caa7e..f29467288 100644 --- a/tidal-link/link/include/ableton/discovery/Payload.hpp +++ b/tidal-link/link/include/ableton/discovery/Payload.hpp @@ -82,6 +82,11 @@ struct PayloadEntry template friend It toNetworkByteStream(const PayloadEntry& entry, It out) { + // Don't serialize Entry if its value is of size zero + if (sizeInByteStream(entry.value) == 0) + { + return out; + } return toNetworkByteStream( entry.value, toNetworkByteStream(entry.header, std::move(out))); } diff --git a/tidal-link/link/include/ableton/discovery/PeerGateway.hpp b/tidal-link/link/include/ableton/discovery/PeerGateway.hpp index db434394c..6b4db27c1 100644 --- a/tidal-link/link/include/ableton/discovery/PeerGateway.hpp +++ b/tidal-link/link/include/ableton/discovery/PeerGateway.hpp @@ -216,7 +216,7 @@ PeerGateway makePeerGateway( // IpV4 gateway types template using IpV4Messenger = UdpMessenger< - IpV4Interface::type&, v1::kMaxMessageSize>, + IpInterface::type&, v1::kMaxMessageSize>, StateQuery, IoContext>; @@ -226,11 +226,11 @@ using IpV4Gateway = PeerObserver, IoContext>; -// Factory function to bind a PeerGateway to an IpV4Interface with the given address. +// Factory function to bind a PeerGateway to an IpInterface with the given address. template IpV4Gateway makeIpV4Gateway( util::Injected io, - const asio::ip::address_v4& addr, + const IpAddress& addr, util::Injected observer, NodeState state) { @@ -240,7 +240,7 @@ IpV4Gateway makeIpV4Gateway( const uint8_t ttl = 5; const uint8_t ttlRatio = 20; - auto iface = makeIpV4Interface(injectRef(*io), addr); + auto iface = makeIpInterface(injectRef(*io), addr); auto messenger = makeUdpMessenger( injectVal(std::move(iface)), std::move(state), injectRef(*io), ttl, ttlRatio); diff --git a/tidal-link/link/include/ableton/discovery/PeerGateways.hpp b/tidal-link/link/include/ableton/discovery/PeerGateways.hpp index bdefbaef2..959d7fd29 100644 --- a/tidal-link/link/include/ableton/discovery/PeerGateways.hpp +++ b/tidal-link/link/include/ableton/discovery/PeerGateways.hpp @@ -19,8 +19,8 @@ #pragma once +#include #include -#include #include namespace ableton @@ -28,16 +28,17 @@ namespace ableton namespace discovery { -// GatewayFactory must have an operator()(NodeState, IoRef, asio::ip::address) +// GatewayFactory must have an operator()(NodeState, IoRef, IpAddress) // that constructs a new PeerGateway on a given interface address. template class PeerGateways { public: using IoType = typename util::Injected::type; - using Gateway = typename std::result_of, asio::ip::address)>::type; - using GatewayMap = std::map; + using Gateway = decltype(std::declval()(std::declval(), + std::declval>(), + std::declval())); + using GatewayMap = std::map; PeerGateways(const std::chrono::seconds rescanPeriod, NodeState state, @@ -86,7 +87,7 @@ class PeerGateways // If a gateway has become non-responsive or is throwing exceptions, // this method can be invoked to either fix it or discard it. - void repairGateway(const asio::ip::address& gatewayAddr) + void repairGateway(const IpAddress& gatewayAddr) { if (mpScannerCallback->mGateways.erase(gatewayAddr)) { @@ -111,18 +112,18 @@ class PeerGateways { using namespace std; // Get the set of current addresses. - vector curAddrs; + vector curAddrs; curAddrs.reserve(mGateways.size()); transform(std::begin(mGateways), std::end(mGateways), back_inserter(curAddrs), [](const typename GatewayMap::value_type& vt) { return vt.first; }); // Now use set_difference to determine the set of addresses that // are new and the set of cur addresses that are no longer there - vector newAddrs; + vector newAddrs; set_difference(std::begin(range), std::end(range), std::begin(curAddrs), std::end(curAddrs), back_inserter(newAddrs)); - vector staleAddrs; + vector staleAddrs; set_difference(std::begin(curAddrs), std::end(curAddrs), std::begin(range), std::end(range), back_inserter(staleAddrs)); @@ -137,12 +138,8 @@ class PeerGateways { try { - // Only handle v4 for now - if (addr.is_v4()) - { - info(mIo.log()) << "initializing peer gateway on interface " << addr; - mGateways.emplace(addr, mFactory(mState, util::injectRef(mIo), addr.to_v4())); - } + info(mIo.log()) << "initializing peer gateway on interface " << addr; + mGateways.emplace(addr, mFactory(mState, util::injectRef(mIo), addr)); } catch (const runtime_error& e) { diff --git a/tidal-link/link/include/ableton/discovery/Service.hpp b/tidal-link/link/include/ableton/discovery/Service.hpp index 8898fce43..678811d96 100644 --- a/tidal-link/link/include/ableton/discovery/Service.hpp +++ b/tidal-link/link/include/ableton/discovery/Service.hpp @@ -59,7 +59,7 @@ class Service // Repair the gateway with the given address if possible. Its // sockets may have been closed, for example, and the gateway needs // to be regenerated. - void repairGateway(const asio::ip::address& gatewayAddr) + void repairGateway(const IpAddress& gatewayAddr) { mGateways.repairGateway(gatewayAddr); } diff --git a/tidal-link/link/include/ableton/discovery/UdpMessenger.hpp b/tidal-link/link/include/ableton/discovery/UdpMessenger.hpp index c15c6943a..cca36ae4c 100644 --- a/tidal-link/link/include/ableton/discovery/UdpMessenger.hpp +++ b/tidal-link/link/include/ableton/discovery/UdpMessenger.hpp @@ -19,10 +19,10 @@ #pragma once -#include +#include +#include #include #include -#include #include #include #include @@ -37,15 +37,23 @@ namespace discovery // interface through which the sending failed. struct UdpSendException : std::runtime_error { - UdpSendException(const std::runtime_error& e, asio::ip::address ifAddr) + UdpSendException(const std::runtime_error& e, IpAddress ifAddr) : std::runtime_error(e.what()) , interfaceAddr(std::move(ifAddr)) { } - asio::ip::address interfaceAddr; + IpAddress interfaceAddr; }; +template +UdpEndpoint ipV6Endpoint(Interface& iface, const UdpEndpoint& endpoint) +{ + auto v6Address = endpoint.address().to_v6(); + v6Address.scope_id(iface.endpoint().address().to_v6().scope_id()); + return {v6Address, endpoint.port()}; +} + // Throws UdpSendException template void sendUdpMessage(Interface& iface, @@ -53,7 +61,7 @@ void sendUdpMessage(Interface& iface, const uint8_t ttl, const v1::MessageType messageType, const Payload& payload, - const asio::ip::udp::endpoint& to) + const UdpEndpoint& to) { using namespace std; v1::MessageBuffer buffer; @@ -176,8 +184,16 @@ class UdpMessenger void sendByeBye() { - sendUdpMessage( - *mInterface, mState.ident(), 0, v1::kByeBye, makePayload(), multicastEndpoint()); + if (mInterface->endpoint().address().is_v4()) + { + sendUdpMessage(*mInterface, mState.ident(), 0, v1::kByeBye, makePayload(), + multicastEndpointV4()); + } + if (mInterface->endpoint().address().is_v6()) + { + sendUdpMessage(*mInterface, mState.ident(), 0, v1::kByeBye, makePayload(), + multicastEndpointV6(mInterface->endpoint().address().to_v6().scope_id())); + } } void updateState(NodeState state) @@ -213,21 +229,29 @@ class UdpMessenger if (delay < milliseconds{1}) { debug(mIo->log()) << "Broadcasting state"; - sendPeerState(v1::kAlive, multicastEndpoint()); + if (mInterface->endpoint().address().is_v4()) + { + sendPeerState(v1::kAlive, multicastEndpointV4()); + } + if (mInterface->endpoint().address().is_v6()) + { + sendPeerState(v1::kAlive, + multicastEndpointV6(mInterface->endpoint().address().to_v6().scope_id())); + } } } - void sendPeerState( - const v1::MessageType messageType, const asio::ip::udp::endpoint& to) + void sendPeerState(const v1::MessageType messageType, const UdpEndpoint& to) { sendUdpMessage( *mInterface, mState.ident(), mTtl, messageType, toPayload(mState), to); mLastBroadcastTime = mTimer.now(); } - void sendResponse(const asio::ip::udp::endpoint& to) + void sendResponse(const UdpEndpoint& to) { - sendPeerState(v1::kResponse, to); + const auto endpoint = to.address().is_v4() ? to : ipV6Endpoint(*mInterface, to); + sendPeerState(v1::kResponse, endpoint); } template @@ -237,10 +261,8 @@ class UdpMessenger } template - void operator()(Tag tag, - const asio::ip::udp::endpoint& from, - const It messageBegin, - const It messageEnd) + void operator()( + Tag tag, const UdpEndpoint& from, const It messageBegin, const It messageEnd) { auto result = v1::parseMessageHeader(messageBegin, messageEnd); diff --git a/tidal-link/link/include/ableton/discovery/test/Interface.hpp b/tidal-link/link/include/ableton/discovery/test/Interface.hpp index f538856ff..9f11b7527 100644 --- a/tidal-link/link/include/ableton/discovery/test/Interface.hpp +++ b/tidal-link/link/include/ableton/discovery/test/Interface.hpp @@ -31,9 +31,8 @@ namespace test class Interface { public: - void send(const uint8_t* const bytes, - const size_t numBytes, - const asio::ip::udp::endpoint& endpoint) + void send( + const uint8_t* const bytes, const size_t numBytes, const UdpEndpoint& endpoint) { sentMessages.push_back( std::make_pair(std::vector{bytes, bytes + numBytes}, endpoint)); @@ -42,31 +41,30 @@ class Interface template void receive(Callback callback, Tag tag) { - mCallback = [callback, tag](const asio::ip::udp::endpoint& from, - const std::vector& buffer) { + mCallback = [callback, tag]( + const UdpEndpoint& from, const std::vector& buffer) { callback(tag, from, begin(buffer), end(buffer)); }; } template - void incomingMessage( - const asio::ip::udp::endpoint& from, It messageBegin, It messageEnd) + void incomingMessage(const UdpEndpoint& from, It messageBegin, It messageEnd) { std::vector buffer{messageBegin, messageEnd}; mCallback(from, buffer); } - asio::ip::udp::endpoint endpoint() const + UdpEndpoint endpoint() const { - return asio::ip::udp::endpoint({}, 0); + return UdpEndpoint({}, 0); } - using SentMessage = std::pair, asio::ip::udp::endpoint>; + using SentMessage = std::pair, UdpEndpoint>; std::vector sentMessages; private: using ReceiveCallback = - std::function&)>; + std::function&)>; ReceiveCallback mCallback; }; diff --git a/tidal-link/link/include/ableton/discovery/test/Socket.hpp b/tidal-link/link/include/ableton/discovery/test/Socket.hpp index 2983bcefb..513d1a043 100644 --- a/tidal-link/link/include/ableton/discovery/test/Socket.hpp +++ b/tidal-link/link/include/ableton/discovery/test/Socket.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #include #include @@ -37,12 +37,12 @@ class Socket { } - friend void configureUnicastSocket(Socket&, const asio::ip::address_v4&) + friend void configureUnicastSocket(Socket&, const IpAddressV4&) { } std::size_t send( - const uint8_t* const pData, const size_t numBytes, const asio::ip::udp::endpoint& to) + const uint8_t* const pData, const size_t numBytes, const discovery::UdpEndpoint& to) { sentMessages.push_back( std::make_pair(std::vector{pData, pData + numBytes}, to)); @@ -52,31 +52,29 @@ class Socket template void receive(Handler handler) { - mCallback = [handler](const asio::ip::udp::endpoint& from, - const std::vector& buffer) { + mCallback = [handler](const UdpEndpoint& from, const std::vector& buffer) { handler(from, begin(buffer), end(buffer)); }; } template - void incomingMessage( - const asio::ip::udp::endpoint& from, It messageBegin, It messageEnd) + void incomingMessage(const UdpEndpoint& from, It messageBegin, It messageEnd) { std::vector buffer{messageBegin, messageEnd}; mCallback(from, buffer); } - asio::ip::udp::endpoint endpoint() const + UdpEndpoint endpoint() const { - return asio::ip::udp::endpoint({}, 0); + return UdpEndpoint({}, 0); } - using SentMessage = std::pair, asio::ip::udp::endpoint>; + using SentMessage = std::pair, UdpEndpoint>; std::vector sentMessages; private: using ReceiveCallback = - std::function&)>; + std::function&)>; ReceiveCallback mCallback; }; diff --git a/tidal-link/link/include/ableton/link/Controller.hpp b/tidal-link/link/include/ableton/link/Controller.hpp index 2922f46f0..a0a3c1454 100644 --- a/tidal-link/link/include/ableton/link/Controller.hpp +++ b/tidal-link/link/include/ableton/link/Controller.hpp @@ -717,18 +717,11 @@ class Controller { GatewayPtr operator()(std::pair state, util::Injected io, - const asio::ip::address& addr) + const discovery::IpAddress& addr) { - if (addr.is_v4()) - { - return GatewayPtr{new ControllerGateway{std::move(io), addr.to_v4(), - util::injectVal(makeGatewayObserver(mController.mPeers, addr)), - std::move(state.first), std::move(state.second), mController.mClock}}; - } - else - { - throw std::runtime_error("Could not create peer gateway on non-ipV4 address"); - } + return GatewayPtr{new ControllerGateway{std::move(io), addr, + util::injectVal(makeGatewayObserver(mController.mPeers, addr)), + std::move(state.first), std::move(state.second), mController.mClock}}; } Controller& mController; diff --git a/tidal-link/link/include/ableton/link/Gateway.hpp b/tidal-link/link/include/ableton/link/Gateway.hpp index 16d6abdea..635227285 100644 --- a/tidal-link/link/include/ableton/link/Gateway.hpp +++ b/tidal-link/link/include/ableton/link/Gateway.hpp @@ -33,7 +33,7 @@ class Gateway { public: Gateway(util::Injected io, - asio::ip::address_v4 addr, + discovery::IpAddress addr, util::Injected observer, NodeState nodeState, GhostXForm ghostXForm, diff --git a/tidal-link/link/include/ableton/link/Measurement.hpp b/tidal-link/link/include/ableton/link/Measurement.hpp index 299ca24b6..6867360ae 100644 --- a/tidal-link/link/include/ableton/link/Measurement.hpp +++ b/tidal-link/link/include/ableton/link/Measurement.hpp @@ -45,7 +45,7 @@ struct Measurement Measurement(const PeerState& state, Callback callback, - asio::ip::address_v4 address, + discovery::IpAddress address, Clock clock, util::Injected io) : mIo(std::move(io)) @@ -69,12 +69,11 @@ struct Measurement Impl(const PeerState& state, Callback callback, - asio::ip::address_v4 address, + discovery::IpAddress address, Clock clock, util::Injected io) : mSocket(io->template openUnicastSocket(address)) , mSessionId(state.nodeState.sessionId) - , mEndpoint(state.endpoint) , mCallback(std::move(callback)) , mClock(std::move(clock)) , mTimer(io->makeTimer()) @@ -82,6 +81,17 @@ struct Measurement , mLog(channel(io->log(), "Measurement on gateway@" + address.to_string())) , mSuccess(false) { + if (state.endpoint.address().is_v4()) + { + mEndpoint = state.endpoint; + } + else + { + auto v6Address = state.endpoint.address().to_v6(); + v6Address.scope_id(address.to_v6().scope_id()); + mEndpoint = {v6Address, state.endpoint.port()}; + } + const auto ht = HostTime{mClock.micros()}; sendPing(mEndpoint, discovery::makePayload(ht)); resetTimer(); @@ -117,7 +127,7 @@ struct Measurement // Operator to handle incoming messages on the interface template void operator()( - const asio::ip::udp::endpoint& from, const It messageBegin, const It messageEnd) + const discovery::UdpEndpoint& from, const It messageBegin, const It messageEnd) { using namespace std; const auto result = v1::parseMessageHeader(messageBegin, messageEnd); @@ -197,7 +207,7 @@ struct Measurement } template - void sendPing(asio::ip::udp::endpoint to, const Payload& payload) + void sendPing(discovery::UdpEndpoint to, const Payload& payload) { v1::MessageBuffer buffer; const auto msgBegin = std::begin(buffer); @@ -232,7 +242,7 @@ struct Measurement Socket mSocket; SessionId mSessionId; - asio::ip::udp::endpoint mEndpoint; + discovery::UdpEndpoint mEndpoint; std::vector mData; Callback mCallback; Clock mClock; diff --git a/tidal-link/link/include/ableton/link/MeasurementEndpointV4.hpp b/tidal-link/link/include/ableton/link/MeasurementEndpointV4.hpp index 958aad958..fbec55f3c 100644 --- a/tidal-link/link/include/ableton/link/MeasurementEndpointV4.hpp +++ b/tidal-link/link/include/ableton/link/MeasurementEndpointV4.hpp @@ -19,8 +19,9 @@ #pragma once +#include #include -#include +#include namespace ableton { @@ -35,6 +36,10 @@ struct MeasurementEndpointV4 // Model the NetworkByteStreamSerializable concept friend std::uint32_t sizeInByteStream(const MeasurementEndpointV4 mep) { + if (mep.ep.address().is_v6()) + { + return 0; + } return discovery::sizeInByteStream( static_cast(mep.ep.address().to_v4().to_ulong())) + discovery::sizeInByteStream(mep.ep.port()); @@ -43,6 +48,7 @@ struct MeasurementEndpointV4 template friend It toNetworkByteStream(const MeasurementEndpointV4 mep, It out) { + assert(mep.ep.address().is_v4()); return discovery::toNetworkByteStream(mep.ep.port(), discovery::toNetworkByteStream( static_cast(mep.ep.address().to_v4().to_ulong()), std::move(out))); @@ -58,11 +64,11 @@ struct MeasurementEndpointV4 std::move(addrRes.second), end); return make_pair( MeasurementEndpointV4{ - {asio::ip::address_v4{std::move(addrRes.first)}, std::move(portRes.first)}}, + {discovery::IpAddressV4{std::move(addrRes.first)}, std::move(portRes.first)}}, std::move(portRes.second)); } - asio::ip::udp::endpoint ep; + discovery::UdpEndpoint ep; }; } // namespace link diff --git a/tidal-link/link/include/ableton/link/MeasurementEndpointV6.hpp b/tidal-link/link/include/ableton/link/MeasurementEndpointV6.hpp new file mode 100644 index 000000000..6c319ed1f --- /dev/null +++ b/tidal-link/link/include/ableton/link/MeasurementEndpointV6.hpp @@ -0,0 +1,75 @@ +/* Copyright 2023, Ableton AG, Berlin. All rights reserved. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 2 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + * + * If you would like to incorporate Link into a proprietary software application, + * please contact . + */ + +#pragma once + +#include +#include +#include + +namespace ableton +{ +namespace link +{ + +struct MeasurementEndpointV6 +{ + static const std::int32_t key = 'mep6'; + static_assert(key == 0x6d657036, "Unexpected byte order"); + + // Model the NetworkByteStreamSerializable concept + friend std::uint32_t sizeInByteStream(const MeasurementEndpointV6 mep) + { + if (mep.ep.address().is_v4()) + { + return 0; + } + return discovery::sizeInByteStream(mep.ep.address().to_v6().to_bytes()) + + discovery::sizeInByteStream(mep.ep.port()); + } + + template + friend It toNetworkByteStream(const MeasurementEndpointV6 mep, It out) + { + assert(mep.ep.address().is_v6()); + return discovery::toNetworkByteStream( + mep.ep.port(), discovery::toNetworkByteStream( + mep.ep.address().to_v6().to_bytes(), std::move(out))); + } + + template + static std::pair fromNetworkByteStream(It begin, It end) + { + using namespace std; + auto addrRes = + discovery::Deserialize::fromNetworkByteStream( + std::move(begin), end); + auto portRes = discovery::Deserialize::fromNetworkByteStream( + std::move(addrRes.second), end); + return make_pair( + MeasurementEndpointV6{ + {discovery::IpAddressV6{std::move(addrRes.first)}, std::move(portRes.first)}}, + std::move(portRes.second)); + } + + discovery::UdpEndpoint ep; +}; + +} // namespace link +} // namespace ableton diff --git a/tidal-link/link/include/ableton/link/MeasurementService.hpp b/tidal-link/link/include/ableton/link/MeasurementService.hpp index 22bf46d52..5ed77ba5f 100644 --- a/tidal-link/link/include/ableton/link/MeasurementService.hpp +++ b/tidal-link/link/include/ableton/link/MeasurementService.hpp @@ -42,7 +42,7 @@ class MeasurementService using IoType = util::Injected; using MeasurementInstance = Measurement; - MeasurementService(asio::ip::address_v4 address, + MeasurementService(discovery::IpAddress address, SessionId sessionId, GhostXForm ghostXForm, Clock clock, @@ -65,7 +65,7 @@ class MeasurementService mPingResponder.updateNodeState(sessionId, xform); } - asio::ip::udp::endpoint endpoint() const + discovery::UdpEndpoint endpoint() const { return mPingResponder.endpoint(); } @@ -77,7 +77,7 @@ class MeasurementService using namespace std; const auto nodeId = state.nodeState.nodeId; - auto addr = mPingResponder.endpoint().address().to_v4(); + auto addr = mPingResponder.endpoint().address(); auto callback = CompletionCallback{*this, nodeId, handler}; try diff --git a/tidal-link/link/include/ableton/link/PeerState.hpp b/tidal-link/link/include/ableton/link/PeerState.hpp index 291c27891..1cad18dcf 100644 --- a/tidal-link/link/include/ableton/link/PeerState.hpp +++ b/tidal-link/link/include/ableton/link/PeerState.hpp @@ -21,6 +21,7 @@ #include #include +#include #include namespace ableton @@ -61,12 +62,16 @@ struct PeerState return lhs.nodeState == rhs.nodeState && lhs.endpoint == rhs.endpoint; } - friend auto toPayload(const PeerState& state) - -> decltype(std::declval() - + discovery::makePayload(MeasurementEndpointV4{{}})) + friend auto toPayload(const PeerState& state) -> decltype( + std::declval() + discovery::makePayload(MeasurementEndpointV4{{}}) + + discovery::makePayload(MeasurementEndpointV6{{}})) { + // This implements a switch if either an IPv4 or IPv6 endpoint is serialized. + // MeasurementEndpoints that contain an endpoint that does not match the IP protocol + // version return a sizeInByteStream() of zero and won't be serialized. return toPayload(state.nodeState) - + discovery::makePayload(MeasurementEndpointV4{state.endpoint}); + + discovery::makePayload(MeasurementEndpointV4{state.endpoint}) + + discovery::makePayload(MeasurementEndpointV6{state.endpoint}); } template @@ -75,15 +80,16 @@ struct PeerState using namespace std; auto peerState = PeerState{NodeState::fromPayload(std::move(id), begin, end), {}}; - discovery::parsePayload( - std::move(begin), std::move(end), [&peerState](MeasurementEndpointV4 me4) { - peerState.endpoint = std::move(me4.ep); - }); + discovery::parsePayload( + std::move(begin), std::move(end), + [&peerState](MeasurementEndpointV4 me4) { peerState.endpoint = std::move(me4.ep); }, + [&peerState]( + MeasurementEndpointV6 me6) { peerState.endpoint = std::move(me6.ep); }); return peerState; } NodeState nodeState; - asio::ip::udp::endpoint endpoint; + discovery::UdpEndpoint endpoint; }; } // namespace link diff --git a/tidal-link/link/include/ableton/link/Peers.hpp b/tidal-link/link/include/ableton/link/Peers.hpp index b633ec363..e35670021 100644 --- a/tidal-link/link/include/ableton/link/Peers.hpp +++ b/tidal-link/link/include/ableton/link/Peers.hpp @@ -47,7 +47,7 @@ class Peers struct Impl; public: - using Peer = std::pair; + using Peer = std::pair; Peers(util::Injected io, SessionMembershipCallback membership, @@ -119,7 +119,7 @@ class Peers using GatewayObserverNodeState = PeerState; using GatewayObserverNodeId = NodeId; - GatewayObserver(std::shared_ptr pImpl, asio::ip::address addr) + GatewayObserver(std::shared_ptr pImpl, discovery::IpAddress addr) : mpImpl(std::move(pImpl)) , mAddr(std::move(addr)) { @@ -165,11 +165,11 @@ class Peers } std::shared_ptr mpImpl; - asio::ip::address mAddr; + discovery::IpAddress mAddr; }; // Factory function for the gateway observer - friend GatewayObserver makeGatewayObserver(Peers& peers, asio::ip::address addr) + friend GatewayObserver makeGatewayObserver(Peers& peers, discovery::IpAddress addr) { return GatewayObserver{peers.mpImpl, std::move(addr)}; } @@ -188,7 +188,7 @@ class Peers { } - void sawPeerOnGateway(PeerState peerState, asio::ip::address gatewayAddr) + void sawPeerOnGateway(PeerState peerState, discovery::IpAddress gatewayAddr) { using namespace std; @@ -255,7 +255,7 @@ class Peers } } - void peerLeftGateway(const NodeId& nodeId, const asio::ip::address& gatewayAddr) + void peerLeftGateway(const NodeId& nodeId, const discovery::IpAddress& gatewayAddr) { using namespace std; @@ -276,7 +276,7 @@ class Peers } } - void gatewayClosed(const asio::ip::address& gatewayAddr) + void gatewayClosed(const discovery::IpAddress& gatewayAddr) { using namespace std; diff --git a/tidal-link/link/include/ableton/link/PingResponder.hpp b/tidal-link/link/include/ableton/link/PingResponder.hpp index a8f455fe5..4d107bd8a 100644 --- a/tidal-link/link/include/ableton/link/PingResponder.hpp +++ b/tidal-link/link/include/ableton/link/PingResponder.hpp @@ -40,7 +40,7 @@ class PingResponder using Socket = typename IoType::type::template Socket; public: - PingResponder(asio::ip::address_v4 address, + PingResponder(discovery::IpAddress address, SessionId sessionId, GhostXForm ghostXForm, Clock clock, @@ -64,12 +64,12 @@ class PingResponder mpImpl->mGhostXForm = std::move(xform); } - asio::ip::udp::endpoint endpoint() const + discovery::UdpEndpoint endpoint() const { return mpImpl->mSocket.endpoint(); } - asio::ip::address address() const + discovery::IpAddress address() const { return endpoint().address(); } @@ -82,7 +82,7 @@ class PingResponder private: struct Impl : std::enable_shared_from_this { - Impl(asio::ip::address_v4 address, + Impl(discovery::IpAddress address, SessionId sessionId, GhostXForm ghostXForm, Clock clock, @@ -102,7 +102,7 @@ class PingResponder // Operator to handle incoming messages on the interface template - void operator()(const asio::ip::udp::endpoint& from, const It begin, const It end) + void operator()(const discovery::UdpEndpoint& from, const It begin, const It end) { using namespace discovery; @@ -136,7 +136,7 @@ class PingResponder } template - void reply(It begin, It end, const asio::ip::udp::endpoint& to) + void reply(It begin, It end, const discovery::UdpEndpoint& to) { using namespace discovery; diff --git a/tidal-link/link/include/ableton/link/SessionState.hpp b/tidal-link/link/include/ableton/link/SessionState.hpp index 183c8a9c6..616a5b40c 100644 --- a/tidal-link/link/include/ableton/link/SessionState.hpp +++ b/tidal-link/link/include/ableton/link/SessionState.hpp @@ -23,6 +23,7 @@ #include #include #include +#include namespace ableton { diff --git a/tidal-link/link/include/ableton/platforms/Config.hpp b/tidal-link/link/include/ableton/platforms/Config.hpp index 9deba58bd..22f4bd30e 100644 --- a/tidal-link/link/include/ableton/platforms/Config.hpp +++ b/tidal-link/link/include/ableton/platforms/Config.hpp @@ -62,31 +62,33 @@ namespace platform using Clock = platforms::windows::Clock; using Random = platforms::stl::Random; #if defined(LINK_WINDOWS_SETTHREADDESCRIPTION) -using IoContext = platforms::asio::Context; +using IoContext = + platforms::LINK_ASIO_NAMESPACE::Context; #else using IoContext = - platforms::asio::Context; + platforms::LINK_ASIO_NAMESPACE::Context; #endif #elif defined(LINK_PLATFORM_MACOSX) using Clock = platforms::darwin::Clock; -using IoContext = platforms::asio::Context; using Random = platforms::stl::Random; #elif defined(LINK_PLATFORM_LINUX) -using Clock = platforms::linux::ClockMonotonicRaw; +using Clock = platforms::linux_::ClockMonotonicRaw; using Random = platforms::stl::Random; #ifdef __linux__ -using IoContext = platforms::asio::Context; + platforms::linux_::ThreadFactory>; #else using IoContext = - platforms::asio::Context; + platforms::LINK_ASIO_NAMESPACE::Context; #endif #elif defined(ESP_PLATFORM) diff --git a/tidal-link/link/include/ableton/platforms/asio/AsioTimer.hpp b/tidal-link/link/include/ableton/platforms/asio/AsioTimer.hpp index e2c71b011..76bca025b 100644 --- a/tidal-link/link/include/ableton/platforms/asio/AsioTimer.hpp +++ b/tidal-link/link/include/ableton/platforms/asio/AsioTimer.hpp @@ -27,7 +27,7 @@ namespace ableton { namespace platforms { -namespace asio +namespace LINK_ASIO_NAMESPACE { // This implementation is based on the boost::asio::system_timer concept. @@ -41,11 +41,14 @@ namespace asio class AsioTimer { public: - using ErrorCode = ::asio::error_code; + using ErrorCode = ::LINK_ASIO_NAMESPACE::error_code; using TimePoint = std::chrono::system_clock::time_point; + using IoService = ::LINK_ASIO_NAMESPACE::io_service; + using SystemTimer = ::LINK_ASIO_NAMESPACE::system_timer; - AsioTimer(::asio::io_service& io) - : mpTimer(new ::asio::system_timer(io)) + + AsioTimer(IoService& io) + : mpTimer(new SystemTimer(io)) , mpAsyncHandler(std::make_shared()) { } @@ -123,10 +126,10 @@ class AsioTimer std::function mpHandler; }; - std::unique_ptr<::asio::system_timer> mpTimer; + std::unique_ptr mpTimer; std::shared_ptr mpAsyncHandler; }; -} // namespace asio +} // namespace LINK_ASIO_NAMESPACE } // namespace platforms } // namespace ableton diff --git a/tidal-link/link/include/ableton/platforms/asio/AsioWrapper.hpp b/tidal-link/link/include/ableton/platforms/asio/AsioWrapper.hpp index 1f3dc4d4e..2ea362a5e 100644 --- a/tidal-link/link/include/ableton/platforms/asio/AsioWrapper.hpp +++ b/tidal-link/link/include/ableton/platforms/asio/AsioWrapper.hpp @@ -26,12 +26,19 @@ * by Link. */ -#if !defined(ESP_PLATFORM) +#if defined(ESP_PLATFORM) + +#define LINK_ASIO_NAMESPACE asio + +#else + #pragma push_macro("ASIO_STANDALONE") -#define ASIO_STANDALONE 1 #pragma push_macro("ASIO_NO_TYPEID") #define ASIO_NO_TYPEID 1 +#define asio link_asio_1_28_0 +#define LINK_ASIO_NAMESPACE link_asio_1_28_0 +#define ASIO_STANDALONE 1 #endif #if defined(LINK_PLATFORM_WINDOWS) @@ -75,11 +82,6 @@ #pragma pop_macro("INCL_EXTRA_HTON_FUNCTIONS") #endif -#if !defined(ESP_PLATFORM) -#pragma pop_macro("ASIO_STANDALONE") -#pragma pop_macro("ASIO_NO_TYPEID") -#endif - #if defined(_MSC_VER) #pragma warning(pop) #undef _SCL_SECURE_NO_WARNINGS @@ -88,3 +90,5 @@ #if defined(__clang__) #pragma clang diagnostic pop #endif + +#undef asio diff --git a/tidal-link/link/include/ableton/platforms/asio/Context.hpp b/tidal-link/link/include/ableton/platforms/asio/Context.hpp index 7c10a4bc5..f0909df1f 100644 --- a/tidal-link/link/include/ableton/platforms/asio/Context.hpp +++ b/tidal-link/link/include/ableton/platforms/asio/Context.hpp @@ -19,9 +19,8 @@ #pragma once -#include +#include #include -#include #include #include #include @@ -31,7 +30,7 @@ namespace ableton { namespace platforms { -namespace asio +namespace LINK_ASIO_NAMESPACE { namespace { @@ -51,7 +50,7 @@ template @@ -59,7 +58,9 @@ class Context LockFreeCallbackDispatcher; template - using Socket = asio::Socket; + using Socket = Socket; + using IoService = ::LINK_ASIO_NAMESPACE::io_service; + using Work = IoService::work; Context() : Context(DefaultHandler{}) @@ -68,11 +69,11 @@ class Context template explicit Context(ExceptionHandler exceptHandler) - : mpService(new ::asio::io_service()) - , mpWork(new ::asio::io_service::work(*mpService)) + : mpService(new IoService()) + , mpWork(new Work(*mpService)) { mThread = ThreadFactoryT::makeThread("Link Main", - [](::asio::io_service& service, ExceptionHandler handler) { + [](IoService& service, ExceptionHandler handler) { for (;;) { try @@ -121,34 +122,79 @@ class Context template - Socket openUnicastSocket(const ::asio::ip::address_v4& addr) + Socket openUnicastSocket(const discovery::IpAddress addr) { - auto socket = Socket{*mpService}; + auto socket = + addr.is_v4() ? Socket{*mpService, ::LINK_ASIO_NAMESPACE::ip::udp::v4()} + : Socket{*mpService, ::LINK_ASIO_NAMESPACE::ip::udp::v6()}; socket.mpImpl->mSocket.set_option( - ::asio::ip::multicast::enable_loopback(addr.is_loopback())); - socket.mpImpl->mSocket.set_option(::asio::ip::multicast::outbound_interface(addr)); - socket.mpImpl->mSocket.bind(::asio::ip::udp::endpoint{addr, 0}); + ::LINK_ASIO_NAMESPACE::ip::multicast::enable_loopback(addr.is_loopback())); + if (addr.is_v4()) + { + socket.mpImpl->mSocket.set_option( + ::LINK_ASIO_NAMESPACE::ip::multicast::outbound_interface(addr.to_v4())); + socket.mpImpl->mSocket.bind( + ::LINK_ASIO_NAMESPACE::ip::udp::endpoint{addr.to_v4(), 0}); + } + else if (addr.is_v6()) + { + const auto scopeId = addr.to_v6().scope_id(); + socket.mpImpl->mSocket.set_option( + ::LINK_ASIO_NAMESPACE::ip::multicast::outbound_interface( + static_cast(scopeId))); + socket.mpImpl->mSocket.bind( + ::LINK_ASIO_NAMESPACE::ip::udp::endpoint{addr.to_v6(), 0}); + } + else + { + throw(std::runtime_error("Unknown Protocol")); + } return socket; } template - Socket openMulticastSocket(const ::asio::ip::address_v4& addr) + Socket openMulticastSocket(const discovery::IpAddress& addr) { - auto socket = Socket{*mpService}; - socket.mpImpl->mSocket.set_option(::asio::ip::udp::socket::reuse_address(true)); + auto socket = + addr.is_v4() ? Socket{*mpService, ::LINK_ASIO_NAMESPACE::ip::udp::v4()} + : Socket{*mpService, ::LINK_ASIO_NAMESPACE::ip::udp::v6()}; + + socket.mpImpl->mSocket.set_option( + ::LINK_ASIO_NAMESPACE::ip::udp::socket::reuse_address(true)); socket.mpImpl->mSocket.set_option( - ::asio::socket_base::broadcast(!addr.is_loopback())); + ::LINK_ASIO_NAMESPACE::socket_base::broadcast(!addr.is_loopback())); socket.mpImpl->mSocket.set_option( - ::asio::ip::multicast::enable_loopback(addr.is_loopback())); - socket.mpImpl->mSocket.set_option(::asio::ip::multicast::outbound_interface(addr)); - socket.mpImpl->mSocket.bind({::asio::ip::address::from_string("0.0.0.0"), - discovery::multicastEndpoint().port()}); - socket.mpImpl->mSocket.set_option(::asio::ip::multicast::join_group( - discovery::multicastEndpoint().address().to_v4(), addr)); + ::LINK_ASIO_NAMESPACE::ip::multicast::enable_loopback(addr.is_loopback())); + + if (addr.is_v4()) + { + socket.mpImpl->mSocket.set_option( + ::LINK_ASIO_NAMESPACE::ip::multicast::outbound_interface(addr.to_v4())); + socket.mpImpl->mSocket.bind({::LINK_ASIO_NAMESPACE::ip::address_v4::any(), + discovery::multicastEndpointV4().port()}); + socket.mpImpl->mSocket.set_option(::LINK_ASIO_NAMESPACE::ip::multicast::join_group( + discovery::multicastEndpointV4().address().to_v4(), addr.to_v4())); + } + else if (addr.is_v6()) + { + const auto scopeId = addr.to_v6().scope_id(); + socket.mpImpl->mSocket.set_option( + ::LINK_ASIO_NAMESPACE::ip::multicast::outbound_interface( + static_cast(scopeId))); + const auto multicastEndpoint = discovery::multicastEndpointV6(scopeId); + socket.mpImpl->mSocket.bind( + {::LINK_ASIO_NAMESPACE::ip::address_v6::any(), multicastEndpoint.port()}); + socket.mpImpl->mSocket.set_option(::LINK_ASIO_NAMESPACE::ip::multicast::join_group( + multicastEndpoint.address().to_v6(), scopeId)); + } + else + { + throw(std::runtime_error("Unknown Protocol")); + } return socket; } - std::vector<::asio::ip::address> scanNetworkInterfaces() + std::vector scanNetworkInterfaces() { return mScanIpIfAddrs(); } @@ -184,13 +230,13 @@ class Context } }; - std::unique_ptr<::asio::io_service> mpService; - std::unique_ptr<::asio::io_service::work> mpWork; + std::unique_ptr<::LINK_ASIO_NAMESPACE::io_service> mpService; + std::unique_ptr<::LINK_ASIO_NAMESPACE::io_service::work> mpWork; std::thread mThread; Log mLog; ScanIpIfAddrs mScanIpIfAddrs; }; -} // namespace asio +} // namespace LINK_ASIO_NAMESPACE } // namespace platforms } // namespace ableton diff --git a/tidal-link/link/include/ableton/platforms/asio/LockFreeCallbackDispatcher.hpp b/tidal-link/link/include/ableton/platforms/asio/LockFreeCallbackDispatcher.hpp index 189a6f7ce..e23574713 100644 --- a/tidal-link/link/include/ableton/platforms/asio/LockFreeCallbackDispatcher.hpp +++ b/tidal-link/link/include/ableton/platforms/asio/LockFreeCallbackDispatcher.hpp @@ -27,7 +27,7 @@ namespace ableton { namespace platforms { -namespace asio +namespace LINK_ASIO_NAMESPACE { // Utility to signal invocation of a callback on another thread in a lock free manner. @@ -83,6 +83,6 @@ class LockFreeCallbackDispatcher std::thread mThread; }; -} // namespace asio +} // namespace LINK_ASIO_NAMESPACE } // namespace platforms } // namespace ableton diff --git a/tidal-link/link/include/ableton/platforms/asio/Socket.hpp b/tidal-link/link/include/ableton/platforms/asio/Socket.hpp index 8992f6d00..4fa469230 100644 --- a/tidal-link/link/include/ableton/platforms/asio/Socket.hpp +++ b/tidal-link/link/include/ableton/platforms/asio/Socket.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #include #include #include @@ -28,14 +28,14 @@ namespace ableton { namespace platforms { -namespace asio +namespace LINK_ASIO_NAMESPACE { template struct Socket { - Socket(::asio::io_service& io) - : mpImpl(std::make_shared(io)) + Socket(::LINK_ASIO_NAMESPACE::io_service& io, ::LINK_ASIO_NAMESPACE::ip::udp protocol) + : mpImpl(std::make_shared(io, protocol)) { } @@ -47,12 +47,11 @@ struct Socket { } - std::size_t send(const uint8_t* const pData, - const size_t numBytes, - const ::asio::ip::udp::endpoint& to) + std::size_t send( + const uint8_t* const pData, const size_t numBytes, const discovery::UdpEndpoint& to) { assert(numBytes < MaxPacketSize); - return mpImpl->mSocket.send_to(::asio::buffer(pData, numBytes), to); + return mpImpl->mSocket.send_to(::LINK_ASIO_NAMESPACE::buffer(pData, numBytes), to); } template @@ -60,19 +59,19 @@ struct Socket { mpImpl->mHandler = std::move(handler); mpImpl->mSocket.async_receive_from( - ::asio::buffer(mpImpl->mReceiveBuffer, MaxPacketSize), mpImpl->mSenderEndpoint, - util::makeAsyncSafe(mpImpl)); + ::LINK_ASIO_NAMESPACE::buffer(mpImpl->mReceiveBuffer, MaxPacketSize), + mpImpl->mSenderEndpoint, util::makeAsyncSafe(mpImpl)); } - ::asio::ip::udp::endpoint endpoint() const + discovery::UdpEndpoint endpoint() const { return mpImpl->mSocket.local_endpoint(); } struct Impl { - Impl(::asio::io_service& io) - : mSocket(io, ::asio::ip::udp::v4()) + Impl(::LINK_ASIO_NAMESPACE::io_service& io, ::LINK_ASIO_NAMESPACE::ip::udp protocol) + : mSocket(io, protocol) { } @@ -80,12 +79,13 @@ struct Socket { // Ignore error codes in shutdown and close as the socket may // have already been forcibly closed - ::asio::error_code ec; - mSocket.shutdown(::asio::ip::udp::socket::shutdown_both, ec); + ::LINK_ASIO_NAMESPACE::error_code ec; + mSocket.shutdown(::LINK_ASIO_NAMESPACE::ip::udp::socket::shutdown_both, ec); mSocket.close(ec); } - void operator()(const ::asio::error_code& error, const std::size_t numBytes) + void operator()( + const ::LINK_ASIO_NAMESPACE::error_code& error, const std::size_t numBytes) { if (!error && numBytes > 0 && numBytes <= MaxPacketSize) { @@ -94,17 +94,17 @@ struct Socket } } - ::asio::ip::udp::socket mSocket; - ::asio::ip::udp::endpoint mSenderEndpoint; + discovery::UdpSocket mSocket; + discovery::UdpEndpoint mSenderEndpoint; using Buffer = std::array; Buffer mReceiveBuffer; using ByteIt = typename Buffer::const_iterator; - std::function mHandler; + std::function mHandler; }; std::shared_ptr mpImpl; }; -} // namespace asio +} // namespace LINK_ASIO_NAMESPACE } // namespace platforms } // namespace ableton diff --git a/tidal-link/link/include/ableton/platforms/darwin/Clock.hpp b/tidal-link/link/include/ableton/platforms/darwin/Clock.hpp index dd40ff4b2..3164e68c9 100644 --- a/tidal-link/link/include/ableton/platforms/darwin/Clock.hpp +++ b/tidal-link/link/include/ableton/platforms/darwin/Clock.hpp @@ -19,6 +19,7 @@ #pragma once +#include #include #include @@ -49,6 +50,8 @@ struct Clock Ticks microsToTicks(const Micros micros) const { + // Negative Micros can not be represented in Ticks + assert(micros.count() >= 0); return static_cast(micros.count() / mTicksToMicros); } diff --git a/tidal-link/link/include/ableton/platforms/esp32/Context.hpp b/tidal-link/link/include/ableton/platforms/esp32/Context.hpp index 0c1cd00b5..ccf02fe5f 100644 --- a/tidal-link/link/include/ableton/platforms/esp32/Context.hpp +++ b/tidal-link/link/include/ableton/platforms/esp32/Context.hpp @@ -19,12 +19,12 @@ #pragma once -#include +#include +#include #include -#include #include #include -#include +#include #include #include @@ -40,7 +40,6 @@ class Context { class ServiceRunner { - static void run(void* userParams) { auto runner = static_cast(userParams); @@ -60,11 +59,7 @@ class Context static void IRAM_ATTR timerIsr(void* userParam) { static BaseType_t xHigherPriorityTaskWoken = pdFALSE; - - timer_group_clr_intr_status_in_isr(TIMER_GROUP_0, TIMER_1); - timer_group_enable_alarm_in_isr(TIMER_GROUP_0, TIMER_1); - - vTaskNotifyGiveFromISR(userParam, &xHigherPriorityTaskWoken); + vTaskNotifyGiveFromISR(*((TaskHandle_t*)userParam), &xHigherPriorityTaskWoken); if (xHigherPriorityTaskWoken) { portYIELD_FROM_ISR(); @@ -79,24 +74,21 @@ class Context xTaskCreatePinnedToCore(run, "link", 8192, this, 2 | portPRIVILEGE_BIT, &mTaskHandle, LINK_ESP_TASK_CORE_ID); - timer_config_t config = {.alarm_en = TIMER_ALARM_EN, - .counter_en = TIMER_PAUSE, - .intr_type = TIMER_INTR_LEVEL, - .counter_dir = TIMER_COUNT_UP, - .auto_reload = TIMER_AUTORELOAD_EN, - .divider = 80}; + const esp_timer_create_args_t timerArgs = { + .callback = &timerIsr, + .arg = (void*)&mTaskHandle, + .dispatch_method = ESP_TIMER_TASK, + .name = "link", + .skip_unhandled_events = true, + }; - timer_init(TIMER_GROUP_0, TIMER_1, &config); - timer_set_counter_value(TIMER_GROUP_0, TIMER_1, 0); - timer_set_alarm_value(TIMER_GROUP_0, TIMER_1, 100); - timer_enable_intr(TIMER_GROUP_0, TIMER_1); - timer_isr_register(TIMER_GROUP_0, TIMER_1, &timerIsr, mTaskHandle, 0, nullptr); - - timer_start(TIMER_GROUP_0, TIMER_1); + ESP_ERROR_CHECK(esp_timer_create(&timerArgs, &mTimer)); + ESP_ERROR_CHECK(esp_timer_start_periodic(mTimer, 100)); } ~ServiceRunner() { + esp_timer_delete(mTimer); vTaskDelete(mTaskHandle); } @@ -113,6 +105,7 @@ class Context private: TaskHandle_t mTaskHandle; + esp_timer_handle_t mTimer; std::unique_ptr<::asio::io_service> mpService; std::unique_ptr<::asio::io_service::work> mpWork; }; @@ -150,30 +143,72 @@ class Context } template - Socket openUnicastSocket(const ::asio::ip::address_v4& addr) + Socket openUnicastSocket(const ::asio::ip::address& addr) { - auto socket = Socket{serviceRunner().service()}; + auto socket = + addr.is_v4() ? Socket{serviceRunner().service(), ::asio::ip::udp::v4()} + : Socket{serviceRunner().service(), ::asio::ip::udp::v6()}; socket.mpImpl->mSocket.set_option( ::asio::ip::multicast::enable_loopback(addr.is_loopback())); - socket.mpImpl->mSocket.set_option(::asio::ip::multicast::outbound_interface(addr)); - socket.mpImpl->mSocket.bind(::asio::ip::udp::endpoint{addr, 0}); + if (addr.is_v4()) + { + socket.mpImpl->mSocket.set_option( + ::asio::ip::multicast::outbound_interface(addr.to_v4())); + socket.mpImpl->mSocket.bind( + ::LINK_ASIO_NAMESPACE::ip::udp::endpoint{addr.to_v4(), 0}); + } + else if (addr.is_v6()) + { + const auto scopeId = addr.to_v6().scope_id(); + socket.mpImpl->mSocket.set_option( + ::asio::ip::multicast::outbound_interface(static_cast(scopeId))); + socket.mpImpl->mSocket.bind( + ::LINK_ASIO_NAMESPACE::ip::udp::endpoint{addr.to_v6(), 0}); + } + else + { + throw(std::runtime_error("Unknown Protocol")); + } return socket; } template - Socket openMulticastSocket(const ::asio::ip::address_v4& addr) + Socket openMulticastSocket(const ::asio::ip::address& addr) { - auto socket = Socket{serviceRunner().service()}; + auto socket = + addr.is_v4() ? Socket{serviceRunner().service(), ::asio::ip::udp::v4()} + : Socket{serviceRunner().service(), ::asio::ip::udp::v6()}; + socket.mpImpl->mSocket.set_option(::asio::ip::udp::socket::reuse_address(true)); socket.mpImpl->mSocket.set_option( ::asio::socket_base::broadcast(!addr.is_loopback())); socket.mpImpl->mSocket.set_option( ::asio::ip::multicast::enable_loopback(addr.is_loopback())); - socket.mpImpl->mSocket.set_option(::asio::ip::multicast::outbound_interface(addr)); - socket.mpImpl->mSocket.bind({::asio::ip::address::from_string("0.0.0.0"), - discovery::multicastEndpoint().port()}); - socket.mpImpl->mSocket.set_option(::asio::ip::multicast::join_group( - discovery::multicastEndpoint().address().to_v4(), addr)); + + if (addr.is_v4()) + { + socket.mpImpl->mSocket.set_option( + ::asio::ip::multicast::outbound_interface(addr.to_v4())); + socket.mpImpl->mSocket.bind( + {::asio::ip::address_v4::any(), discovery::multicastEndpointV4().port()}); + socket.mpImpl->mSocket.set_option(::asio::ip::multicast::join_group( + discovery::multicastEndpointV4().address().to_v4(), addr.to_v4())); + } + else if (addr.is_v6()) + { + const auto scopeId = addr.to_v6().scope_id(); + socket.mpImpl->mSocket.set_option( + ::asio::ip::multicast::outbound_interface(static_cast(scopeId))); + const auto multicastEndpoint = discovery::multicastEndpointV6(scopeId); + socket.mpImpl->mSocket.bind( + {::asio::ip::address_v6::any(), multicastEndpoint.port()}); + socket.mpImpl->mSocket.set_option( + ::asio::ip::multicast::join_group(multicastEndpoint.address().to_v6(), scopeId)); + } + else + { + throw(std::runtime_error("Unknown Protocol")); + } return socket; } diff --git a/tidal-link/link/include/ableton/platforms/esp32/ScanIpIfAddrs.hpp b/tidal-link/link/include/ableton/platforms/esp32/ScanIpIfAddrs.hpp index 527d080a5..a9e5c9a4b 100644 --- a/tidal-link/link/include/ableton/platforms/esp32/ScanIpIfAddrs.hpp +++ b/tidal-link/link/include/ableton/platforms/esp32/ScanIpIfAddrs.hpp @@ -17,7 +17,7 @@ #pragma once -#include +#include #include #include #include @@ -33,9 +33,9 @@ namespace esp32 // ESP32 implementation of ip interface address scanner struct ScanIpIfAddrs { - std::vector<::asio::ip::address> operator()() + std::vector operator()() { - std::vector<::asio::ip::address> addrs; + std::vector addrs; // Get first network interface esp_netif_t* esp_netif = esp_netif_next(NULL); while (esp_netif) diff --git a/tidal-link/link/include/ableton/platforms/linux/Clock.hpp b/tidal-link/link/include/ableton/platforms/linux/Clock.hpp index accfe4720..5ea60ed87 100644 --- a/tidal-link/link/include/ableton/platforms/linux/Clock.hpp +++ b/tidal-link/link/include/ableton/platforms/linux/Clock.hpp @@ -28,15 +28,11 @@ namespace ableton namespace platforms { -#ifdef linux -#undef linux -#endif - #if defined(__FreeBSD_kernel__) #define CLOCK_MONOTONIC_RAW CLOCK_MONOTONIC #endif -namespace linux +namespace linux_ { template @@ -55,6 +51,6 @@ class Clock using ClockMonotonic = Clock; using ClockMonotonicRaw = Clock; -} // namespace linux +} // namespace linux_ } // namespace platforms } // namespace ableton diff --git a/tidal-link/link/include/ableton/platforms/linux/ThreadFactory.hpp b/tidal-link/link/include/ableton/platforms/linux/ThreadFactory.hpp index 81988f90b..4d8679aa5 100644 --- a/tidal-link/link/include/ableton/platforms/linux/ThreadFactory.hpp +++ b/tidal-link/link/include/ableton/platforms/linux/ThreadFactory.hpp @@ -26,7 +26,7 @@ namespace ableton { namespace platforms { -namespace linux +namespace linux_ { struct ThreadFactory @@ -40,6 +40,6 @@ struct ThreadFactory } }; -} // namespace linux +} // namespace linux_ } // namespace platforms } // namespace ableton diff --git a/tidal-link/link/include/ableton/platforms/posix/ScanIpIfAddrs.hpp b/tidal-link/link/include/ableton/platforms/posix/ScanIpIfAddrs.hpp index 8d24bc2f4..ba07dc5f0 100644 --- a/tidal-link/link/include/ableton/platforms/posix/ScanIpIfAddrs.hpp +++ b/tidal-link/link/include/ableton/platforms/posix/ScanIpIfAddrs.hpp @@ -19,11 +19,12 @@ #pragma once -#include -#include +#include #include #include +#include #include +#include #include namespace ableton @@ -75,34 +76,49 @@ struct ScanIpIfAddrs { // Scan active network interfaces and return corresponding addresses // for all ip-based interfaces. - std::vector<::asio::ip::address> operator()() + std::vector operator()() { - std::vector<::asio::ip::address> addrs; + std::vector addrs; + std::map IpInterfaceNames; detail::GetIfAddrs getIfAddrs; - getIfAddrs.withIfAddrs([&addrs](const struct ifaddrs& interfaces) { + getIfAddrs.withIfAddrs([&addrs, &IpInterfaceNames](const struct ifaddrs& interfaces) { const struct ifaddrs* interface; for (interface = &interfaces; interface; interface = interface->ifa_next) { auto addr = reinterpret_cast(interface->ifa_addr); - if (addr && interface->ifa_flags & IFF_UP) + if (addr && interface->ifa_flags & IFF_RUNNING && addr->sin_family == AF_INET) { - if (addr->sin_family == AF_INET) - { - auto bytes = reinterpret_cast(&addr->sin_addr); - addrs.emplace_back(asio::makeAddress<::asio::ip::address_v4>(bytes)); - } - else if (addr->sin_family == AF_INET6) + auto bytes = reinterpret_cast(&addr->sin_addr); + auto address = discovery::makeAddress(bytes); + addrs.emplace_back(std::move(address)); + IpInterfaceNames.insert(std::make_pair(interface->ifa_name, address)); + } + } + }); + + getIfAddrs.withIfAddrs([&addrs, &IpInterfaceNames](const struct ifaddrs& interfaces) { + const struct ifaddrs* interface; + for (interface = &interfaces; interface; interface = interface->ifa_next) + { + auto addr = reinterpret_cast(interface->ifa_addr); + if (addr && interface->ifa_flags & IFF_RUNNING && addr->sin_family == AF_INET6) + { + auto addr6 = reinterpret_cast(addr); + auto bytes = reinterpret_cast(&addr6->sin6_addr); + auto scopeId = addr6->sin6_scope_id; + auto address = discovery::makeAddress(bytes, scopeId); + if (IpInterfaceNames.find(interface->ifa_name) != IpInterfaceNames.end() + && !address.is_loopback() && address.is_link_local()) { - auto addr6 = reinterpret_cast(addr); - auto bytes = reinterpret_cast(&addr6->sin6_addr); - addrs.emplace_back(asio::makeAddress<::asio::ip::address_v6>(bytes)); + addrs.emplace_back(std::move(address)); } } } }); + return addrs; - } + }; }; } // namespace posix diff --git a/tidal-link/link/include/ableton/platforms/windows/ScanIpIfAddrs.hpp b/tidal-link/link/include/ableton/platforms/windows/ScanIpIfAddrs.hpp index e2b6f8459..229486e9a 100644 --- a/tidal-link/link/include/ableton/platforms/windows/ScanIpIfAddrs.hpp +++ b/tidal-link/link/include/ableton/platforms/windows/ScanIpIfAddrs.hpp @@ -19,10 +19,11 @@ #pragma once -#include -#include +#include #include +#include #include +#include #include #include #include @@ -99,12 +100,13 @@ struct ScanIpIfAddrs { // Scan active network interfaces and return corresponding addresses // for all ip-based interfaces. - std::vector<::asio::ip::address> operator()() + std::vector operator()() { - std::vector<::asio::ip::address> addrs; + std::vector addrs; + std::map IpInterfaceNames; detail::GetIfAddrs getIfAddrs; - getIfAddrs.withIfAddrs([&addrs](const IP_ADAPTER_ADDRESSES& interfaces) { + getIfAddrs.withIfAddrs([&](const IP_ADAPTER_ADDRESSES& interfaces) { const IP_ADAPTER_ADDRESSES* networkInterface; for (networkInterface = &interfaces; networkInterface; networkInterface = networkInterface->Next) @@ -119,18 +121,41 @@ struct ScanIpIfAddrs SOCKADDR_IN* addr4 = reinterpret_cast(address->Address.lpSockaddr); auto bytes = reinterpret_cast(&addr4->sin_addr); - addrs.emplace_back(asio::makeAddress<::asio::ip::address_v4>(bytes)); + auto ipv4address = discovery::makeAddress(bytes); + addrs.emplace_back(ipv4address); + IpInterfaceNames.insert( + std::make_pair(networkInterface->AdapterName, ipv4address)); } - else if (AF_INET6 == family) + } + } + }); + + getIfAddrs.withIfAddrs([&](const IP_ADAPTER_ADDRESSES& interfaces) { + const IP_ADAPTER_ADDRESSES* networkInterface; + for (networkInterface = &interfaces; networkInterface; + networkInterface = networkInterface->Next) + { + for (IP_ADAPTER_UNICAST_ADDRESS* address = networkInterface->FirstUnicastAddress; + NULL != address; address = address->Next) + { + auto family = address->Address.lpSockaddr->sa_family; + if (AF_INET6 == family + && IpInterfaceNames.find(networkInterface->AdapterName) + != IpInterfaceNames.end()) { - SOCKADDR_IN6* addr6 = + SOCKADDR_IN6* sockAddr = reinterpret_cast(address->Address.lpSockaddr); - auto bytes = reinterpret_cast(&addr6->sin6_addr); - addrs.emplace_back(asio::makeAddress<::asio::ip::address_v6>(bytes)); + auto bytes = reinterpret_cast(&sockAddr->sin6_addr); + auto addr6 = discovery::makeAddress(bytes); + if (!addr6.is_loopback() && addr6.is_link_local()) + { + addrs.emplace_back(addr6); + } } } } }); + return addrs; } }; diff --git a/tidal-link/link/include/ableton/test/serial_io/Context.hpp b/tidal-link/link/include/ableton/test/serial_io/Context.hpp index f450fbb79..f8f19bf20 100644 --- a/tidal-link/link/include/ableton/test/serial_io/Context.hpp +++ b/tidal-link/link/include/ableton/test/serial_io/Context.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #include #include #include @@ -37,7 +37,7 @@ class Context { public: Context(const SchedulerTree::TimePoint& now, - const std::vector<::asio::ip::address>& ifAddrs, + const std::vector& ifAddrs, std::shared_ptr pScheduler) : mNow(now) , mIfAddrs(ifAddrs) @@ -91,14 +91,14 @@ class Context return mLog; } - std::vector<::asio::ip::address> scanNetworkInterfaces() + std::vector scanNetworkInterfaces() { return mIfAddrs; } private: const SchedulerTree::TimePoint& mNow; - const std::vector<::asio::ip::address>& mIfAddrs; + const std::vector& mIfAddrs; std::shared_ptr mpScheduler; Log mLog; SchedulerTree::TimerId mNextTimerId; diff --git a/tidal-link/link/include/ableton/test/serial_io/Fixture.hpp b/tidal-link/link/include/ableton/test/serial_io/Fixture.hpp index 316c44d0c..5983899a5 100644 --- a/tidal-link/link/include/ableton/test/serial_io/Fixture.hpp +++ b/tidal-link/link/include/ableton/test/serial_io/Fixture.hpp @@ -19,7 +19,7 @@ #pragma once -#include +#include #include #include #include @@ -50,7 +50,7 @@ class Fixture Fixture(Fixture&&) = delete; Fixture& operator=(Fixture&&) = delete; - void setNetworkInterfaces(std::vector<::asio::ip::address> ifAddrs) + void setNetworkInterfaces(std::vector ifAddrs) { mIfAddrs = std::move(ifAddrs); } @@ -84,7 +84,7 @@ class Fixture private: std::shared_ptr mpScheduler; SchedulerTree::TimePoint mNow; - std::vector<::asio::ip::address> mIfAddrs; + std::vector mIfAddrs; }; } // namespace serial_io diff --git a/tidal-link/link/modules/asio-standalone/.appveyor.yml b/tidal-link/link/modules/asio-standalone/.appveyor.yml index d7865c5a2..db7b09b3f 100644 --- a/tidal-link/link/modules/asio-standalone/.appveyor.yml +++ b/tidal-link/link/modules/asio-standalone/.appveyor.yml @@ -17,7 +17,6 @@ environment: SEPARATE_COMPILATION: 1 MSVC: 1 - STANDALONE: 1 - SEPARATE_COMPILATION: 1 MINGW: 1 - STANDALONE: 1 CXXLATEST: 1 @@ -37,7 +36,6 @@ environment: SEPARATE_COMPILATION: 1 MSVC: 1 - USING_BOOST: 1 - SEPARATE_COMPILATION: 1 MINGW: 1 for: diff --git a/tidal-link/link/modules/asio-standalone/.cirrus.yml b/tidal-link/link/modules/asio-standalone/.cirrus.yml index 3a7dafc39..9ace7fc90 100644 --- a/tidal-link/link/modules/asio-standalone/.cirrus.yml +++ b/tidal-link/link/modules/asio-standalone/.cirrus.yml @@ -1,5 +1,5 @@ freebsd_instance: - image_family: freebsd-12-1 + image_family: freebsd-13-0 cpu: 1 env: @@ -7,7 +7,7 @@ env: task: install_script: - - pkg install -y autoconf automake + - pkg install -y autoconf automake pkgconf build_script: - cd asio - ./autogen.sh diff --git a/tidal-link/link/modules/asio-standalone/.github/workflows/ci.yml b/tidal-link/link/modules/asio-standalone/.github/workflows/ci.yml new file mode 100644 index 000000000..3fa02cf7b --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/.github/workflows/ci.yml @@ -0,0 +1,380 @@ +name: asio CI + +on: + push: + branches: [ master, citest-* ] + +jobs: + build: + strategy: + fail-fast: false + matrix: + build-type: ['sanity'] + runs-on: [ubuntu-20.04, ubuntu-22.04, macos-latest] + compiler: [g++-7, g++-8, g++-9, g++-10, g++-11, g++-12, clang++-10, clang++-14, g++] + cxx-std: ['c++03', 'c++11', 'c++14', 'c++17', 'c++2a', 'c++20'] + separate-compilation: ['', '--enable-separate-compilation'] + optim-level: ['-O0'] + no-deprecated: [''] + select-reactor: ['', '-DASIO_DISABLE_EPOLL', '-DASIO_DISABLE_KQUEUE'] + handler-tracking: [''] + boost: [''] + boost-url: [''] + exclude: + # New compilers don't run on ubuntu 20.04 + - runs-on: ubuntu-20.04 + compiler: g++-12 + - runs-on: ubuntu-20.04 + compiler: clang++-14 + # Older compilers don't run on ubuntu 22.04 + - runs-on: ubuntu-22.04 + compiler: g++-7 + - runs-on: ubuntu-22.04 + compiler: g++-8 + - runs-on: ubuntu-22.04 + compiler: clang++-10 + # Unversioned g++ doesn't run on ubuntu + - runs-on: ubuntu-20.04 + compiler: g++ + - runs-on: ubuntu-22.04 + compiler: g++ + # Versioned g++ and clang++ don't run on macOS + - runs-on: macos-latest + compiler: g++-7 + - runs-on: macos-latest + compiler: g++-8 + - runs-on: macos-latest + compiler: g++-9 + - runs-on: macos-latest + compiler: g++-10 + - runs-on: macos-latest + compiler: g++-11 + - runs-on: macos-latest + compiler: g++-12 + - runs-on: macos-latest + compiler: clang++-10 + - runs-on: macos-latest + compiler: clang++-14 + # Older compilers don't support newer std variants + - compiler: g++-7 + cxx-std: c++2a + - compiler: g++-7 + cxx-std: c++20 + - compiler: g++-8 + cxx-std: c++20 + - compiler: g++-9 + cxx-std: c++20 + - compiler: g++-10 + cxx-std: c++2a + - compiler: g++-11 + cxx-std: c++2a + - compiler: g++-12 + cxx-std: c++2a + - compiler: clang++-10 + cxx-std: c++20 + - compiler: clang++-14 + cxx-std: c++2a + - runs-on: macos-latest + cxx-std: c++20 + # Specifying the select reactor is OS-specific + - runs-on: ubuntu-20.04 + select-reactor: -DASIO_DISABLE_KQUEUE + - runs-on: ubuntu-22.04 + select-reactor: -DASIO_DISABLE_KQUEUE + - runs-on: macos-latest + select-reactor: -DASIO_DISABLE_EPOLL + # Trim builds that use separate compilation + - compiler: g++-7 + separate-compilation: --enable-separate-compilation + - compiler: g++-8 + separate-compilation: --enable-separate-compilation + - compiler: g++-9 + separate-compilation: --enable-separate-compilation + - compiler: g++-10 + separate-compilation: --enable-separate-compilation + - compiler: g++-11 + separate-compilation: --enable-separate-compilation + - runs-on: macos-latest + cxx-std: c++14 + separate-compilation: --enable-separate-compilation + - runs-on: macos-latest + cxx-std: c++17 + separate-compilation: --enable-separate-compilation + # Trim builds that use select reactor + - compiler: g++-7 + select-reactor: -DASIO_DISABLE_EPOLL + - compiler: g++-8 + select-reactor: -DASIO_DISABLE_EPOLL + - compiler: g++-9 + select-reactor: -DASIO_DISABLE_EPOLL + - compiler: g++-10 + select-reactor: -DASIO_DISABLE_EPOLL + - compiler: g++-11 + select-reactor: -DASIO_DISABLE_EPOLL + # C++03 builds are always explicitly included + - cxx-std: c++03 + include: + # + # Linux / g++-12 -std=c++20 -fcoroutines / -O2 / standalone + # + - build-type: full + runs-on: ubuntu-22.04 + compiler: g++-12 + cxx-std: c++20 -fcoroutines + optim-level: -O2 + # + # Linux / g++-12 -std=c++17 / -O2 / boost 1.73 + # + - build-type: full + runs-on: ubuntu-22.04 + compiler: g++-12 + cxx-std: c++17 + optim-level: -O2 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_73_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.73.0/source/boost_1_73_0.tar.bz2 + # + # Linux / g++-11 -std=c++14 / -O0 / standalone / separate compilation + # + - build-type: full + runs-on: ubuntu-22.04 + compiler: g++-11 + cxx-std: c++14 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + # + # Linux / g++-10 / -O2 / standalone + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + optim-level: -O2 + # + # Linux / g++-10 / -O0 / standalone / handler tracking + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + optim-level: -O0 + handler-tracking: -DASIO_ENABLE_HANDLER_TRACKING + # + # Linux / g++-10 / -O0 / standalone / epoll disabled + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + optim-level: -O0 + select-reactor: -DASIO_DISABLE_EPOLL + # + # Linux / g++-10 / -O0 / standalone / separate compilation / handler tracking + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + handler-tracking: -DASIO_ENABLE_HANDLER_TRACKING + # + # Linux / g++-10 / -O0 / standalone / separate compilation / epoll disabled + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + select-reactor: -DASIO_DISABLE_EPOLL + # + # Linux / g++-10 / -O2 / boost 1.80 + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + optim-level: -O2 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + # + # Linux / g++-10 / -O0 / boost 1.80 / epoll disabled + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + optim-level: -O0 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + select-reactor: -DASIO_DISABLE_EPOLL + # + # Linux / g++-10 / -O0 / boost 1.80 / separate compilation + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-10 + cxx-std: c++14 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + # + # Linux / g++-7 / -O2 / standalone + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-7 + cxx-std: c++11 + optim-level: -O2 + # + # Linux / g++-7 / -O0 / standalone / separate compilation + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-7 + cxx-std: c++11 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + # + # Linux / g++-7 / -O2 / boost 1.80 + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-7 + cxx-std: c++03 + separate-compilation: --enable-separate-compilation + optim-level: -O2 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + # + # Linux / g++-7 -std=c++11 / -O2 / boost 1.80 + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: g++-7 + cxx-std: c++11 + separate-compilation: --enable-separate-compilation + optim-level: -O2 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + # + # Linux / clang++-14 -std=c++2a / -O2 / standalone + # + - build-type: full + runs-on: ubuntu-22.04 + compiler: clang++-14 + cxx-std: c++2a + optim-level: -O2 + # + # Linux / clang++-14 -std=c++11 / -O0 / standalone / separate compilation + # + - build-type: full + runs-on: ubuntu-22.04 + compiler: clang++-14 + cxx-std: c++11 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + # + # Linux / clang++-10 -std=c++11 / -O2 / standalone + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: clang++-10 + cxx-std: c++11 + optim-level: -O2 + # + # Linux / clang++-10 -std=c++11 / -O0 / boost 1.80 / separate compilation + # + - build-type: full + runs-on: ubuntu-20.04 + compiler: clang++-10 + cxx-std: c++03 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + # + # macOS / c++2a -fcoroutines-ts / -O2 / standalone + # + - build-type: full + runs-on: macos-latest + compiler: g++ + cxx-std: c++2a -fcoroutines-ts + optim-level: -O2 + # + # macOS / c++11 / -O2 / standalone + # + - build-type: full + runs-on: macos-latest + compiler: g++ + cxx-std: c++11 + optim-level: -O2 + # + # macOS / c++11 / -O0 / standalone / kqueue disabled + # + - build-type: full + runs-on: macos-latest + compiler: g++ + cxx-std: c++11 + optim-level: -O0 + select-reactor: -DASIO_DISABLE_KQUEUE + # + # macOS / c++11 / -O0 / standalone / separate compilation + # + - build-type: full + runs-on: macos-latest + compiler: g++ + cxx-std: c++11 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + # + # macOS / c++03 / -O2 / boost 1.80 + # + - build-type: full + runs-on: macos-latest + compiler: g++ + cxx-std: c++03 + optim-level: -O2 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + # + # macOS / c++03 / -O2 / boost 1.80 / separate compilation + # + - build-type: full + runs-on: macos-latest + compiler: g++ + cxx-std: c++03 + separate-compilation: --enable-separate-compilation + optim-level: -O0 + with-boost: --with-boost=$GITHUB_WORKSPACE/boost_1_80_0 + boost-url: https://boostorg.jfrog.io/artifactory/main/release/1.80.0/source/boost_1_80_0.tar.bz2 + runs-on: ${{ matrix.runs-on }} + env: + CXX: ${{ matrix.compiler }} + CXXFLAGS: -std=${{ matrix.cxx-std }} ${{ matrix.optim-level }} -Wall -Wextra ${{ matrix.no-deprecated }} ${{ matrix.select-reactor }} ${{ matrix.handler-tracking }} + steps: + - uses: actions/checkout@v2 + - name: Install autotools + if: startsWith(matrix.runs-on, 'macos') + run: brew install automake + - name: Install compiler + if: startsWith(matrix.runs-on, 'ubuntu') + run: sudo apt-get install -y ${{ matrix.compiler }} + - name: Install boost + if: startsWith(matrix.with-boost, '--with-boost=$GITHUB_WORKSPACE') + run: | + wget --quiet -O - ${{ matrix.boost-url }} | tar -xj + - name: Configure + working-directory: asio + run: | + ./autogen.sh + ./configure ${{ matrix.separate-compilation }} ${{ matrix.with-boost }} + - name: Sanity check + if: startsWith(matrix.build-type, 'sanity') + working-directory: asio/src/tests + run: make unit/io_context.log unit/ip/tcp.log unit/ts/net.log + - name: Build + if: startsWith(matrix.build-type, 'full') + working-directory: asio + run: make && make check diff --git a/tidal-link/link/modules/asio-standalone/.travis.yml b/tidal-link/link/modules/asio-standalone/.travis.yml deleted file mode 100644 index 06fb4b9a7..000000000 --- a/tidal-link/link/modules/asio-standalone/.travis.yml +++ /dev/null @@ -1,372 +0,0 @@ -language: cpp -os: linux -dist: xenial - -cache: - directories: - - ${TRAVIS_BUILD_DIR}/boost_1_64_0 - - ${TRAVIS_BUILD_DIR}/boost_1_73_0 - -matrix: - include: - # - #--------------------------------------------------------------------------- - # Linux / g++-9 - #--------------------------------------------------------------------------- - # - # Linux / g++-9 -std=c++2a / -O2 / standalone - # - - os: linux - dist: bionic - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-9 - env: - - CXXFLAGS="-std=c++2a -fconcepts -Wall -Wextra -O2" - - CONFIGFLAGS="--with-boost=no" - - MATRIX_EVAL="CC=gcc-9 CXX=g++-9" - compiler: gcc - # - # Linux / g++-9 -std=c++17 / -O2 / boost 1.73 - # - - os: linux - dist: bionic - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-9 - env: - - BOOST_DIR="boost_1_73_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.73.0/boost_1_73_0.tar.bz2/download" - - CXXFLAGS="-std=c++17 -Wall -Wextra -O2" - - CONFIGFLAGS="--with-boost=$PWD/$BOOST_DIR" - - MATRIX_EVAL="CC=gcc-9 CXX=g++-9" - compiler: gcc - # - # Linux / g++-9 -std=c++14 / -O0 / standalone / separate compilation - # - - os: linux - dist: bionic - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-9 - env: - - CXXFLAGS="-std=c++14 -Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--with-boost=no --enable-separate-compilation" - - MATRIX_EVAL="CC=gcc-9 CXX=g++-9" - compiler: gcc - # - #--------------------------------------------------------------------------- - # Linux / g++-6 - #--------------------------------------------------------------------------- - # - # Linux / g++-6 / -O2 / standalone - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CXXFLAGS="-Wall -Wextra -O2" - - CONFIGFLAGS="--with-boost=no" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O0 / standalone / handler tracking - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline -DASIO_ENABLE_HANDLER_TRACKING" - - CONFIGFLAGS="--with-boost=no" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O0 / standalone / epoll disabled - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline -DASIO_DISABLE_EPOLL" - - CONFIGFLAGS="--with-boost=no" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O0 / standalone / separate compilation / handler tracking - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline -DASIO_ENABLE_HANDLER_TRACKING" - - CONFIGFLAGS="--with-boost=no --enable-separate-compilation" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O0 / standalone / separate compilation / epoll disabled - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline -DASIO_DISABLE_EPOLL" - - CONFIGFLAGS="--with-boost=no --enable-separate-compilation" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O2 / boost 1.64 - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-Wall -Wextra -O2" - - CONFIGFLAGS="" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O0 / boost 1.64 / epoll disabled - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline -DASIO_DISABLE_EPOLL" - - CONFIGFLAGS="" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - # Linux / g++-6 / -O0 / boost 1.64 / separate compilation - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-6 - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--enable-separate-compilation" - - MATRIX_EVAL="CC=gcc-6 CXX=g++-6" - compiler: gcc - # - #--------------------------------------------------------------------------- - # Linux / g++-4.8 - #--------------------------------------------------------------------------- - # - # Linux / g++-4.8 / -O2 / standalone - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 - env: - - CXXFLAGS="-Wall -Wextra -O2" - - CONFIGFLAGS="--with-boost=no" - - MATRIX_EVAL="CC=gcc-4.8 CXX=g++-4.8" - compiler: gcc - # - # Linux / g++-4.8 / -O0 / standalone / separate compilation - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--with-boost=no --enable-separate-compilation" - - MATRIX_EVAL="CC=gcc-4.8 CXX=g++-4.8" - compiler: gcc - # - # Linux / g++-4.8 / -O2 / boost 1.64 - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-Wall -Wextra -O2" - - CONFIGFLAGS="" - - MATRIX_EVAL="CC=gcc-4.8 CXX=g++-4.8" - compiler: gcc - # - # Linux / g++-4.8 -std=c++11 / -O2 / boost 1.64 - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - packages: - - g++-4.8 - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-std=c++11 -Wall -Wextra -O2" - - CONFIGFLAGS="" - - MATRIX_EVAL="CC=gcc-4.8 CXX=g++-4.8" - compiler: gcc - # - #--------------------------------------------------------------------------- - # Linux / clang-3.8 - #--------------------------------------------------------------------------- - # - # Linux / clang-3.8 / -O2 / standalone" - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.8 - packages: - - clang-3.8 - env: - - CXXFLAGS="-Wall -Wextra -O2" - - CONFIGFLAGS="--with-boost=no" - - MATRIX_EVAL="CC=clang-3.8 CXX=clang++-3.8" - compiler: clang - # - # Linux / clang-3.8 / -O0 / standalone / separate compilation - # - - os: linux - addons: - apt: - sources: - - ubuntu-toolchain-r-test - - llvm-toolchain-precise-3.8 - packages: - - clang-3.8 - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--with-boost=no --enable-separate-compilation" - - MATRIX_EVAL="CC=clang-3.8 CXX=clang++-3.8" - compiler: clang - # - #--------------------------------------------------------------------------- - # macOS / xcode10.1 - #--------------------------------------------------------------------------- - # - # macOS / xcode10.1 / -std=c++2a -fcoroutines-ts -O2 / standalone - # - - os: osx - env: - - CXXFLAGS="-std=c++2a -fcoroutines-ts -Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--with-boost=no" - osx_image: xcode10.1 - # - # macOS / xcode10.1 / -O2 / standalone - # - - os: osx - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--with-boost=no" - osx_image: xcode10.1 - # - # macOS / xcode10.1 / -O0 / standalone / kqueue disabled - # - - os: osx - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline -DASIO_DISABLE_KQUEUE" - - CONFIGFLAGS="--with-boost=no" - osx_image: xcode10.1 - # - # macOS / xcode10.1 / -O0 / standalone / separate compilation - # - - os: osx - env: - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--with-boost=no --enable-separate-compilation" - osx_image: xcode10.1 - # - # macOS / xcode10.1 / -O2 / boost 1.64 - # - - os: osx - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-Wall -Wextra -O2" - - CONFIGFLAGS="" - osx_image: xcode10.1 - # - # macOS / xcode10.1 / -O0 / boost 1.64 / separate compilation - # - - os: osx - env: - - BOOST_DIR="boost_1_64_0" - - BOOST_URL="https://sourceforge.net/projects/boost/files/boost/1.64.0/boost_1_64_0.tar.bz2/download" - - CXXFLAGS="-Wall -Wextra -O0 -fno-inline" - - CONFIGFLAGS="--enable-separate-compilation" - osx_image: xcode10.1 - -before_install: - - eval "${MATRIX_EVAL}" - -install: - - | - if [[ "${BOOST_URL}" != "" ]]; then - if [[ -z "$(ls -A ${BOOST_DIR})" ]]; then - { travis_retry wget --quiet -O - ${BOOST_URL} | tar -xj; } || exit 1 - fi - fi - -script: - - cd asio && ./autogen.sh && ./configure $CONFIGFLAGS && make && make check - -notifications: - email: false diff --git a/tidal-link/link/modules/asio-standalone/asio/.gitignore b/tidal-link/link/modules/asio-standalone/asio/.gitignore index 55db11878..39252178e 100644 --- a/tidal-link/link/modules/asio-standalone/asio/.gitignore +++ b/tidal-link/link/modules/asio-standalone/asio/.gitignore @@ -1,6 +1,7 @@ Makefile Makefile.in aclocal.m4 +asio.pc autom4te.cache compile config.guess diff --git a/tidal-link/link/modules/asio-standalone/asio/COPYING b/tidal-link/link/modules/asio-standalone/asio/COPYING index 2bb5eb20d..4540e01fc 100644 --- a/tidal-link/link/modules/asio-standalone/asio/COPYING +++ b/tidal-link/link/modules/asio-standalone/asio/COPYING @@ -1,4 +1,4 @@ -Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) +Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) Distributed under the Boost Software License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) diff --git a/tidal-link/link/modules/asio-standalone/asio/INSTALL b/tidal-link/link/modules/asio-standalone/asio/INSTALL index f045678c4..1dd78db18 100644 --- a/tidal-link/link/modules/asio-standalone/asio/INSTALL +++ b/tidal-link/link/modules/asio-standalone/asio/INSTALL @@ -1,5 +1,5 @@ See doc/index.html for information on: - External dependencies - - Using asio + - Using, building, and configuring Asio - Supported platforms - How to build the tests and examples diff --git a/tidal-link/link/modules/asio-standalone/asio/Makefile.am b/tidal-link/link/modules/asio-standalone/asio/Makefile.am index 0acdc02d9..b7760851b 100644 --- a/tidal-link/link/modules/asio-standalone/asio/Makefile.am +++ b/tidal-link/link/modules/asio-standalone/asio/Makefile.am @@ -1,5 +1,7 @@ AUTOMAKE_OPTIONS = foreign dist-bzip2 dist-zip +pkgconfig_DATA = asio.pc + SUBDIRS = include src MAINTAINERCLEANFILES = \ diff --git a/tidal-link/link/modules/asio-standalone/asio/README b/tidal-link/link/modules/asio-standalone/asio/README index 92472f52e..6ef60c29a 100644 --- a/tidal-link/link/modules/asio-standalone/asio/README +++ b/tidal-link/link/modules/asio-standalone/asio/README @@ -1,4 +1,4 @@ -asio version 1.17.0 -Released Friday, 10 July 2020. +asio version 1.28.0 +Released Wednesday, 26 April 2023. See doc/index.html for API documentation and a tutorial. diff --git a/tidal-link/link/modules/asio-standalone/asio/asio.manifest b/tidal-link/link/modules/asio-standalone/asio/asio.manifest index 440b974eb..ae98bebb7 100644 --- a/tidal-link/link/modules/asio-standalone/asio/asio.manifest +++ b/tidal-link/link/modules/asio-standalone/asio/asio.manifest @@ -1,5 +1,6 @@ / /aclocal.m4 +/asio.pc.in /compile /config.guess /config.sub @@ -8,30 +9,52 @@ /COPYING /depcomp /doc/ +/doc/1.png +/doc/2.png +/doc/3.png +/doc/4.png +/doc/5.png +/doc/6.png +/doc/7.png +/doc/8.png /doc/asio/ /doc/asio/examples/ /doc/asio/examples/cpp03_examples.html /doc/asio/examples/cpp11_examples.html /doc/asio/examples/cpp14_examples.html /doc/asio/examples/cpp17_examples.html +/doc/asio/examples/cpp20_examples.html /doc/asio/examples.html /doc/asio/history.html /doc/asio/index.html /doc/asio/net_ts.html /doc/asio/overview/ +/doc/asio/overview/basics.html +/doc/asio/overview/channels.html +/doc/asio/overview/composition/ +/doc/asio/overview/composition/compose.html +/doc/asio/overview/composition/coro.html +/doc/asio/overview/composition/coroutine.html +/doc/asio/overview/composition/cpp20_coroutines.html +/doc/asio/overview/composition/deferred.html +/doc/asio/overview/composition/futures.html +/doc/asio/overview/composition.html +/doc/asio/overview/composition/immediate_completion.html +/doc/asio/overview/composition/parallel_group.html +/doc/asio/overview/composition/promises.html +/doc/asio/overview/composition/spawn.html +/doc/asio/overview/composition/token_adapters.html +/doc/asio/overview/composition/type_erasure.html /doc/asio/overview/core/ /doc/asio/overview/core/allocation.html /doc/asio/overview/core/async.html -/doc/asio/overview/core/basics.html /doc/asio/overview/core/buffers.html +/doc/asio/overview/core/cancellation.html /doc/asio/overview/core/concurrency_hint.html -/doc/asio/overview/core/coroutine.html -/doc/asio/overview/core/coroutines_ts.html /doc/asio/overview/core/handler_tracking.html /doc/asio/overview/core.html /doc/asio/overview/core/line_based.html /doc/asio/overview/core/reactor.html -/doc/asio/overview/core/spawn.html /doc/asio/overview/core/strands.html /doc/asio/overview/core/streams.html /doc/asio/overview/core/threads.html @@ -39,21 +62,34 @@ /doc/asio/overview/cpp2011/array.html /doc/asio/overview/cpp2011/atomic.html /doc/asio/overview/cpp2011/chrono.html -/doc/asio/overview/cpp2011/futures.html /doc/asio/overview/cpp2011.html /doc/asio/overview/cpp2011/move_handlers.html /doc/asio/overview/cpp2011/move_objects.html /doc/asio/overview/cpp2011/shared_ptr.html /doc/asio/overview/cpp2011/system_error.html /doc/asio/overview/cpp2011/variadic.html +/doc/asio/overview/files.html /doc/asio/overview.html /doc/asio/overview/implementation.html +/doc/asio/overview/model/ +/doc/asio/overview/model/allocators.html +/doc/asio/overview/model/associators.html +/doc/asio/overview/model/async_agents.html +/doc/asio/overview/model/async_ops.html +/doc/asio/overview/model/cancellation.html +/doc/asio/overview/model/child_agents.html +/doc/asio/overview/model/completion_tokens.html +/doc/asio/overview/model/executors.html +/doc/asio/overview/model/higher_levels.html +/doc/asio/overview/model.html +/doc/asio/overview/model/library_elements.html /doc/asio/overview/networking/ /doc/asio/overview/networking/bsd_sockets.html /doc/asio/overview/networking.html /doc/asio/overview/networking/iostreams.html /doc/asio/overview/networking/other_protocols.html /doc/asio/overview/networking/protocols.html +/doc/asio/overview/pipes.html /doc/asio/overview/posix/ /doc/asio/overview/posix/fork.html /doc/asio/overview/posix.html @@ -73,7 +109,201 @@ /doc/asio/reference/ /doc/asio/reference/AcceptableProtocol.html /doc/asio/reference/AcceptHandler.html +/doc/asio/reference/AcceptToken.html +/doc/asio/reference/allocator_binder/ +/doc/asio/reference/allocator_binder/allocator_binder/ +/doc/asio/reference/allocator_binder/_allocator_binder.html +/doc/asio/reference/allocator_binder/allocator_binder.html +/doc/asio/reference/allocator_binder/allocator_binder/overload1.html +/doc/asio/reference/allocator_binder/allocator_binder/overload2.html +/doc/asio/reference/allocator_binder/allocator_binder/overload3.html +/doc/asio/reference/allocator_binder/allocator_binder/overload4.html +/doc/asio/reference/allocator_binder/allocator_binder/overload5.html +/doc/asio/reference/allocator_binder/allocator_binder/overload6.html +/doc/asio/reference/allocator_binder/allocator_binder/overload7.html +/doc/asio/reference/allocator_binder/allocator_binder/overload8.html +/doc/asio/reference/allocator_binder/allocator_binder/overload9.html +/doc/asio/reference/allocator_binder/allocator_type.html +/doc/asio/reference/allocator_binder/argument_type.html +/doc/asio/reference/allocator_binder/first_argument_type.html +/doc/asio/reference/allocator_binder/get/ +/doc/asio/reference/allocator_binder/get_allocator.html +/doc/asio/reference/allocator_binder/get.html +/doc/asio/reference/allocator_binder/get/overload1.html +/doc/asio/reference/allocator_binder/get/overload2.html +/doc/asio/reference/allocator_binder.html +/doc/asio/reference/allocator_binder/operator_lp__rp_/ +/doc/asio/reference/allocator_binder/operator_lp__rp_.html +/doc/asio/reference/allocator_binder/operator_lp__rp_/overload1.html +/doc/asio/reference/allocator_binder/operator_lp__rp_/overload2.html +/doc/asio/reference/allocator_binder/result_type.html +/doc/asio/reference/allocator_binder/second_argument_type.html +/doc/asio/reference/allocator_binder/target_type.html +/doc/asio/reference/any_completion_executor/ +/doc/asio/reference/any_completion_executor/any_completion_executor/ +/doc/asio/reference/any_completion_executor/_any_completion_executor.html +/doc/asio/reference/any_completion_executor/any_completion_executor.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload10.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload1.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload2.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload3.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload4.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload5.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload6.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload7.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload8.html +/doc/asio/reference/any_completion_executor/any_completion_executor/overload9.html +/doc/asio/reference/any_completion_executor/context.html +/doc/asio/reference/any_completion_executor/execute.html +/doc/asio/reference/any_completion_executor.html +/doc/asio/reference/any_completion_executor/operator_bool.html +/doc/asio/reference/any_completion_executor/operator_eq_/ +/doc/asio/reference/any_completion_executor/operator_eq__eq_/ +/doc/asio/reference/any_completion_executor/operator_eq__eq_.html +/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload1.html +/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload2.html +/doc/asio/reference/any_completion_executor/operator_eq__eq_/overload3.html +/doc/asio/reference/any_completion_executor/operator_eq_.html +/doc/asio/reference/any_completion_executor/operator_eq_/overload1.html +/doc/asio/reference/any_completion_executor/operator_eq_/overload2.html +/doc/asio/reference/any_completion_executor/operator_eq_/overload3.html +/doc/asio/reference/any_completion_executor/operator_not__eq_/ +/doc/asio/reference/any_completion_executor/operator_not__eq_.html +/doc/asio/reference/any_completion_executor/operator_not__eq_/overload1.html +/doc/asio/reference/any_completion_executor/operator_not__eq_/overload2.html +/doc/asio/reference/any_completion_executor/operator_not__eq_/overload3.html +/doc/asio/reference/any_completion_executor/prefer/ +/doc/asio/reference/any_completion_executor/prefer.html +/doc/asio/reference/any_completion_executor/prefer/overload1.html +/doc/asio/reference/any_completion_executor/prefer/overload2.html +/doc/asio/reference/any_completion_executor/prefer/overload3.html +/doc/asio/reference/any_completion_executor/prefer/overload4.html +/doc/asio/reference/any_completion_executor/prefer/overload5.html +/doc/asio/reference/any_completion_executor/prefer/overload6.html +/doc/asio/reference/any_completion_executor/query.html +/doc/asio/reference/any_completion_executor/require/ +/doc/asio/reference/any_completion_executor/require.html +/doc/asio/reference/any_completion_executor/require/overload1.html +/doc/asio/reference/any_completion_executor/require/overload2.html +/doc/asio/reference/any_completion_executor/swap/ +/doc/asio/reference/any_completion_executor/swap.html +/doc/asio/reference/any_completion_executor/swap/overload1.html +/doc/asio/reference/any_completion_executor/swap/overload2.html +/doc/asio/reference/any_completion_executor/target/ +/doc/asio/reference/any_completion_executor/target.html +/doc/asio/reference/any_completion_executor/target/overload1.html +/doc/asio/reference/any_completion_executor/target/overload2.html +/doc/asio/reference/any_completion_executor/target_type.html +/doc/asio/reference/any_completion_handler/ +/doc/asio/reference/any_completion_handler_allocator/ +/doc/asio/reference/any_completion_handler_allocator/allocate.html +/doc/asio/reference/any_completion_handler_allocator/any_completion_handler_allocator.html +/doc/asio/reference/any_completion_handler_allocator/deallocate.html +/doc/asio/reference/any_completion_handler_allocator.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/ +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/any_completion_handler_allocator.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_eq__eq_.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_not__eq_.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/ +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/other.html +/doc/asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/value_type.html +/doc/asio/reference/any_completion_handler_allocator/operator_eq__eq_.html +/doc/asio/reference/any_completion_handler_allocator/operator_not__eq_.html +/doc/asio/reference/any_completion_handler_allocator__rebind/ +/doc/asio/reference/any_completion_handler_allocator__rebind.html +/doc/asio/reference/any_completion_handler_allocator__rebind/other.html +/doc/asio/reference/any_completion_handler_allocator/value_type.html +/doc/asio/reference/any_completion_handler/any_completion_handler/ +/doc/asio/reference/any_completion_handler/_any_completion_handler.html +/doc/asio/reference/any_completion_handler/any_completion_handler.html +/doc/asio/reference/any_completion_handler/any_completion_handler/overload1.html +/doc/asio/reference/any_completion_handler/any_completion_handler/overload2.html +/doc/asio/reference/any_completion_handler/any_completion_handler/overload3.html +/doc/asio/reference/any_completion_handler/any_completion_handler/overload4.html +/doc/asio/reference/any_completion_handler/get_allocator.html +/doc/asio/reference/any_completion_handler/get_cancellation_slot.html +/doc/asio/reference/any_completion_handler.html +/doc/asio/reference/any_completion_handler/operator_bool.html +/doc/asio/reference/any_completion_handler/operator_eq_/ +/doc/asio/reference/any_completion_handler/operator_eq__eq_/ +/doc/asio/reference/any_completion_handler/operator_eq__eq_.html +/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload1.html +/doc/asio/reference/any_completion_handler/operator_eq__eq_/overload2.html +/doc/asio/reference/any_completion_handler/operator_eq_.html +/doc/asio/reference/any_completion_handler/operator_eq_/overload1.html +/doc/asio/reference/any_completion_handler/operator_eq_/overload2.html +/doc/asio/reference/any_completion_handler/operator_lp__rp_.html +/doc/asio/reference/any_completion_handler/operator_not__eq_/ +/doc/asio/reference/any_completion_handler/operator_not__eq_.html +/doc/asio/reference/any_completion_handler/operator_not__eq_/overload1.html +/doc/asio/reference/any_completion_handler/operator_not__eq_/overload2.html +/doc/asio/reference/any_completion_handler/operator_not_.html +/doc/asio/reference/any_completion_handler/swap.html +/doc/asio/reference/any_io_executor/ +/doc/asio/reference/any_io_executor/any_io_executor/ +/doc/asio/reference/any_io_executor/_any_io_executor.html +/doc/asio/reference/any_io_executor/any_io_executor.html +/doc/asio/reference/any_io_executor/any_io_executor/overload10.html +/doc/asio/reference/any_io_executor/any_io_executor/overload1.html +/doc/asio/reference/any_io_executor/any_io_executor/overload2.html +/doc/asio/reference/any_io_executor/any_io_executor/overload3.html +/doc/asio/reference/any_io_executor/any_io_executor/overload4.html +/doc/asio/reference/any_io_executor/any_io_executor/overload5.html +/doc/asio/reference/any_io_executor/any_io_executor/overload6.html +/doc/asio/reference/any_io_executor/any_io_executor/overload7.html +/doc/asio/reference/any_io_executor/any_io_executor/overload8.html +/doc/asio/reference/any_io_executor/any_io_executor/overload9.html +/doc/asio/reference/any_io_executor/context.html +/doc/asio/reference/any_io_executor/execute.html /doc/asio/reference/any_io_executor.html +/doc/asio/reference/any_io_executor/operator_bool.html +/doc/asio/reference/any_io_executor/operator_eq_/ +/doc/asio/reference/any_io_executor/operator_eq__eq_/ +/doc/asio/reference/any_io_executor/operator_eq__eq_.html +/doc/asio/reference/any_io_executor/operator_eq__eq_/overload1.html +/doc/asio/reference/any_io_executor/operator_eq__eq_/overload2.html +/doc/asio/reference/any_io_executor/operator_eq__eq_/overload3.html +/doc/asio/reference/any_io_executor/operator_eq_.html +/doc/asio/reference/any_io_executor/operator_eq_/overload1.html +/doc/asio/reference/any_io_executor/operator_eq_/overload2.html +/doc/asio/reference/any_io_executor/operator_eq_/overload3.html +/doc/asio/reference/any_io_executor/operator_not__eq_/ +/doc/asio/reference/any_io_executor/operator_not__eq_.html +/doc/asio/reference/any_io_executor/operator_not__eq_/overload1.html +/doc/asio/reference/any_io_executor/operator_not__eq_/overload2.html +/doc/asio/reference/any_io_executor/operator_not__eq_/overload3.html +/doc/asio/reference/any_io_executor/prefer/ +/doc/asio/reference/any_io_executor/prefer.html +/doc/asio/reference/any_io_executor/prefer/overload1.html +/doc/asio/reference/any_io_executor/prefer/overload2.html +/doc/asio/reference/any_io_executor/prefer/overload3.html +/doc/asio/reference/any_io_executor/prefer/overload4.html +/doc/asio/reference/any_io_executor/prefer/overload5.html +/doc/asio/reference/any_io_executor/prefer/overload6.html +/doc/asio/reference/any_io_executor/prefer/overload7.html +/doc/asio/reference/any_io_executor/query.html +/doc/asio/reference/any_io_executor/require/ +/doc/asio/reference/any_io_executor/require.html +/doc/asio/reference/any_io_executor/require/overload1.html +/doc/asio/reference/any_io_executor/require/overload2.html +/doc/asio/reference/any_io_executor/require/overload3.html +/doc/asio/reference/any_io_executor/swap/ +/doc/asio/reference/any_io_executor/swap.html +/doc/asio/reference/any_io_executor/swap/overload1.html +/doc/asio/reference/any_io_executor/swap/overload2.html +/doc/asio/reference/any_io_executor/target/ +/doc/asio/reference/any_io_executor/target.html +/doc/asio/reference/any_io_executor/target/overload1.html +/doc/asio/reference/any_io_executor/target/overload2.html +/doc/asio/reference/any_io_executor/target_type.html +/doc/asio/reference/append.html +/doc/asio/reference/append_t/ +/doc/asio/reference/append_t/append_t.html +/doc/asio/reference/append_t.html +/doc/asio/reference/append_t/token_.html +/doc/asio/reference/append_t/values_.html /doc/asio/reference/asio_handler_allocate.html /doc/asio/reference/asio_handler_deallocate.html /doc/asio/reference/asio_handler_invoke/ @@ -82,13 +312,74 @@ /doc/asio/reference/asio_handler_invoke/overload2.html /doc/asio/reference/asio_handler_is_continuation.html /doc/asio/reference/associated_allocator/ -/doc/asio/reference/associated_allocator/get.html +/doc/asio/reference/associated_allocator/decltype/ +/doc/asio/reference/associated_allocator/decltype.html +/doc/asio/reference/associated_allocator/decltype/overload1.html +/doc/asio/reference/associated_allocator/decltype/overload2.html /doc/asio/reference/associated_allocator.html +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/ +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/ +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get.html +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload1.html +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload2.html +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_.html +/doc/asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/type.html +/doc/asio/reference/associated_allocator/noexcept.html /doc/asio/reference/associated_allocator/type.html +/doc/asio/reference/associated_cancellation_slot/ +/doc/asio/reference/associated_cancellation_slot/decltype/ +/doc/asio/reference/associated_cancellation_slot/decltype.html +/doc/asio/reference/associated_cancellation_slot/decltype/overload1.html +/doc/asio/reference/associated_cancellation_slot/decltype/overload2.html +/doc/asio/reference/associated_cancellation_slot.html +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/ +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/ +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get.html +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload1.html +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload2.html +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_.html +/doc/asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/type.html +/doc/asio/reference/associated_cancellation_slot/noexcept.html +/doc/asio/reference/associated_cancellation_slot/type.html /doc/asio/reference/associated_executor/ -/doc/asio/reference/associated_executor/get.html +/doc/asio/reference/associated_executor/decltype/ +/doc/asio/reference/associated_executor/decltype.html +/doc/asio/reference/associated_executor/decltype/overload1.html +/doc/asio/reference/associated_executor/decltype/overload2.html /doc/asio/reference/associated_executor.html +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/ +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/ +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload1.html +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload2.html +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html +/doc/asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html +/doc/asio/reference/associated_executor/noexcept.html /doc/asio/reference/associated_executor/type.html +/doc/asio/reference/associated_immediate_executor/ +/doc/asio/reference/associated_immediate_executor/decltype.html +/doc/asio/reference/associated_immediate_executor.html +/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/ +/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html +/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html +/doc/asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html +/doc/asio/reference/associated_immediate_executor/noexcept.html +/doc/asio/reference/associated_immediate_executor/type.html +/doc/asio/reference/associator.html +/doc/asio/reference/as_tuple.html +/doc/asio/reference/as_tuple_t/ +/doc/asio/reference/as_tuple_t/as_default_on.html +/doc/asio/reference/as_tuple_t/as_tuple_t/ +/doc/asio/reference/as_tuple_t/as_tuple_t.html +/doc/asio/reference/as_tuple_t/as_tuple_t/overload1.html +/doc/asio/reference/as_tuple_t/as_tuple_t/overload2.html +/doc/asio/reference/as_tuple_t__default_constructor_tag.html +/doc/asio/reference/as_tuple_t__executor_with_default/ +/doc/asio/reference/as_tuple_t__executor_with_default/default_completion_token_type.html +/doc/asio/reference/as_tuple_t__executor_with_default/executor_with_default.html +/doc/asio/reference/as_tuple_t__executor_with_default.html +/doc/asio/reference/as_tuple_t.html +/doc/asio/reference/as_tuple_t/token_.html /doc/asio/reference/async_completion/ /doc/asio/reference/async_completion/async_completion.html /doc/asio/reference/async_completion/completion_handler.html @@ -146,6 +437,11 @@ /doc/asio/reference/async_result/get.html /doc/asio/reference/async_result.html /doc/asio/reference/async_result/initiate.html +/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/ +/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/handler_type.html +/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_.html +/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/initiate.html +/doc/asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/return_type.html /doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/ /doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html /doc/asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html @@ -178,6 +474,7 @@ /doc/asio/reference/awaitable/awaitable/overload2.html /doc/asio/reference/awaitable/executor_type.html /doc/asio/reference/awaitable.html +/doc/asio/reference/awaitable/operator_eq_.html /doc/asio/reference/awaitable/valid.html /doc/asio/reference/awaitable/value_type.html /doc/asio/reference/bad_executor/ @@ -257,7 +554,6 @@ /doc/asio/reference/basic_datagram_socket/get_option/overload1.html /doc/asio/reference/basic_datagram_socket/get_option/overload2.html /doc/asio/reference/basic_datagram_socket.html -/doc/asio/reference/basic_datagram_socket/impl_.html /doc/asio/reference/basic_datagram_socket/io_control/ /doc/asio/reference/basic_datagram_socket/io_control.html /doc/asio/reference/basic_datagram_socket/io_control/overload1.html @@ -397,6 +693,81 @@ /doc/asio/reference/basic_deadline_timer/wait.html /doc/asio/reference/basic_deadline_timer/wait/overload1.html /doc/asio/reference/basic_deadline_timer/wait/overload2.html +/doc/asio/reference/basic_file/ +/doc/asio/reference/basic_file/append.html +/doc/asio/reference/basic_file/assign/ +/doc/asio/reference/basic_file/assign.html +/doc/asio/reference/basic_file/assign/overload1.html +/doc/asio/reference/basic_file/assign/overload2.html +/doc/asio/reference/basic_file/basic_file/ +/doc/asio/reference/basic_file/_basic_file.html +/doc/asio/reference/basic_file/basic_file.html +/doc/asio/reference/basic_file/basic_file/overload10.html +/doc/asio/reference/basic_file/basic_file/overload1.html +/doc/asio/reference/basic_file/basic_file/overload2.html +/doc/asio/reference/basic_file/basic_file/overload3.html +/doc/asio/reference/basic_file/basic_file/overload4.html +/doc/asio/reference/basic_file/basic_file/overload5.html +/doc/asio/reference/basic_file/basic_file/overload6.html +/doc/asio/reference/basic_file/basic_file/overload7.html +/doc/asio/reference/basic_file/basic_file/overload8.html +/doc/asio/reference/basic_file/basic_file/overload9.html +/doc/asio/reference/basic_file/cancel/ +/doc/asio/reference/basic_file/cancel.html +/doc/asio/reference/basic_file/cancel/overload1.html +/doc/asio/reference/basic_file/cancel/overload2.html +/doc/asio/reference/basic_file/close/ +/doc/asio/reference/basic_file/close.html +/doc/asio/reference/basic_file/close/overload1.html +/doc/asio/reference/basic_file/close/overload2.html +/doc/asio/reference/basic_file/create.html +/doc/asio/reference/basic_file/exclusive.html +/doc/asio/reference/basic_file/executor_type.html +/doc/asio/reference/basic_file/flags.html +/doc/asio/reference/basic_file/get_executor.html +/doc/asio/reference/basic_file.html +/doc/asio/reference/basic_file/is_open.html +/doc/asio/reference/basic_file/native_handle.html +/doc/asio/reference/basic_file/native_handle_type.html +/doc/asio/reference/basic_file/open/ +/doc/asio/reference/basic_file/open.html +/doc/asio/reference/basic_file/open/overload1.html +/doc/asio/reference/basic_file/open/overload2.html +/doc/asio/reference/basic_file/open/overload3.html +/doc/asio/reference/basic_file/open/overload4.html +/doc/asio/reference/basic_file/operator_eq_/ +/doc/asio/reference/basic_file/operator_eq_.html +/doc/asio/reference/basic_file/operator_eq_/overload1.html +/doc/asio/reference/basic_file/operator_eq_/overload2.html +/doc/asio/reference/basic_file/read_only.html +/doc/asio/reference/basic_file/read_write.html +/doc/asio/reference/basic_file__rebind_executor/ +/doc/asio/reference/basic_file__rebind_executor.html +/doc/asio/reference/basic_file__rebind_executor/other.html +/doc/asio/reference/basic_file/release/ +/doc/asio/reference/basic_file/release.html +/doc/asio/reference/basic_file/release/overload1.html +/doc/asio/reference/basic_file/release/overload2.html +/doc/asio/reference/basic_file/resize/ +/doc/asio/reference/basic_file/resize.html +/doc/asio/reference/basic_file/resize/overload1.html +/doc/asio/reference/basic_file/resize/overload2.html +/doc/asio/reference/basic_file/seek_basis.html +/doc/asio/reference/basic_file/size/ +/doc/asio/reference/basic_file/size.html +/doc/asio/reference/basic_file/size/overload1.html +/doc/asio/reference/basic_file/size/overload2.html +/doc/asio/reference/basic_file/sync_all/ +/doc/asio/reference/basic_file/sync_all.html +/doc/asio/reference/basic_file/sync_all_on_write.html +/doc/asio/reference/basic_file/sync_all/overload1.html +/doc/asio/reference/basic_file/sync_all/overload2.html +/doc/asio/reference/basic_file/sync_data/ +/doc/asio/reference/basic_file/sync_data.html +/doc/asio/reference/basic_file/sync_data/overload1.html +/doc/asio/reference/basic_file/sync_data/overload2.html +/doc/asio/reference/basic_file/truncate.html +/doc/asio/reference/basic_file/write_only.html /doc/asio/reference/basic_io_object/ /doc/asio/reference/basic_io_object/basic_io_object/ /doc/asio/reference/basic_io_object/_basic_io_object.html @@ -420,6 +791,91 @@ /doc/asio/reference/basic_io_object/implementation_type.html /doc/asio/reference/basic_io_object/operator_eq_.html /doc/asio/reference/basic_io_object/service_type.html +/doc/asio/reference/basic_random_access_file/ +/doc/asio/reference/basic_random_access_file/append.html +/doc/asio/reference/basic_random_access_file/assign/ +/doc/asio/reference/basic_random_access_file/assign.html +/doc/asio/reference/basic_random_access_file/assign/overload1.html +/doc/asio/reference/basic_random_access_file/assign/overload2.html +/doc/asio/reference/basic_random_access_file/async_read_some_at.html +/doc/asio/reference/basic_random_access_file/async_write_some_at.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/ +/doc/asio/reference/basic_random_access_file/_basic_random_access_file.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload10.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload1.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload2.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload3.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload4.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload5.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload6.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload7.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload8.html +/doc/asio/reference/basic_random_access_file/basic_random_access_file/overload9.html +/doc/asio/reference/basic_random_access_file/cancel/ +/doc/asio/reference/basic_random_access_file/cancel.html +/doc/asio/reference/basic_random_access_file/cancel/overload1.html +/doc/asio/reference/basic_random_access_file/cancel/overload2.html +/doc/asio/reference/basic_random_access_file/close/ +/doc/asio/reference/basic_random_access_file/close.html +/doc/asio/reference/basic_random_access_file/close/overload1.html +/doc/asio/reference/basic_random_access_file/close/overload2.html +/doc/asio/reference/basic_random_access_file/create.html +/doc/asio/reference/basic_random_access_file/exclusive.html +/doc/asio/reference/basic_random_access_file/executor_type.html +/doc/asio/reference/basic_random_access_file/flags.html +/doc/asio/reference/basic_random_access_file/get_executor.html +/doc/asio/reference/basic_random_access_file.html +/doc/asio/reference/basic_random_access_file/is_open.html +/doc/asio/reference/basic_random_access_file/native_handle.html +/doc/asio/reference/basic_random_access_file/native_handle_type.html +/doc/asio/reference/basic_random_access_file/open/ +/doc/asio/reference/basic_random_access_file/open.html +/doc/asio/reference/basic_random_access_file/open/overload1.html +/doc/asio/reference/basic_random_access_file/open/overload2.html +/doc/asio/reference/basic_random_access_file/open/overload3.html +/doc/asio/reference/basic_random_access_file/open/overload4.html +/doc/asio/reference/basic_random_access_file/operator_eq_/ +/doc/asio/reference/basic_random_access_file/operator_eq_.html +/doc/asio/reference/basic_random_access_file/operator_eq_/overload1.html +/doc/asio/reference/basic_random_access_file/operator_eq_/overload2.html +/doc/asio/reference/basic_random_access_file/read_only.html +/doc/asio/reference/basic_random_access_file/read_some_at/ +/doc/asio/reference/basic_random_access_file/read_some_at.html +/doc/asio/reference/basic_random_access_file/read_some_at/overload1.html +/doc/asio/reference/basic_random_access_file/read_some_at/overload2.html +/doc/asio/reference/basic_random_access_file/read_write.html +/doc/asio/reference/basic_random_access_file__rebind_executor/ +/doc/asio/reference/basic_random_access_file__rebind_executor.html +/doc/asio/reference/basic_random_access_file__rebind_executor/other.html +/doc/asio/reference/basic_random_access_file/release/ +/doc/asio/reference/basic_random_access_file/release.html +/doc/asio/reference/basic_random_access_file/release/overload1.html +/doc/asio/reference/basic_random_access_file/release/overload2.html +/doc/asio/reference/basic_random_access_file/resize/ +/doc/asio/reference/basic_random_access_file/resize.html +/doc/asio/reference/basic_random_access_file/resize/overload1.html +/doc/asio/reference/basic_random_access_file/resize/overload2.html +/doc/asio/reference/basic_random_access_file/seek_basis.html +/doc/asio/reference/basic_random_access_file/size/ +/doc/asio/reference/basic_random_access_file/size.html +/doc/asio/reference/basic_random_access_file/size/overload1.html +/doc/asio/reference/basic_random_access_file/size/overload2.html +/doc/asio/reference/basic_random_access_file/sync_all/ +/doc/asio/reference/basic_random_access_file/sync_all.html +/doc/asio/reference/basic_random_access_file/sync_all_on_write.html +/doc/asio/reference/basic_random_access_file/sync_all/overload1.html +/doc/asio/reference/basic_random_access_file/sync_all/overload2.html +/doc/asio/reference/basic_random_access_file/sync_data/ +/doc/asio/reference/basic_random_access_file/sync_data.html +/doc/asio/reference/basic_random_access_file/sync_data/overload1.html +/doc/asio/reference/basic_random_access_file/sync_data/overload2.html +/doc/asio/reference/basic_random_access_file/truncate.html +/doc/asio/reference/basic_random_access_file/write_only.html +/doc/asio/reference/basic_random_access_file/write_some_at/ +/doc/asio/reference/basic_random_access_file/write_some_at.html +/doc/asio/reference/basic_random_access_file/write_some_at/overload1.html +/doc/asio/reference/basic_random_access_file/write_some_at/overload2.html /doc/asio/reference/basic_raw_socket/ /doc/asio/reference/basic_raw_socket/assign/ /doc/asio/reference/basic_raw_socket/assign.html @@ -493,7 +949,6 @@ /doc/asio/reference/basic_raw_socket/get_option/overload1.html /doc/asio/reference/basic_raw_socket/get_option/overload2.html /doc/asio/reference/basic_raw_socket.html -/doc/asio/reference/basic_raw_socket/impl_.html /doc/asio/reference/basic_raw_socket/io_control/ /doc/asio/reference/basic_raw_socket/io_control.html /doc/asio/reference/basic_raw_socket/io_control/overload1.html @@ -589,6 +1044,55 @@ /doc/asio/reference/basic_raw_socket/wait/overload1.html /doc/asio/reference/basic_raw_socket/wait/overload2.html /doc/asio/reference/basic_raw_socket/wait_type.html +/doc/asio/reference/basic_readable_pipe/ +/doc/asio/reference/basic_readable_pipe/assign/ +/doc/asio/reference/basic_readable_pipe/assign.html +/doc/asio/reference/basic_readable_pipe/assign/overload1.html +/doc/asio/reference/basic_readable_pipe/assign/overload2.html +/doc/asio/reference/basic_readable_pipe/async_read_some.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/ +/doc/asio/reference/basic_readable_pipe/_basic_readable_pipe.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload1.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload2.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload3.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload4.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload5.html +/doc/asio/reference/basic_readable_pipe/basic_readable_pipe/overload6.html +/doc/asio/reference/basic_readable_pipe/cancel/ +/doc/asio/reference/basic_readable_pipe/cancel.html +/doc/asio/reference/basic_readable_pipe/cancel/overload1.html +/doc/asio/reference/basic_readable_pipe/cancel/overload2.html +/doc/asio/reference/basic_readable_pipe/close/ +/doc/asio/reference/basic_readable_pipe/close.html +/doc/asio/reference/basic_readable_pipe/close/overload1.html +/doc/asio/reference/basic_readable_pipe/close/overload2.html +/doc/asio/reference/basic_readable_pipe/executor_type.html +/doc/asio/reference/basic_readable_pipe/get_executor.html +/doc/asio/reference/basic_readable_pipe.html +/doc/asio/reference/basic_readable_pipe/is_open.html +/doc/asio/reference/basic_readable_pipe/lowest_layer/ +/doc/asio/reference/basic_readable_pipe/lowest_layer.html +/doc/asio/reference/basic_readable_pipe/lowest_layer/overload1.html +/doc/asio/reference/basic_readable_pipe/lowest_layer/overload2.html +/doc/asio/reference/basic_readable_pipe/lowest_layer_type.html +/doc/asio/reference/basic_readable_pipe/native_handle.html +/doc/asio/reference/basic_readable_pipe/native_handle_type.html +/doc/asio/reference/basic_readable_pipe/operator_eq_/ +/doc/asio/reference/basic_readable_pipe/operator_eq_.html +/doc/asio/reference/basic_readable_pipe/operator_eq_/overload1.html +/doc/asio/reference/basic_readable_pipe/operator_eq_/overload2.html +/doc/asio/reference/basic_readable_pipe/read_some/ +/doc/asio/reference/basic_readable_pipe/read_some.html +/doc/asio/reference/basic_readable_pipe/read_some/overload1.html +/doc/asio/reference/basic_readable_pipe/read_some/overload2.html +/doc/asio/reference/basic_readable_pipe__rebind_executor/ +/doc/asio/reference/basic_readable_pipe__rebind_executor.html +/doc/asio/reference/basic_readable_pipe__rebind_executor/other.html +/doc/asio/reference/basic_readable_pipe/release/ +/doc/asio/reference/basic_readable_pipe/release.html +/doc/asio/reference/basic_readable_pipe/release/overload1.html +/doc/asio/reference/basic_readable_pipe/release/overload2.html /doc/asio/reference/basic_seq_packet_socket/ /doc/asio/reference/basic_seq_packet_socket/assign/ /doc/asio/reference/basic_seq_packet_socket/assign.html @@ -651,7 +1155,6 @@ /doc/asio/reference/basic_seq_packet_socket/get_option/overload1.html /doc/asio/reference/basic_seq_packet_socket/get_option/overload2.html /doc/asio/reference/basic_seq_packet_socket.html -/doc/asio/reference/basic_seq_packet_socket/impl_.html /doc/asio/reference/basic_seq_packet_socket/io_control/ /doc/asio/reference/basic_seq_packet_socket/io_control.html /doc/asio/reference/basic_seq_packet_socket/io_control/overload1.html @@ -746,6 +1249,7 @@ /doc/asio/reference/basic_serial_port/basic_serial_port/ /doc/asio/reference/basic_serial_port/_basic_serial_port.html /doc/asio/reference/basic_serial_port/basic_serial_port.html +/doc/asio/reference/basic_serial_port/basic_serial_port/overload10.html /doc/asio/reference/basic_serial_port/basic_serial_port/overload1.html /doc/asio/reference/basic_serial_port/basic_serial_port/overload2.html /doc/asio/reference/basic_serial_port/basic_serial_port/overload3.html @@ -782,7 +1286,10 @@ /doc/asio/reference/basic_serial_port/open.html /doc/asio/reference/basic_serial_port/open/overload1.html /doc/asio/reference/basic_serial_port/open/overload2.html +/doc/asio/reference/basic_serial_port/operator_eq_/ /doc/asio/reference/basic_serial_port/operator_eq_.html +/doc/asio/reference/basic_serial_port/operator_eq_/overload1.html +/doc/asio/reference/basic_serial_port/operator_eq_/overload2.html /doc/asio/reference/basic_serial_port/read_some/ /doc/asio/reference/basic_serial_port/read_some.html /doc/asio/reference/basic_serial_port/read_some/overload1.html @@ -807,6 +1314,8 @@ /doc/asio/reference/basic_signal_set/add.html /doc/asio/reference/basic_signal_set/add/overload1.html /doc/asio/reference/basic_signal_set/add/overload2.html +/doc/asio/reference/basic_signal_set/add/overload3.html +/doc/asio/reference/basic_signal_set/add/overload4.html /doc/asio/reference/basic_signal_set/async_wait.html /doc/asio/reference/basic_signal_set/basic_signal_set/ /doc/asio/reference/basic_signal_set/_basic_signal_set.html @@ -828,6 +1337,8 @@ /doc/asio/reference/basic_signal_set/clear/overload1.html /doc/asio/reference/basic_signal_set/clear/overload2.html /doc/asio/reference/basic_signal_set/executor_type.html +/doc/asio/reference/basic_signal_set/flags.html +/doc/asio/reference/basic_signal_set/flags_t.html /doc/asio/reference/basic_signal_set/get_executor.html /doc/asio/reference/basic_signal_set.html /doc/asio/reference/basic_signal_set__rebind_executor/ @@ -1032,7 +1543,6 @@ /doc/asio/reference/basic_socket/get_option/overload1.html /doc/asio/reference/basic_socket/get_option/overload2.html /doc/asio/reference/basic_socket.html -/doc/asio/reference/basic_socket/impl_.html /doc/asio/reference/basic_socket/io_control/ /doc/asio/reference/basic_socket/io_control.html /doc/asio/reference/basic_socket/io_control/overload1.html @@ -1208,6 +1718,95 @@ /doc/asio/reference/basic_streambuf/reserve.html /doc/asio/reference/basic_streambuf/size.html /doc/asio/reference/basic_streambuf/underflow.html +/doc/asio/reference/basic_stream_file/ +/doc/asio/reference/basic_stream_file/append.html +/doc/asio/reference/basic_stream_file/assign/ +/doc/asio/reference/basic_stream_file/assign.html +/doc/asio/reference/basic_stream_file/assign/overload1.html +/doc/asio/reference/basic_stream_file/assign/overload2.html +/doc/asio/reference/basic_stream_file/async_read_some.html +/doc/asio/reference/basic_stream_file/async_write_some.html +/doc/asio/reference/basic_stream_file/basic_stream_file/ +/doc/asio/reference/basic_stream_file/_basic_stream_file.html +/doc/asio/reference/basic_stream_file/basic_stream_file.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload10.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload1.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload2.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload3.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload4.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload5.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload6.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload7.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload8.html +/doc/asio/reference/basic_stream_file/basic_stream_file/overload9.html +/doc/asio/reference/basic_stream_file/cancel/ +/doc/asio/reference/basic_stream_file/cancel.html +/doc/asio/reference/basic_stream_file/cancel/overload1.html +/doc/asio/reference/basic_stream_file/cancel/overload2.html +/doc/asio/reference/basic_stream_file/close/ +/doc/asio/reference/basic_stream_file/close.html +/doc/asio/reference/basic_stream_file/close/overload1.html +/doc/asio/reference/basic_stream_file/close/overload2.html +/doc/asio/reference/basic_stream_file/create.html +/doc/asio/reference/basic_stream_file/exclusive.html +/doc/asio/reference/basic_stream_file/executor_type.html +/doc/asio/reference/basic_stream_file/flags.html +/doc/asio/reference/basic_stream_file/get_executor.html +/doc/asio/reference/basic_stream_file.html +/doc/asio/reference/basic_stream_file/is_open.html +/doc/asio/reference/basic_stream_file/native_handle.html +/doc/asio/reference/basic_stream_file/native_handle_type.html +/doc/asio/reference/basic_stream_file/open/ +/doc/asio/reference/basic_stream_file/open.html +/doc/asio/reference/basic_stream_file/open/overload1.html +/doc/asio/reference/basic_stream_file/open/overload2.html +/doc/asio/reference/basic_stream_file/open/overload3.html +/doc/asio/reference/basic_stream_file/open/overload4.html +/doc/asio/reference/basic_stream_file/operator_eq_/ +/doc/asio/reference/basic_stream_file/operator_eq_.html +/doc/asio/reference/basic_stream_file/operator_eq_/overload1.html +/doc/asio/reference/basic_stream_file/operator_eq_/overload2.html +/doc/asio/reference/basic_stream_file/read_only.html +/doc/asio/reference/basic_stream_file/read_some/ +/doc/asio/reference/basic_stream_file/read_some.html +/doc/asio/reference/basic_stream_file/read_some/overload1.html +/doc/asio/reference/basic_stream_file/read_some/overload2.html +/doc/asio/reference/basic_stream_file/read_write.html +/doc/asio/reference/basic_stream_file__rebind_executor/ +/doc/asio/reference/basic_stream_file__rebind_executor.html +/doc/asio/reference/basic_stream_file__rebind_executor/other.html +/doc/asio/reference/basic_stream_file/release/ +/doc/asio/reference/basic_stream_file/release.html +/doc/asio/reference/basic_stream_file/release/overload1.html +/doc/asio/reference/basic_stream_file/release/overload2.html +/doc/asio/reference/basic_stream_file/resize/ +/doc/asio/reference/basic_stream_file/resize.html +/doc/asio/reference/basic_stream_file/resize/overload1.html +/doc/asio/reference/basic_stream_file/resize/overload2.html +/doc/asio/reference/basic_stream_file/seek/ +/doc/asio/reference/basic_stream_file/seek_basis.html +/doc/asio/reference/basic_stream_file/seek.html +/doc/asio/reference/basic_stream_file/seek/overload1.html +/doc/asio/reference/basic_stream_file/seek/overload2.html +/doc/asio/reference/basic_stream_file/size/ +/doc/asio/reference/basic_stream_file/size.html +/doc/asio/reference/basic_stream_file/size/overload1.html +/doc/asio/reference/basic_stream_file/size/overload2.html +/doc/asio/reference/basic_stream_file/sync_all/ +/doc/asio/reference/basic_stream_file/sync_all.html +/doc/asio/reference/basic_stream_file/sync_all_on_write.html +/doc/asio/reference/basic_stream_file/sync_all/overload1.html +/doc/asio/reference/basic_stream_file/sync_all/overload2.html +/doc/asio/reference/basic_stream_file/sync_data/ +/doc/asio/reference/basic_stream_file/sync_data.html +/doc/asio/reference/basic_stream_file/sync_data/overload1.html +/doc/asio/reference/basic_stream_file/sync_data/overload2.html +/doc/asio/reference/basic_stream_file/truncate.html +/doc/asio/reference/basic_stream_file/write_only.html +/doc/asio/reference/basic_stream_file/write_some/ +/doc/asio/reference/basic_stream_file/write_some.html +/doc/asio/reference/basic_stream_file/write_some/overload1.html +/doc/asio/reference/basic_stream_file/write_some/overload2.html /doc/asio/reference/basic_stream_socket/ /doc/asio/reference/basic_stream_socket/assign/ /doc/asio/reference/basic_stream_socket/assign.html @@ -1275,7 +1874,6 @@ /doc/asio/reference/basic_stream_socket/get_option/overload1.html /doc/asio/reference/basic_stream_socket/get_option/overload2.html /doc/asio/reference/basic_stream_socket.html -/doc/asio/reference/basic_stream_socket/impl_.html /doc/asio/reference/basic_stream_socket/io_control/ /doc/asio/reference/basic_stream_socket/io_control.html /doc/asio/reference/basic_stream_socket/io_control/overload1.html @@ -1452,19 +2050,81 @@ /doc/asio/reference/basic_waitable_timer/wait.html /doc/asio/reference/basic_waitable_timer/wait/overload1.html /doc/asio/reference/basic_waitable_timer/wait/overload2.html +/doc/asio/reference/basic_writable_pipe/ +/doc/asio/reference/basic_writable_pipe/assign/ +/doc/asio/reference/basic_writable_pipe/assign.html +/doc/asio/reference/basic_writable_pipe/assign/overload1.html +/doc/asio/reference/basic_writable_pipe/assign/overload2.html +/doc/asio/reference/basic_writable_pipe/async_write_some.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/ +/doc/asio/reference/basic_writable_pipe/_basic_writable_pipe.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload1.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload2.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload3.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload4.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload5.html +/doc/asio/reference/basic_writable_pipe/basic_writable_pipe/overload6.html +/doc/asio/reference/basic_writable_pipe/cancel/ +/doc/asio/reference/basic_writable_pipe/cancel.html +/doc/asio/reference/basic_writable_pipe/cancel/overload1.html +/doc/asio/reference/basic_writable_pipe/cancel/overload2.html +/doc/asio/reference/basic_writable_pipe/close/ +/doc/asio/reference/basic_writable_pipe/close.html +/doc/asio/reference/basic_writable_pipe/close/overload1.html +/doc/asio/reference/basic_writable_pipe/close/overload2.html +/doc/asio/reference/basic_writable_pipe/executor_type.html +/doc/asio/reference/basic_writable_pipe/get_executor.html +/doc/asio/reference/basic_writable_pipe.html +/doc/asio/reference/basic_writable_pipe/is_open.html +/doc/asio/reference/basic_writable_pipe/lowest_layer/ +/doc/asio/reference/basic_writable_pipe/lowest_layer.html +/doc/asio/reference/basic_writable_pipe/lowest_layer/overload1.html +/doc/asio/reference/basic_writable_pipe/lowest_layer/overload2.html +/doc/asio/reference/basic_writable_pipe/lowest_layer_type.html +/doc/asio/reference/basic_writable_pipe/native_handle.html +/doc/asio/reference/basic_writable_pipe/native_handle_type.html +/doc/asio/reference/basic_writable_pipe/operator_eq_/ +/doc/asio/reference/basic_writable_pipe/operator_eq_.html +/doc/asio/reference/basic_writable_pipe/operator_eq_/overload1.html +/doc/asio/reference/basic_writable_pipe/operator_eq_/overload2.html +/doc/asio/reference/basic_writable_pipe__rebind_executor/ +/doc/asio/reference/basic_writable_pipe__rebind_executor.html +/doc/asio/reference/basic_writable_pipe__rebind_executor/other.html +/doc/asio/reference/basic_writable_pipe/release/ +/doc/asio/reference/basic_writable_pipe/release.html +/doc/asio/reference/basic_writable_pipe/release/overload1.html +/doc/asio/reference/basic_writable_pipe/release/overload2.html +/doc/asio/reference/basic_writable_pipe/write_some/ +/doc/asio/reference/basic_writable_pipe/write_some.html +/doc/asio/reference/basic_writable_pipe/write_some/overload1.html +/doc/asio/reference/basic_writable_pipe/write_some/overload2.html /doc/asio/reference/basic_yield_context/ -/doc/asio/reference/basic_yield_context/basic_yield_context/ /doc/asio/reference/basic_yield_context/basic_yield_context.html -/doc/asio/reference/basic_yield_context/basic_yield_context/overload1.html -/doc/asio/reference/basic_yield_context/basic_yield_context/overload2.html -/doc/asio/reference/basic_yield_context/callee_type.html -/doc/asio/reference/basic_yield_context/caller_type.html +/doc/asio/reference/basic_yield_context/cancellation_slot_type.html +/doc/asio/reference/basic_yield_context/cancelled.html +/doc/asio/reference/basic_yield_context/executor_type.html +/doc/asio/reference/basic_yield_context/get_cancellation_slot.html +/doc/asio/reference/basic_yield_context/get_cancellation_state.html +/doc/asio/reference/basic_yield_context/get_executor.html /doc/asio/reference/basic_yield_context.html /doc/asio/reference/basic_yield_context/operator_lb__rb_.html +/doc/asio/reference/basic_yield_context/reset_cancellation_state/ +/doc/asio/reference/basic_yield_context/reset_cancellation_state.html +/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload1.html +/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload2.html +/doc/asio/reference/basic_yield_context/reset_cancellation_state/overload3.html +/doc/asio/reference/basic_yield_context/throw_if_cancelled/ +/doc/asio/reference/basic_yield_context/throw_if_cancelled.html +/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload1.html +/doc/asio/reference/basic_yield_context/throw_if_cancelled/overload2.html +/doc/asio/reference/bind_allocator.html +/doc/asio/reference/bind_cancellation_slot.html /doc/asio/reference/bind_executor/ /doc/asio/reference/bind_executor.html /doc/asio/reference/bind_executor/overload1.html /doc/asio/reference/bind_executor/overload2.html +/doc/asio/reference/bind_immediate_executor.html /doc/asio/reference/buffer/ /doc/asio/reference/buffer_cast/ /doc/asio/reference/buffer_cast.html @@ -1475,6 +2135,7 @@ /doc/asio/reference/buffer_copy/overload1.html /doc/asio/reference/buffer_copy/overload2.html /doc/asio/reference/BufferedHandshakeHandler.html +/doc/asio/reference/BufferedHandshakeToken.html /doc/asio/reference/buffered_read_stream/ /doc/asio/reference/buffered_read_stream/async_fill.html /doc/asio/reference/buffered_read_stream/async_read_some.html @@ -1609,6 +2270,10 @@ /doc/asio/reference/buffered_write_stream/write_some/overload1.html /doc/asio/reference/buffered_write_stream/write_some/overload2.html /doc/asio/reference/buffer.html +/doc/asio/reference/buffer_literals__operator_quot__quot__buf/ +/doc/asio/reference/buffer_literals__operator_quot__quot__buf.html +/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload1.html +/doc/asio/reference/buffer_literals__operator_quot__quot__buf/overload2.html /doc/asio/reference/buffer/overload10.html /doc/asio/reference/buffer/overload11.html /doc/asio/reference/buffer/overload12.html @@ -1634,13 +2299,42 @@ /doc/asio/reference/buffer/overload30.html /doc/asio/reference/buffer/overload31.html /doc/asio/reference/buffer/overload32.html +/doc/asio/reference/buffer/overload33.html +/doc/asio/reference/buffer/overload34.html +/doc/asio/reference/buffer/overload35.html +/doc/asio/reference/buffer/overload36.html +/doc/asio/reference/buffer/overload37.html +/doc/asio/reference/buffer/overload38.html +/doc/asio/reference/buffer/overload39.html /doc/asio/reference/buffer/overload3.html +/doc/asio/reference/buffer/overload40.html +/doc/asio/reference/buffer/overload41.html +/doc/asio/reference/buffer/overload42.html /doc/asio/reference/buffer/overload4.html /doc/asio/reference/buffer/overload5.html /doc/asio/reference/buffer/overload6.html /doc/asio/reference/buffer/overload7.html /doc/asio/reference/buffer/overload8.html /doc/asio/reference/buffer/overload9.html +/doc/asio/reference/buffer_registration/ +/doc/asio/reference/buffer_registration/allocator_type.html +/doc/asio/reference/buffer_registration/at.html +/doc/asio/reference/buffer_registration/begin.html +/doc/asio/reference/buffer_registration/buffer_registration/ +/doc/asio/reference/buffer_registration/_buffer_registration.html +/doc/asio/reference/buffer_registration/buffer_registration.html +/doc/asio/reference/buffer_registration/buffer_registration/overload1.html +/doc/asio/reference/buffer_registration/buffer_registration/overload2.html +/doc/asio/reference/buffer_registration/buffer_registration/overload3.html +/doc/asio/reference/buffer_registration/cbegin.html +/doc/asio/reference/buffer_registration/cend.html +/doc/asio/reference/buffer_registration/const_iterator.html +/doc/asio/reference/buffer_registration/end.html +/doc/asio/reference/buffer_registration.html +/doc/asio/reference/buffer_registration/iterator.html +/doc/asio/reference/buffer_registration/operator_eq_.html +/doc/asio/reference/buffer_registration/operator_lb__rb_.html +/doc/asio/reference/buffer_registration/size.html /doc/asio/reference/buffers_begin.html /doc/asio/reference/buffers_end.html /doc/asio/reference/buffer_sequence_begin/ @@ -1649,12 +2343,16 @@ /doc/asio/reference/buffer_sequence_begin/overload2.html /doc/asio/reference/buffer_sequence_begin/overload3.html /doc/asio/reference/buffer_sequence_begin/overload4.html +/doc/asio/reference/buffer_sequence_begin/overload5.html +/doc/asio/reference/buffer_sequence_begin/overload6.html /doc/asio/reference/buffer_sequence_end/ /doc/asio/reference/buffer_sequence_end.html /doc/asio/reference/buffer_sequence_end/overload1.html /doc/asio/reference/buffer_sequence_end/overload2.html /doc/asio/reference/buffer_sequence_end/overload3.html /doc/asio/reference/buffer_sequence_end/overload4.html +/doc/asio/reference/buffer_sequence_end/overload5.html +/doc/asio/reference/buffer_sequence_end/overload6.html /doc/asio/reference/buffers_iterator/ /doc/asio/reference/buffers_iterator/begin.html /doc/asio/reference/buffers_iterator/buffers_iterator.html @@ -1693,12 +2391,77 @@ /doc/asio/reference/buffers_iterator/reference.html /doc/asio/reference/buffers_iterator/value_type.html /doc/asio/reference/buffer_size.html +/doc/asio/reference/cancellation_filter/ +/doc/asio/reference/cancellation_filter.html +/doc/asio/reference/cancellation_filter/operator_lp__rp_.html +/doc/asio/reference/CancellationHandler.html +/doc/asio/reference/cancellation_signal/ +/doc/asio/reference/cancellation_signal/_cancellation_signal.html +/doc/asio/reference/cancellation_signal/cancellation_signal.html +/doc/asio/reference/cancellation_signal/emit.html +/doc/asio/reference/cancellation_signal.html +/doc/asio/reference/cancellation_signal/slot.html +/doc/asio/reference/cancellation_slot/ +/doc/asio/reference/cancellation_slot/assign.html +/doc/asio/reference/cancellation_slot_binder/ +/doc/asio/reference/cancellation_slot_binder/argument_type.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/ +/doc/asio/reference/cancellation_slot_binder/_cancellation_slot_binder.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload1.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload2.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload3.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload4.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload5.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload6.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload7.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload8.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload9.html +/doc/asio/reference/cancellation_slot_binder/cancellation_slot_type.html +/doc/asio/reference/cancellation_slot_binder/first_argument_type.html +/doc/asio/reference/cancellation_slot_binder/get/ +/doc/asio/reference/cancellation_slot_binder/get_cancellation_slot.html +/doc/asio/reference/cancellation_slot_binder/get.html +/doc/asio/reference/cancellation_slot_binder/get/overload1.html +/doc/asio/reference/cancellation_slot_binder/get/overload2.html +/doc/asio/reference/cancellation_slot_binder.html +/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/ +/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_.html +/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload1.html +/doc/asio/reference/cancellation_slot_binder/operator_lp__rp_/overload2.html +/doc/asio/reference/cancellation_slot_binder/result_type.html +/doc/asio/reference/cancellation_slot_binder/second_argument_type.html +/doc/asio/reference/cancellation_slot_binder/target_type.html +/doc/asio/reference/cancellation_slot/cancellation_slot.html +/doc/asio/reference/cancellation_slot/clear.html +/doc/asio/reference/cancellation_slot/emplace.html +/doc/asio/reference/cancellation_slot/has_handler.html +/doc/asio/reference/CancellationSlot.html +/doc/asio/reference/cancellation_slot.html +/doc/asio/reference/cancellation_slot/is_connected.html +/doc/asio/reference/cancellation_slot/operator_eq__eq_.html +/doc/asio/reference/cancellation_slot/operator_not__eq_.html +/doc/asio/reference/cancellation_state/ +/doc/asio/reference/cancellation_state/cancellation_state/ +/doc/asio/reference/cancellation_state/cancellation_state.html +/doc/asio/reference/cancellation_state/cancellation_state/overload1.html +/doc/asio/reference/cancellation_state/cancellation_state/overload2.html +/doc/asio/reference/cancellation_state/cancellation_state/overload3.html +/doc/asio/reference/cancellation_state/cancellation_state/overload4.html +/doc/asio/reference/cancellation_state/cancelled.html +/doc/asio/reference/cancellation_state/clear.html +/doc/asio/reference/cancellation_state.html +/doc/asio/reference/cancellation_state/slot.html +/doc/asio/reference/cancellation_type.html +/doc/asio/reference/cancellation_type_t.html /doc/asio/reference/can_prefer.html /doc/asio/reference/can_query.html /doc/asio/reference/can_require_concept.html /doc/asio/reference/can_require.html /doc/asio/reference/CompletionCondition.html -/doc/asio/reference/CompletionHandler.html +/doc/asio/reference/completion_signature_of/ +/doc/asio/reference/completion_signature_of.html +/doc/asio/reference/completion_signature_of/type.html /doc/asio/reference/connect/ /doc/asio/reference/ConnectCondition.html /doc/asio/reference/ConnectHandler.html @@ -1715,6 +2478,15 @@ /doc/asio/reference/connect/overload7.html /doc/asio/reference/connect/overload8.html /doc/asio/reference/connect/overload9.html +/doc/asio/reference/connect_pipe/ +/doc/asio/reference/connect_pipe.html +/doc/asio/reference/connect_pipe/overload1.html +/doc/asio/reference/connect_pipe/overload2.html +/doc/asio/reference/ConnectToken.html +/doc/asio/reference/consign.html +/doc/asio/reference/consign_t/ +/doc/asio/reference/consign_t/consign_t.html +/doc/asio/reference/consign_t.html /doc/asio/reference/const_buffer/ /doc/asio/reference/const_buffer/const_buffer/ /doc/asio/reference/const_buffer/const_buffer.html @@ -1747,6 +2519,21 @@ /doc/asio/reference/const_buffers_1/value_type.html /doc/asio/reference/ConstBufferSequence.html /doc/asio/reference/const_buffer/size.html +/doc/asio/reference/const_registered_buffer/ +/doc/asio/reference/const_registered_buffer/buffer.html +/doc/asio/reference/const_registered_buffer/const_registered_buffer/ +/doc/asio/reference/const_registered_buffer/const_registered_buffer.html +/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload1.html +/doc/asio/reference/const_registered_buffer/const_registered_buffer/overload2.html +/doc/asio/reference/const_registered_buffer/data.html +/doc/asio/reference/const_registered_buffer.html +/doc/asio/reference/const_registered_buffer/id.html +/doc/asio/reference/const_registered_buffer/operator_plus_/ +/doc/asio/reference/const_registered_buffer/operator_plus__eq_.html +/doc/asio/reference/const_registered_buffer/operator_plus_.html +/doc/asio/reference/const_registered_buffer/operator_plus_/overload1.html +/doc/asio/reference/const_registered_buffer/operator_plus_/overload2.html +/doc/asio/reference/const_registered_buffer/size.html /doc/asio/reference/coroutine/ /doc/asio/reference/coroutine/coroutine.html /doc/asio/reference/coroutine.html @@ -1770,6 +2557,62 @@ /doc/asio/reference/defer/overload1.html /doc/asio/reference/defer/overload2.html /doc/asio/reference/defer/overload3.html +/doc/asio/reference/deferred_async_operation/ +/doc/asio/reference/deferred_async_operation/deferred_async_operation.html +/doc/asio/reference/deferred_async_operation/detail__index_sequence_for.html +/doc/asio/reference/deferred_async_operation.html +/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/ +/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/deferred_async_operation.html +/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/detail__index_sequence_for.html +/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_.html +/doc/asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/operator_lp__rp_.html +/doc/asio/reference/deferred_async_operation/operator_lp__rp_.html +/doc/asio/reference/deferred_conditional/ +/doc/asio/reference/deferred_conditional/deferred_conditional.html +/doc/asio/reference/deferred_conditional.html +/doc/asio/reference/deferred_conditional/operator_lp__rp_.html +/doc/asio/reference/deferred_conditional/otherwise.html +/doc/asio/reference/deferred_conditional/then.html +/doc/asio/reference/deferred_function/ +/doc/asio/reference/deferred_function/deferred_function.html +/doc/asio/reference/deferred_function/function_.html +/doc/asio/reference/deferred_function.html +/doc/asio/reference/deferred_function/operator_lp__rp_.html +/doc/asio/reference/deferred.html +/doc/asio/reference/deferred_init_tag.html +/doc/asio/reference/deferred_noop/ +/doc/asio/reference/deferred_noop.html +/doc/asio/reference/deferred_noop/operator_lp__rp_.html +/doc/asio/reference/deferred_sequence/ +/doc/asio/reference/deferred_sequence/deferred_sequence.html +/doc/asio/reference/deferred_sequence.html +/doc/asio/reference/deferred_sequence/operator_lp__rp_/ +/doc/asio/reference/deferred_sequence/operator_lp__rp_.html +/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload1.html +/doc/asio/reference/deferred_sequence/operator_lp__rp_/overload2.html +/doc/asio/reference/deferred_signatures.html +/doc/asio/reference/deferred_t/ +/doc/asio/reference/deferred_t/as_default_on.html +/doc/asio/reference/deferred_t/deferred_t.html +/doc/asio/reference/deferred_t__executor_with_default/ +/doc/asio/reference/deferred_t__executor_with_default/default_completion_token_type.html +/doc/asio/reference/deferred_t__executor_with_default/executor_with_default.html +/doc/asio/reference/deferred_t__executor_with_default.html +/doc/asio/reference/deferred_t.html +/doc/asio/reference/deferred_t/operator_lp__rp_/ +/doc/asio/reference/deferred_t/operator_lp__rp_.html +/doc/asio/reference/deferred_t/operator_lp__rp_/overload1.html +/doc/asio/reference/deferred_t/operator_lp__rp_/overload2.html +/doc/asio/reference/deferred_t/values.html +/doc/asio/reference/deferred_t/when.html +/doc/asio/reference/deferred_values/ +/doc/asio/reference/deferred_values/deferred_values.html +/doc/asio/reference/deferred_values/detail__index_sequence_for.html +/doc/asio/reference/deferred_values.html +/doc/asio/reference/deferred_values__initiate/ +/doc/asio/reference/deferred_values__initiate.html +/doc/asio/reference/deferred_values__initiate/operator_lp__rp_.html +/doc/asio/reference/deferred_values/operator_lp__rp_.html /doc/asio/reference/detached.html /doc/asio/reference/detached_t/ /doc/asio/reference/detached_t/as_default_on.html @@ -1782,6 +2625,7 @@ /doc/asio/reference/detached_t__executor_with_default/executor_with_default/overload2.html /doc/asio/reference/detached_t__executor_with_default.html /doc/asio/reference/detached_t.html +/doc/asio/reference/disable_cancellation.html /doc/asio/reference/dispatch/ /doc/asio/reference/dispatch.html /doc/asio/reference/dispatch/overload1.html @@ -1840,6 +2684,9 @@ /doc/asio/reference/dynamic_vector_buffer/prepare.html /doc/asio/reference/dynamic_vector_buffer/shrink.html /doc/asio/reference/dynamic_vector_buffer/size.html +/doc/asio/reference/enable_partial_cancellation.html +/doc/asio/reference/enable_terminal_cancellation.html +/doc/asio/reference/enable_total_cancellation.html /doc/asio/reference/Endpoint.html /doc/asio/reference/EndpointSequence.html /doc/asio/reference/error__addrinfo_category.html @@ -1852,6 +2699,7 @@ /doc/asio/reference/error_category/name.html /doc/asio/reference/error_category/operator_eq__eq_.html /doc/asio/reference/error_category/operator_not__eq_.html +/doc/asio/reference/error__clear.html /doc/asio/reference/error_code/ /doc/asio/reference/error_code/assign.html /doc/asio/reference/error_code/category.html @@ -1902,12 +2750,16 @@ /doc/asio/reference/execution__any_executor/any_executor/ /doc/asio/reference/execution__any_executor/_any_executor.html /doc/asio/reference/execution__any_executor/any_executor.html +/doc/asio/reference/execution__any_executor/any_executor/overload10.html /doc/asio/reference/execution__any_executor/any_executor/overload1.html /doc/asio/reference/execution__any_executor/any_executor/overload2.html /doc/asio/reference/execution__any_executor/any_executor/overload3.html /doc/asio/reference/execution__any_executor/any_executor/overload4.html /doc/asio/reference/execution__any_executor/any_executor/overload5.html /doc/asio/reference/execution__any_executor/any_executor/overload6.html +/doc/asio/reference/execution__any_executor/any_executor/overload7.html +/doc/asio/reference/execution__any_executor/any_executor/overload8.html +/doc/asio/reference/execution__any_executor/any_executor/overload9.html /doc/asio/reference/execution__any_executor/context.html /doc/asio/reference/execution__any_executor/execute.html /doc/asio/reference/execution__any_executor.html @@ -2341,6 +3193,254 @@ /doc/asio/reference/executor_work_guard.html /doc/asio/reference/executor_work_guard/owns_work.html /doc/asio/reference/executor_work_guard/reset.html +/doc/asio/reference/experimental__as_single.html +/doc/asio/reference/experimental__as_single_t/ +/doc/asio/reference/experimental__as_single_t/as_default_on.html +/doc/asio/reference/experimental__as_single_t/as_single_t/ +/doc/asio/reference/experimental__as_single_t/as_single_t.html +/doc/asio/reference/experimental__as_single_t/as_single_t/overload1.html +/doc/asio/reference/experimental__as_single_t/as_single_t/overload2.html +/doc/asio/reference/experimental__as_single_t__default_constructor_tag.html +/doc/asio/reference/experimental__as_single_t__executor_with_default/ +/doc/asio/reference/experimental__as_single_t__executor_with_default/default_completion_token_type.html +/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/ +/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default.html +/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload1.html +/doc/asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload2.html +/doc/asio/reference/experimental__as_single_t__executor_with_default.html +/doc/asio/reference/experimental__as_single_t.html +/doc/asio/reference/experimental__as_single_t/token_.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/ +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload1.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload2.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload3.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload4.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload5.html +/doc/asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload6.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/ +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload1.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload2.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload3.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload4.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload5.html +/doc/asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload6.html +/doc/asio/reference/experimental__basic_channel/ +/doc/asio/reference/experimental__basic_channel/async_receive.html +/doc/asio/reference/experimental__basic_channel/async_send.html +/doc/asio/reference/experimental__basic_channel/basic_channel/ +/doc/asio/reference/experimental__basic_channel/_basic_channel.html +/doc/asio/reference/experimental__basic_channel/basic_channel.html +/doc/asio/reference/experimental__basic_channel/basic_channel/overload1.html +/doc/asio/reference/experimental__basic_channel/basic_channel/overload2.html +/doc/asio/reference/experimental__basic_channel/basic_channel/overload3.html +/doc/asio/reference/experimental__basic_channel/basic_channel/overload4.html +/doc/asio/reference/experimental__basic_channel/cancel.html +/doc/asio/reference/experimental__basic_channel/capacity.html +/doc/asio/reference/experimental__basic_channel/close.html +/doc/asio/reference/experimental__basic_channel/executor_type.html +/doc/asio/reference/experimental__basic_channel/get_executor.html +/doc/asio/reference/experimental__basic_channel.html +/doc/asio/reference/experimental__basic_channel/is_open.html +/doc/asio/reference/experimental__basic_channel/operator_eq_/ +/doc/asio/reference/experimental__basic_channel/operator_eq_.html +/doc/asio/reference/experimental__basic_channel/operator_eq_/overload1.html +/doc/asio/reference/experimental__basic_channel/operator_eq_/overload2.html +/doc/asio/reference/experimental__basic_channel/ready.html +/doc/asio/reference/experimental__basic_channel__rebind_executor/ +/doc/asio/reference/experimental__basic_channel__rebind_executor.html +/doc/asio/reference/experimental__basic_channel__rebind_executor/other.html +/doc/asio/reference/experimental__basic_channel/reset.html +/doc/asio/reference/experimental__basic_channel/traits_type.html +/doc/asio/reference/experimental__basic_channel/try_receive.html +/doc/asio/reference/experimental__basic_channel/try_send.html +/doc/asio/reference/experimental__basic_channel/try_send_n.html +/doc/asio/reference/experimental__basic_concurrent_channel/ +/doc/asio/reference/experimental__basic_concurrent_channel/async_receive.html +/doc/asio/reference/experimental__basic_concurrent_channel/async_send.html +/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/ +/doc/asio/reference/experimental__basic_concurrent_channel/_basic_concurrent_channel.html +/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel.html +/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload1.html +/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload2.html +/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload3.html +/doc/asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload4.html +/doc/asio/reference/experimental__basic_concurrent_channel/cancel.html +/doc/asio/reference/experimental__basic_concurrent_channel/capacity.html +/doc/asio/reference/experimental__basic_concurrent_channel/close.html +/doc/asio/reference/experimental__basic_concurrent_channel/executor_type.html +/doc/asio/reference/experimental__basic_concurrent_channel/get_executor.html +/doc/asio/reference/experimental__basic_concurrent_channel.html +/doc/asio/reference/experimental__basic_concurrent_channel/is_open.html +/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/ +/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_.html +/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload1.html +/doc/asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload2.html +/doc/asio/reference/experimental__basic_concurrent_channel/ready.html +/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor/ +/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor.html +/doc/asio/reference/experimental__basic_concurrent_channel__rebind_executor/other.html +/doc/asio/reference/experimental__basic_concurrent_channel/reset.html +/doc/asio/reference/experimental__basic_concurrent_channel/traits_type.html +/doc/asio/reference/experimental__basic_concurrent_channel/try_receive.html +/doc/asio/reference/experimental__basic_concurrent_channel/try_send.html +/doc/asio/reference/experimental__basic_concurrent_channel/try_send_n.html +/doc/asio/reference/experimental__channel_traits/ +/doc/asio/reference/experimental__channel_traits__container/ +/doc/asio/reference/experimental__channel_traits__container.html +/doc/asio/reference/experimental__channel_traits__container/type.html +/doc/asio/reference/experimental__channel_traits.html +/doc/asio/reference/experimental__channel_traits/invoke_receive_cancelled.html +/doc/asio/reference/experimental__channel_traits/invoke_receive_closed.html +/doc/asio/reference/experimental__channel_traits__rebind/ +/doc/asio/reference/experimental__channel_traits__rebind.html +/doc/asio/reference/experimental__channel_traits__rebind/other.html +/doc/asio/reference/experimental__channel_traits/receive_cancelled_signature.html +/doc/asio/reference/experimental__channel_traits/receive_closed_signature.html +/doc/asio/reference/experimental__co_composed.html +/doc/asio/reference/experimental__coro/ +/doc/asio/reference/experimental__coro/async_resume/ +/doc/asio/reference/experimental__coro/async_resume.html +/doc/asio/reference/experimental__coro/async_resume/overload1.html +/doc/asio/reference/experimental__coro/async_resume/overload2.html +/doc/asio/reference/experimental__coro/coro/ +/doc/asio/reference/experimental__coro/_coro.html +/doc/asio/reference/experimental__coro/coro.html +/doc/asio/reference/experimental__coro/coro/overload1.html +/doc/asio/reference/experimental__coro/coro/overload2.html +/doc/asio/reference/experimental__coro/coro/overload3.html +/doc/asio/reference/experimental__coro/get_allocator.html +/doc/asio/reference/experimental__coro/get_executor.html +/doc/asio/reference/experimental__coro.html +/doc/asio/reference/experimental__coro/is_noexcept.html +/doc/asio/reference/experimental__coro/is_open.html +/doc/asio/reference/experimental__coro/operator_bool.html +/doc/asio/reference/experimental__coro/operator_co_await.html +/doc/asio/reference/experimental__coro/operator_eq_/ +/doc/asio/reference/experimental__coro/operator_eq_.html +/doc/asio/reference/experimental__coro/operator_eq_/overload1.html +/doc/asio/reference/experimental__coro/operator_eq_/overload2.html +/doc/asio/reference/experimental__coro/operator_lp__rp_.html +/doc/asio/reference/experimental__coro_traits/ +/doc/asio/reference/experimental__coro_traits.html +/doc/asio/reference/experimental__coro_traits/is_noexcept.html +/doc/asio/reference/experimental__co_spawn/ +/doc/asio/reference/experimental__co_spawn.html +/doc/asio/reference/experimental__co_spawn/overload1.html +/doc/asio/reference/experimental__co_spawn/overload2.html +/doc/asio/reference/experimental__co_spawn/overload3.html +/doc/asio/reference/experimental__co_spawn/overload4.html +/doc/asio/reference/experimental__co_spawn/overload5.html +/doc/asio/reference/experimental__co_spawn/overload6.html +/doc/asio/reference/experimental__error__channel_category.html +/doc/asio/reference/experimental__error__channel_errors.html +/doc/asio/reference/experimental__error__get_channel_category.html +/doc/asio/reference/experimental__error__make_error_code.html +/doc/asio/reference/experimental__is_async_operation_range/ +/doc/asio/reference/experimental__is_async_operation_range.html +/doc/asio/reference/experimental__is_async_operation_range/value.html +/doc/asio/reference/experimental__is_promise.html +/doc/asio/reference/experimental__is_promise_lt__promise_lt__Ts_ellipsis__gt__gt_.html +/doc/asio/reference/experimental__is_promise_v.html +/doc/asio/reference/experimental__make_parallel_group/ +/doc/asio/reference/experimental__make_parallel_group.html +/doc/asio/reference/experimental__make_parallel_group/overload1.html +/doc/asio/reference/experimental__make_parallel_group/overload2.html +/doc/asio/reference/experimental__make_parallel_group/overload3.html +/doc/asio/reference/experimental__parallel_group/ +/doc/asio/reference/experimental__parallel_group/async_wait.html +/doc/asio/reference/experimental__parallel_group.html +/doc/asio/reference/experimental__parallel_group/parallel_group.html +/doc/asio/reference/experimental__parallel_group/signature.html +/doc/asio/reference/experimental__promise/ +/doc/asio/reference/experimental__promise/cancel.html +/doc/asio/reference/experimental__promise/completed.html +/doc/asio/reference/experimental__promise.html +/doc/asio/reference/experimental__promise/operator_lp__rp_.html +/doc/asio/reference/experimental__promise/promise/ +/doc/asio/reference/experimental__promise/_promise.html +/doc/asio/reference/experimental__promise/promise.html +/doc/asio/reference/experimental__promise/promise/overload1.html +/doc/asio/reference/experimental__promise/promise/overload2.html +/doc/asio/reference/experimental__promise/promise/overload3.html +/doc/asio/reference/experimental__promise_value_type.html +/doc/asio/reference/experimental__promise_value_type_lt__gt_.html +/doc/asio/reference/experimental__promise_value_type_lt__T__gt_.html +/doc/asio/reference/experimental__ranged_parallel_group/ +/doc/asio/reference/experimental__ranged_parallel_group/async_wait.html +/doc/asio/reference/experimental__ranged_parallel_group.html +/doc/asio/reference/experimental__ranged_parallel_group/ranged_parallel_group.html +/doc/asio/reference/experimental__ranged_parallel_group/signature.html +/doc/asio/reference/experimental__use_coro.html +/doc/asio/reference/experimental__use_coro_t/ +/doc/asio/reference/experimental__use_coro_t/allocator_type.html +/doc/asio/reference/experimental__use_coro_t/as_default_on.html +/doc/asio/reference/experimental__use_coro_t__executor_with_default/ +/doc/asio/reference/experimental__use_coro_t__executor_with_default/default_completion_token_type.html +/doc/asio/reference/experimental__use_coro_t__executor_with_default/executor_with_default.html +/doc/asio/reference/experimental__use_coro_t__executor_with_default.html +/doc/asio/reference/experimental__use_coro_t/get_allocator.html +/doc/asio/reference/experimental__use_coro_t.html +/doc/asio/reference/experimental__use_coro_t/rebind.html +/doc/asio/reference/experimental__use_coro_t/use_coro_t/ +/doc/asio/reference/experimental__use_coro_t/use_coro_t.html +/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload1.html +/doc/asio/reference/experimental__use_coro_t/use_coro_t/overload2.html +/doc/asio/reference/experimental__use_promise.html +/doc/asio/reference/experimental__use_promise_t/ +/doc/asio/reference/experimental__use_promise_t/allocator_type.html +/doc/asio/reference/experimental__use_promise_t/as_default_on.html +/doc/asio/reference/experimental__use_promise_t__executor_with_default/ +/doc/asio/reference/experimental__use_promise_t__executor_with_default/default_completion_token_type.html +/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/ +/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default.html +/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload1.html +/doc/asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload2.html +/doc/asio/reference/experimental__use_promise_t__executor_with_default.html +/doc/asio/reference/experimental__use_promise_t/get_allocator.html +/doc/asio/reference/experimental__use_promise_t.html +/doc/asio/reference/experimental__use_promise_t/rebind.html +/doc/asio/reference/experimental__use_promise_t/use_promise_t/ +/doc/asio/reference/experimental__use_promise_t/use_promise_t.html +/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload1.html +/doc/asio/reference/experimental__use_promise_t/use_promise_t/overload2.html +/doc/asio/reference/experimental__wait_for_all/ +/doc/asio/reference/experimental__wait_for_all.html +/doc/asio/reference/experimental__wait_for_all/operator_lp__rp_.html +/doc/asio/reference/experimental__wait_for_one/ +/doc/asio/reference/experimental__wait_for_one_error/ +/doc/asio/reference/experimental__wait_for_one_error.html +/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/ +/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_.html +/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload1.html +/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload2.html +/doc/asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload3.html +/doc/asio/reference/experimental__wait_for_one_error/wait_for_one_error.html +/doc/asio/reference/experimental__wait_for_one.html +/doc/asio/reference/experimental__wait_for_one/operator_lp__rp_.html +/doc/asio/reference/experimental__wait_for_one_success/ +/doc/asio/reference/experimental__wait_for_one_success.html +/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/ +/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_.html +/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload1.html +/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload2.html +/doc/asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload3.html +/doc/asio/reference/experimental__wait_for_one_success/wait_for_one_success.html +/doc/asio/reference/experimental__wait_for_one/wait_for_one.html +/doc/asio/reference/file_base/ +/doc/asio/reference/file_base/append.html +/doc/asio/reference/file_base/create.html +/doc/asio/reference/file_base/exclusive.html +/doc/asio/reference/file_base/_file_base.html +/doc/asio/reference/file_base/flags.html +/doc/asio/reference/file_base.html +/doc/asio/reference/file_base/read_only.html +/doc/asio/reference/file_base/read_write.html +/doc/asio/reference/file_base/seek_basis.html +/doc/asio/reference/file_base/sync_all_on_write.html +/doc/asio/reference/file_base/truncate.html +/doc/asio/reference/file_base/write_only.html /doc/asio/reference/generic__basic_endpoint/ /doc/asio/reference/generic__basic_endpoint/basic_endpoint/ /doc/asio/reference/generic__basic_endpoint/basic_endpoint.html @@ -2423,17 +3523,55 @@ /doc/asio/reference/get_associated_allocator.html /doc/asio/reference/get_associated_allocator/overload1.html /doc/asio/reference/get_associated_allocator/overload2.html +/doc/asio/reference/get_associated_cancellation_slot/ +/doc/asio/reference/get_associated_cancellation_slot.html +/doc/asio/reference/get_associated_cancellation_slot/overload1.html +/doc/asio/reference/get_associated_cancellation_slot/overload2.html /doc/asio/reference/get_associated_executor/ /doc/asio/reference/get_associated_executor.html /doc/asio/reference/get_associated_executor/overload1.html /doc/asio/reference/get_associated_executor/overload2.html /doc/asio/reference/get_associated_executor/overload3.html +/doc/asio/reference/get_associated_immediate_executor/ +/doc/asio/reference/get_associated_immediate_executor.html +/doc/asio/reference/get_associated_immediate_executor/overload1.html +/doc/asio/reference/get_associated_immediate_executor/overload2.html /doc/asio/reference/GettableSerialPortOption.html /doc/asio/reference/GettableSocketOption.html /doc/asio/reference/Handler.html /doc/asio/reference/HandshakeHandler.html +/doc/asio/reference/HandshakeToken.html /doc/asio/reference/high_resolution_timer.html /doc/asio/reference.html +/doc/asio/reference/immediate_executor_binder/ +/doc/asio/reference/immediate_executor_binder/argument_type.html +/doc/asio/reference/immediate_executor_binder/first_argument_type.html +/doc/asio/reference/immediate_executor_binder/get/ +/doc/asio/reference/immediate_executor_binder/get.html +/doc/asio/reference/immediate_executor_binder/get_immediate_executor.html +/doc/asio/reference/immediate_executor_binder/get/overload1.html +/doc/asio/reference/immediate_executor_binder/get/overload2.html +/doc/asio/reference/immediate_executor_binder.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/ +/doc/asio/reference/immediate_executor_binder/_immediate_executor_binder.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload1.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload2.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload3.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload4.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload5.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload6.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload7.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload8.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_binder/overload9.html +/doc/asio/reference/immediate_executor_binder/immediate_executor_type.html +/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/ +/doc/asio/reference/immediate_executor_binder/operator_lp__rp_.html +/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload1.html +/doc/asio/reference/immediate_executor_binder/operator_lp__rp_/overload2.html +/doc/asio/reference/immediate_executor_binder/result_type.html +/doc/asio/reference/immediate_executor_binder/second_argument_type.html +/doc/asio/reference/immediate_executor_binder/target_type.html /doc/asio/reference/InternetProtocol.html /doc/asio/reference/invalid_service_owner/ /doc/asio/reference/invalid_service_owner.html @@ -2872,6 +4010,7 @@ /doc/asio/reference/ip__basic_resolver/basic_resolver/overload1.html /doc/asio/reference/ip__basic_resolver/basic_resolver/overload2.html /doc/asio/reference/ip__basic_resolver/basic_resolver/overload3.html +/doc/asio/reference/ip__basic_resolver/basic_resolver/overload4.html /doc/asio/reference/ip__basic_resolver/cancel.html /doc/asio/reference/ip__basic_resolver/canonical_name.html /doc/asio/reference/ip__basic_resolver/endpoint_type.html @@ -2929,7 +4068,10 @@ /doc/asio/reference/ip__basic_resolver_iterator/value_type.html /doc/asio/reference/ip__basic_resolver/numeric_host.html /doc/asio/reference/ip__basic_resolver/numeric_service.html +/doc/asio/reference/ip__basic_resolver/operator_eq_/ /doc/asio/reference/ip__basic_resolver/operator_eq_.html +/doc/asio/reference/ip__basic_resolver/operator_eq_/overload1.html +/doc/asio/reference/ip__basic_resolver/operator_eq_/overload2.html /doc/asio/reference/ip__basic_resolver/passive.html /doc/asio/reference/ip__basic_resolver/protocol_type.html /doc/asio/reference/ip__basic_resolver_query/ @@ -3103,6 +4245,7 @@ /doc/asio/reference/ip__network_v6/to_string.html /doc/asio/reference/ip__network_v6/to_string/overload1.html /doc/asio/reference/ip__network_v6/to_string/overload2.html +/doc/asio/reference/ip__port_type.html /doc/asio/reference/ip__resolver_base/ /doc/asio/reference/ip__resolver_base/address_configured.html /doc/asio/reference/ip__resolver_base/all_matching.html @@ -3125,6 +4268,7 @@ /doc/asio/reference/ip__resolver_query_base/passive.html /doc/asio/reference/ip__resolver_query_base/_resolver_query_base.html /doc/asio/reference/ip__resolver_query_base/v4_mapped.html +/doc/asio/reference/ip__scope_id_type.html /doc/asio/reference/ip__tcp/ /doc/asio/reference/ip__tcp/acceptor.html /doc/asio/reference/ip__tcp/endpoint.html @@ -3156,7 +4300,10 @@ /doc/asio/reference/ip__v4_mapped_t.html /doc/asio/reference/ip__v6_only.html /doc/asio/reference/is_applicable_property.html +/doc/asio/reference/is_async_operation.html /doc/asio/reference/is_const_buffer_sequence.html +/doc/asio/reference/is_contiguous_iterator.html +/doc/asio/reference/is_deferred.html /doc/asio/reference/is_dynamic_buffer.html /doc/asio/reference/is_dynamic_buffer_v1.html /doc/asio/reference/is_dynamic_buffer_v2.html @@ -3179,6 +4326,7 @@ /doc/asio/reference/is_write_buffered.html /doc/asio/reference/is_write_buffered/value.html /doc/asio/reference/IteratorConnectHandler.html +/doc/asio/reference/IteratorConnectToken.html /doc/asio/reference/LegacyCompletionHandler.html /doc/asio/reference/local__basic_endpoint/ /doc/asio/reference/local__basic_endpoint/basic_endpoint/ @@ -3222,6 +4370,14 @@ /doc/asio/reference/local__datagram_protocol/protocol.html /doc/asio/reference/local__datagram_protocol/socket.html /doc/asio/reference/local__datagram_protocol/type.html +/doc/asio/reference/local__seq_packet_protocol/ +/doc/asio/reference/local__seq_packet_protocol/acceptor.html +/doc/asio/reference/local__seq_packet_protocol/endpoint.html +/doc/asio/reference/local__seq_packet_protocol/family.html +/doc/asio/reference/local__seq_packet_protocol.html +/doc/asio/reference/local__seq_packet_protocol/protocol.html +/doc/asio/reference/local__seq_packet_protocol/socket.html +/doc/asio/reference/local__seq_packet_protocol/type.html /doc/asio/reference/local__stream_protocol/ /doc/asio/reference/local__stream_protocol/acceptor.html /doc/asio/reference/local__stream_protocol/endpoint.html @@ -3243,6 +4399,7 @@ /doc/asio/reference/make_work_guard/overload4.html /doc/asio/reference/make_work_guard/overload5.html /doc/asio/reference/MoveAcceptHandler.html +/doc/asio/reference/MoveAcceptToken.html /doc/asio/reference/multiple_exceptions/ /doc/asio/reference/multiple_exceptions/first_exception.html /doc/asio/reference/multiple_exceptions.html @@ -3279,6 +4436,19 @@ /doc/asio/reference/mutable_buffers_1/value_type.html /doc/asio/reference/MutableBufferSequence.html /doc/asio/reference/mutable_buffer/size.html +/doc/asio/reference/mutable_registered_buffer/ +/doc/asio/reference/mutable_registered_buffer/buffer.html +/doc/asio/reference/mutable_registered_buffer/data.html +/doc/asio/reference/mutable_registered_buffer.html +/doc/asio/reference/mutable_registered_buffer/id.html +/doc/asio/reference/mutable_registered_buffer/mutable_registered_buffer.html +/doc/asio/reference/mutable_registered_buffer/operator_plus_/ +/doc/asio/reference/mutable_registered_buffer/operator_plus__eq_.html +/doc/asio/reference/mutable_registered_buffer/operator_plus_.html +/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload1.html +/doc/asio/reference/mutable_registered_buffer/operator_plus_/overload2.html +/doc/asio/reference/mutable_registered_buffer/size.html +/doc/asio/reference/NullaryToken.html /doc/asio/reference/null_buffers/ /doc/asio/reference/null_buffers/begin.html /doc/asio/reference/null_buffers/const_iterator.html @@ -3287,6 +4457,7 @@ /doc/asio/reference/null_buffers/value_type.html /doc/asio/reference/OperationState.html /doc/asio/reference/operator_lt__lt_.html +/doc/asio/reference/operator_pipe_.html /doc/asio/reference/placeholders__bytes_transferred.html /doc/asio/reference/placeholders__endpoint.html /doc/asio/reference/placeholders__error.html @@ -3307,6 +4478,7 @@ /doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload3.html /doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload4.html /doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload5.html +/doc/asio/reference/posix__basic_descriptor/basic_descriptor/overload6.html /doc/asio/reference/posix__basic_descriptor/bytes_readable.html /doc/asio/reference/posix__basic_descriptor/cancel/ /doc/asio/reference/posix__basic_descriptor/cancel.html @@ -3319,7 +4491,6 @@ /doc/asio/reference/posix__basic_descriptor/executor_type.html /doc/asio/reference/posix__basic_descriptor/get_executor.html /doc/asio/reference/posix__basic_descriptor.html -/doc/asio/reference/posix__basic_descriptor/impl_.html /doc/asio/reference/posix__basic_descriptor/io_control/ /doc/asio/reference/posix__basic_descriptor/io_control.html /doc/asio/reference/posix__basic_descriptor/io_control/overload1.html @@ -3342,7 +4513,10 @@ /doc/asio/reference/posix__basic_descriptor/non_blocking/overload1.html /doc/asio/reference/posix__basic_descriptor/non_blocking/overload2.html /doc/asio/reference/posix__basic_descriptor/non_blocking/overload3.html +/doc/asio/reference/posix__basic_descriptor/operator_eq_/ /doc/asio/reference/posix__basic_descriptor/operator_eq_.html +/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload1.html +/doc/asio/reference/posix__basic_descriptor/operator_eq_/overload2.html /doc/asio/reference/posix__basic_descriptor__rebind_executor/ /doc/asio/reference/posix__basic_descriptor__rebind_executor.html /doc/asio/reference/posix__basic_descriptor__rebind_executor/other.html @@ -3367,6 +4541,7 @@ /doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload3.html /doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload4.html /doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload5.html +/doc/asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload6.html /doc/asio/reference/posix__basic_stream_descriptor/bytes_readable.html /doc/asio/reference/posix__basic_stream_descriptor/cancel/ /doc/asio/reference/posix__basic_stream_descriptor/cancel.html @@ -3379,7 +4554,6 @@ /doc/asio/reference/posix__basic_stream_descriptor/executor_type.html /doc/asio/reference/posix__basic_stream_descriptor/get_executor.html /doc/asio/reference/posix__basic_stream_descriptor.html -/doc/asio/reference/posix__basic_stream_descriptor/impl_.html /doc/asio/reference/posix__basic_stream_descriptor/io_control/ /doc/asio/reference/posix__basic_stream_descriptor/io_control.html /doc/asio/reference/posix__basic_stream_descriptor/io_control/overload1.html @@ -3402,7 +4576,10 @@ /doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload1.html /doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload2.html /doc/asio/reference/posix__basic_stream_descriptor/non_blocking/overload3.html +/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/ /doc/asio/reference/posix__basic_stream_descriptor/operator_eq_.html +/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload1.html +/doc/asio/reference/posix__basic_stream_descriptor/operator_eq_/overload2.html /doc/asio/reference/posix__basic_stream_descriptor/read_some/ /doc/asio/reference/posix__basic_stream_descriptor/read_some.html /doc/asio/reference/posix__basic_stream_descriptor/read_some/overload1.html @@ -3436,14 +4613,23 @@ /doc/asio/reference/prefer_result/ /doc/asio/reference/prefer_result.html /doc/asio/reference/prefer_result/type.html +/doc/asio/reference/prepend.html +/doc/asio/reference/prepend_t/ +/doc/asio/reference/prepend_t.html +/doc/asio/reference/prepend_t/prepend_t.html +/doc/asio/reference/prepend_t/token_.html +/doc/asio/reference/prepend_t/values_.html /doc/asio/reference/ProtoAllocator.html /doc/asio/reference/Protocol.html /doc/asio/reference/query.html /doc/asio/reference/query_result/ /doc/asio/reference/query_result.html /doc/asio/reference/query_result/type.html +/doc/asio/reference/random_access_file.html /doc/asio/reference/RangeConnectHandler.html +/doc/asio/reference/RangeConnectToken.html /doc/asio/reference/read/ +/doc/asio/reference/readable_pipe.html /doc/asio/reference/read_at/ /doc/asio/reference/read_at.html /doc/asio/reference/read_at/overload1.html @@ -3472,6 +4658,7 @@ /doc/asio/reference/read/overload7.html /doc/asio/reference/read/overload8.html /doc/asio/reference/read/overload9.html +/doc/asio/reference/ReadToken.html /doc/asio/reference/read_until/ /doc/asio/reference/read_until.html /doc/asio/reference/read_until/overload10.html @@ -3500,12 +4687,51 @@ /doc/asio/reference/read_until/overload9.html /doc/asio/reference/read_write_operations.html /doc/asio/reference/Receiver.html +/doc/asio/reference/recycling_allocator/ +/doc/asio/reference/recycling_allocator/allocate.html +/doc/asio/reference/recycling_allocator/deallocate.html +/doc/asio/reference/recycling_allocator.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/ +/doc/asio/reference/recycling_allocator_lt__void__gt_.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_eq__eq_.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/operator_not__eq_.html +/doc/asio/reference/recycling_allocator_lt__void__gt___rebind/ +/doc/asio/reference/recycling_allocator_lt__void__gt___rebind.html +/doc/asio/reference/recycling_allocator_lt__void__gt___rebind/other.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/ +/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload1.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload2.html +/doc/asio/reference/recycling_allocator_lt__void__gt_/value_type.html +/doc/asio/reference/recycling_allocator/operator_eq__eq_.html +/doc/asio/reference/recycling_allocator/operator_not__eq_.html +/doc/asio/reference/recycling_allocator__rebind/ +/doc/asio/reference/recycling_allocator__rebind.html +/doc/asio/reference/recycling_allocator__rebind/other.html +/doc/asio/reference/recycling_allocator/recycling_allocator/ +/doc/asio/reference/recycling_allocator/recycling_allocator.html +/doc/asio/reference/recycling_allocator/recycling_allocator/overload1.html +/doc/asio/reference/recycling_allocator/recycling_allocator/overload2.html +/doc/asio/reference/recycling_allocator/value_type.html /doc/asio/reference/redirect_error.html /doc/asio/reference/redirect_error_t/ /doc/asio/reference/redirect_error_t/ec_.html /doc/asio/reference/redirect_error_t.html /doc/asio/reference/redirect_error_t/redirect_error_t.html /doc/asio/reference/redirect_error_t/token_.html +/doc/asio/reference/register_buffers/ +/doc/asio/reference/register_buffers.html +/doc/asio/reference/register_buffers/overload1.html +/doc/asio/reference/register_buffers/overload2.html +/doc/asio/reference/register_buffers/overload3.html +/doc/asio/reference/register_buffers/overload4.html +/doc/asio/reference/registered_buffer_id/ +/doc/asio/reference/registered_buffer_id.html +/doc/asio/reference/registered_buffer_id/native_handle.html +/doc/asio/reference/registered_buffer_id/native_handle_type.html +/doc/asio/reference/registered_buffer_id/operator_eq__eq_.html +/doc/asio/reference/registered_buffer_id/operator_not__eq_.html +/doc/asio/reference/registered_buffer_id/registered_buffer_id.html /doc/asio/reference/require_concept.html /doc/asio/reference/require_concept_result/ /doc/asio/reference/require_concept_result.html @@ -3516,6 +4742,7 @@ /doc/asio/reference/require_result/type.html /doc/asio/reference/ResolveHandler.html /doc/asio/reference/resolver_errc__try_again.html +/doc/asio/reference/ResolveToken.html /doc/asio/reference/Scheduler.html /doc/asio/reference/Sender.html /doc/asio/reference/serial_port_base/ @@ -3562,8 +4789,15 @@ /doc/asio/reference/SettableSerialPortOption.html /doc/asio/reference/SettableSocketOption.html /doc/asio/reference/ShutdownHandler.html +/doc/asio/reference/ShutdownToken.html /doc/asio/reference/SignalHandler.html +/doc/asio/reference/signal_set_base/ +/doc/asio/reference/signal_set_base/flags.html +/doc/asio/reference/signal_set_base/flags_t.html +/doc/asio/reference/signal_set_base.html +/doc/asio/reference/signal_set_base/_signal_set_base.html /doc/asio/reference/signal_set.html +/doc/asio/reference/SignalToken.html /doc/asio/reference/socket_base/ /doc/asio/reference/socket_base/broadcast.html /doc/asio/reference/socket_base/bytes_readable.html @@ -3591,6 +4825,10 @@ /doc/asio/reference/socket_base/wait_type.html /doc/asio/reference/spawn/ /doc/asio/reference/spawn.html +/doc/asio/reference/spawn/overload10.html +/doc/asio/reference/spawn/overload11.html +/doc/asio/reference/spawn/overload12.html +/doc/asio/reference/spawn/overload13.html /doc/asio/reference/spawn/overload1.html /doc/asio/reference/spawn/overload2.html /doc/asio/reference/spawn/overload3.html @@ -3598,6 +4836,8 @@ /doc/asio/reference/spawn/overload5.html /doc/asio/reference/spawn/overload6.html /doc/asio/reference/spawn/overload7.html +/doc/asio/reference/spawn/overload8.html +/doc/asio/reference/spawn/overload9.html /doc/asio/reference/ssl__context/ /doc/asio/reference/ssl__context/add_certificate_authority/ /doc/asio/reference/ssl__context/add_certificate_authority.html @@ -3769,6 +5009,7 @@ /doc/asio/reference/ssl__stream/next_layer/overload1.html /doc/asio/reference/ssl__stream/next_layer/overload2.html /doc/asio/reference/ssl__stream/next_layer_type.html +/doc/asio/reference/ssl__stream/operator_eq_.html /doc/asio/reference/ssl__stream/read_some/ /doc/asio/reference/ssl__stream/read_some.html /doc/asio/reference/ssl__stream/read_some/overload1.html @@ -3794,6 +5035,7 @@ /doc/asio/reference/ssl__stream/stream.html /doc/asio/reference/ssl__stream/stream/overload1.html /doc/asio/reference/ssl__stream/stream/overload2.html +/doc/asio/reference/ssl__stream/stream/overload3.html /doc/asio/reference/ssl__stream/write_some/ /doc/asio/reference/ssl__stream/write_some.html /doc/asio/reference/ssl__stream/write_some/overload1.html @@ -3811,12 +5053,15 @@ /doc/asio/reference/static_thread_pool.html /doc/asio/reference/steady_timer.html /doc/asio/reference/strand/ +/doc/asio/reference/strand/context.html /doc/asio/reference/strand/defer.html /doc/asio/reference/strand/dispatch.html /doc/asio/reference/strand/execute.html /doc/asio/reference/strand/get_inner_executor.html /doc/asio/reference/strand.html /doc/asio/reference/strand/inner_executor_type.html +/doc/asio/reference/strand/on_work_finished.html +/doc/asio/reference/strand/on_work_started.html /doc/asio/reference/strand/operator_eq_/ /doc/asio/reference/strand/operator_eq__eq_.html /doc/asio/reference/strand/operator_eq_.html @@ -3840,6 +5085,7 @@ /doc/asio/reference/strand/strand/overload5.html /doc/asio/reference/strand/strand/overload6.html /doc/asio/reference/streambuf.html +/doc/asio/reference/stream_file.html /doc/asio/reference/synchronous_socket_operations.html /doc/asio/reference/SyncRandomAccessReadDevice.html /doc/asio/reference/SyncRandomAccessWriteDevice.html @@ -3878,10 +5124,23 @@ /doc/asio/reference/system_error/what.html /doc/asio/reference/system_executor.html /doc/asio/reference/system_timer.html +/doc/asio/reference/this_coro__cancellation_state.html +/doc/asio/reference/this_coro__cancellation_state_t/ +/doc/asio/reference/this_coro__cancellation_state_t/cancellation_state_t.html +/doc/asio/reference/this_coro__cancellation_state_t.html /doc/asio/reference/this_coro__executor.html /doc/asio/reference/this_coro__executor_t/ /doc/asio/reference/this_coro__executor_t/executor_t.html /doc/asio/reference/this_coro__executor_t.html +/doc/asio/reference/this_coro__reset_cancellation_state/ +/doc/asio/reference/this_coro__reset_cancellation_state.html +/doc/asio/reference/this_coro__reset_cancellation_state/overload1.html +/doc/asio/reference/this_coro__reset_cancellation_state/overload2.html +/doc/asio/reference/this_coro__reset_cancellation_state/overload3.html +/doc/asio/reference/this_coro__throw_if_cancelled/ +/doc/asio/reference/this_coro__throw_if_cancelled.html +/doc/asio/reference/this_coro__throw_if_cancelled/overload1.html +/doc/asio/reference/this_coro__throw_if_cancelled/overload2.html /doc/asio/reference/thread/ /doc/asio/reference/thread.html /doc/asio/reference/thread/join.html @@ -3895,11 +5154,13 @@ /doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload1.html /doc/asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload2.html /doc/asio/reference/thread_pool__basic_executor_type/bulk_execute.html +/doc/asio/reference/thread_pool__basic_executor_type/connect.html /doc/asio/reference/thread_pool__basic_executor_type/context.html /doc/asio/reference/thread_pool__basic_executor_type/defer.html /doc/asio/reference/thread_pool__basic_executor_type/dispatch.html /doc/asio/reference/thread_pool__basic_executor_type/execute.html /doc/asio/reference/thread_pool__basic_executor_type.html +/doc/asio/reference/thread_pool__basic_executor_type/index_type.html /doc/asio/reference/thread_pool__basic_executor_type/on_work_finished.html /doc/asio/reference/thread_pool__basic_executor_type/on_work_started.html /doc/asio/reference/thread_pool__basic_executor_type/operator_eq_/ @@ -3936,6 +5197,7 @@ /doc/asio/reference/thread_pool__basic_executor_type/running_in_this_thread.html /doc/asio/reference/thread_pool__basic_executor_type/schedule.html /doc/asio/reference/thread_pool__basic_executor_type/sender_type.html +/doc/asio/reference/thread_pool__basic_executor_type/shape_type.html /doc/asio/reference/thread_pool/destroy.html /doc/asio/reference/thread_pool/executor.html /doc/asio/reference/thread_pool/executor_type.html @@ -3980,10 +5242,7 @@ /doc/asio/reference/use_awaitable_t/as_default_on.html /doc/asio/reference/use_awaitable_t__executor_with_default/ /doc/asio/reference/use_awaitable_t__executor_with_default/default_completion_token_type.html -/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default/ /doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default.html -/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default/overload1.html -/doc/asio/reference/use_awaitable_t__executor_with_default/executor_with_default/overload2.html /doc/asio/reference/use_awaitable_t__executor_with_default.html /doc/asio/reference/use_awaitable_t.html /doc/asio/reference/use_awaitable_t/use_awaitable_t/ @@ -4004,6 +5263,7 @@ /doc/asio/reference/use_future_t/use_future_t/overload2.html /doc/asio/reference/uses_executor.html /doc/asio/reference/WaitHandler.html +/doc/asio/reference/WaitToken.html /doc/asio/reference/wait_traits/ /doc/asio/reference/WaitTraits.html /doc/asio/reference/wait_traits.html @@ -4024,6 +5284,7 @@ /doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload3.html /doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload4.html /doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload5.html +/doc/asio/reference/windows__basic_object_handle/basic_object_handle/overload6.html /doc/asio/reference/windows__basic_object_handle/cancel/ /doc/asio/reference/windows__basic_object_handle/cancel.html /doc/asio/reference/windows__basic_object_handle/cancel/overload1.html @@ -4043,7 +5304,10 @@ /doc/asio/reference/windows__basic_object_handle/lowest_layer_type.html /doc/asio/reference/windows__basic_object_handle/native_handle.html /doc/asio/reference/windows__basic_object_handle/native_handle_type.html +/doc/asio/reference/windows__basic_object_handle/operator_eq_/ /doc/asio/reference/windows__basic_object_handle/operator_eq_.html +/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload1.html +/doc/asio/reference/windows__basic_object_handle/operator_eq_/overload2.html /doc/asio/reference/windows__basic_object_handle__rebind_executor/ /doc/asio/reference/windows__basic_object_handle__rebind_executor.html /doc/asio/reference/windows__basic_object_handle__rebind_executor/other.html @@ -4064,6 +5328,7 @@ /doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload3.html /doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload4.html /doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload5.html +/doc/asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload6.html /doc/asio/reference/windows__basic_overlapped_handle/cancel/ /doc/asio/reference/windows__basic_overlapped_handle/cancel.html /doc/asio/reference/windows__basic_overlapped_handle/cancel/overload1.html @@ -4075,7 +5340,6 @@ /doc/asio/reference/windows__basic_overlapped_handle/executor_type.html /doc/asio/reference/windows__basic_overlapped_handle/get_executor.html /doc/asio/reference/windows__basic_overlapped_handle.html -/doc/asio/reference/windows__basic_overlapped_handle/impl_.html /doc/asio/reference/windows__basic_overlapped_handle/is_open.html /doc/asio/reference/windows__basic_overlapped_handle/lowest_layer/ /doc/asio/reference/windows__basic_overlapped_handle/lowest_layer.html @@ -4084,10 +5348,17 @@ /doc/asio/reference/windows__basic_overlapped_handle/lowest_layer_type.html /doc/asio/reference/windows__basic_overlapped_handle/native_handle.html /doc/asio/reference/windows__basic_overlapped_handle/native_handle_type.html +/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/ /doc/asio/reference/windows__basic_overlapped_handle/operator_eq_.html +/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload1.html +/doc/asio/reference/windows__basic_overlapped_handle/operator_eq_/overload2.html /doc/asio/reference/windows__basic_overlapped_handle__rebind_executor/ /doc/asio/reference/windows__basic_overlapped_handle__rebind_executor.html /doc/asio/reference/windows__basic_overlapped_handle__rebind_executor/other.html +/doc/asio/reference/windows__basic_overlapped_handle/release/ +/doc/asio/reference/windows__basic_overlapped_handle/release.html +/doc/asio/reference/windows__basic_overlapped_handle/release/overload1.html +/doc/asio/reference/windows__basic_overlapped_handle/release/overload2.html /doc/asio/reference/windows__basic_random_access_handle/ /doc/asio/reference/windows__basic_random_access_handle/assign/ /doc/asio/reference/windows__basic_random_access_handle/assign.html @@ -4102,6 +5373,7 @@ /doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload3.html /doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload4.html /doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload5.html +/doc/asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload6.html /doc/asio/reference/windows__basic_random_access_handle/cancel/ /doc/asio/reference/windows__basic_random_access_handle/cancel.html /doc/asio/reference/windows__basic_random_access_handle/cancel/overload1.html @@ -4113,7 +5385,6 @@ /doc/asio/reference/windows__basic_random_access_handle/executor_type.html /doc/asio/reference/windows__basic_random_access_handle/get_executor.html /doc/asio/reference/windows__basic_random_access_handle.html -/doc/asio/reference/windows__basic_random_access_handle/impl_.html /doc/asio/reference/windows__basic_random_access_handle/is_open.html /doc/asio/reference/windows__basic_random_access_handle/lowest_layer/ /doc/asio/reference/windows__basic_random_access_handle/lowest_layer.html @@ -4122,7 +5393,10 @@ /doc/asio/reference/windows__basic_random_access_handle/lowest_layer_type.html /doc/asio/reference/windows__basic_random_access_handle/native_handle.html /doc/asio/reference/windows__basic_random_access_handle/native_handle_type.html +/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/ /doc/asio/reference/windows__basic_random_access_handle/operator_eq_.html +/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload1.html +/doc/asio/reference/windows__basic_random_access_handle/operator_eq_/overload2.html /doc/asio/reference/windows__basic_random_access_handle/read_some_at/ /doc/asio/reference/windows__basic_random_access_handle/read_some_at.html /doc/asio/reference/windows__basic_random_access_handle/read_some_at/overload1.html @@ -4130,6 +5404,10 @@ /doc/asio/reference/windows__basic_random_access_handle__rebind_executor/ /doc/asio/reference/windows__basic_random_access_handle__rebind_executor.html /doc/asio/reference/windows__basic_random_access_handle__rebind_executor/other.html +/doc/asio/reference/windows__basic_random_access_handle/release/ +/doc/asio/reference/windows__basic_random_access_handle/release.html +/doc/asio/reference/windows__basic_random_access_handle/release/overload1.html +/doc/asio/reference/windows__basic_random_access_handle/release/overload2.html /doc/asio/reference/windows__basic_random_access_handle/write_some_at/ /doc/asio/reference/windows__basic_random_access_handle/write_some_at.html /doc/asio/reference/windows__basic_random_access_handle/write_some_at/overload1.html @@ -4148,6 +5426,7 @@ /doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload3.html /doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload4.html /doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload5.html +/doc/asio/reference/windows__basic_stream_handle/basic_stream_handle/overload6.html /doc/asio/reference/windows__basic_stream_handle/cancel/ /doc/asio/reference/windows__basic_stream_handle/cancel.html /doc/asio/reference/windows__basic_stream_handle/cancel/overload1.html @@ -4159,7 +5438,6 @@ /doc/asio/reference/windows__basic_stream_handle/executor_type.html /doc/asio/reference/windows__basic_stream_handle/get_executor.html /doc/asio/reference/windows__basic_stream_handle.html -/doc/asio/reference/windows__basic_stream_handle/impl_.html /doc/asio/reference/windows__basic_stream_handle/is_open.html /doc/asio/reference/windows__basic_stream_handle/lowest_layer/ /doc/asio/reference/windows__basic_stream_handle/lowest_layer.html @@ -4168,7 +5446,10 @@ /doc/asio/reference/windows__basic_stream_handle/lowest_layer_type.html /doc/asio/reference/windows__basic_stream_handle/native_handle.html /doc/asio/reference/windows__basic_stream_handle/native_handle_type.html +/doc/asio/reference/windows__basic_stream_handle/operator_eq_/ /doc/asio/reference/windows__basic_stream_handle/operator_eq_.html +/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload1.html +/doc/asio/reference/windows__basic_stream_handle/operator_eq_/overload2.html /doc/asio/reference/windows__basic_stream_handle/read_some/ /doc/asio/reference/windows__basic_stream_handle/read_some.html /doc/asio/reference/windows__basic_stream_handle/read_some/overload1.html @@ -4176,6 +5457,10 @@ /doc/asio/reference/windows__basic_stream_handle__rebind_executor/ /doc/asio/reference/windows__basic_stream_handle__rebind_executor.html /doc/asio/reference/windows__basic_stream_handle__rebind_executor/other.html +/doc/asio/reference/windows__basic_stream_handle/release/ +/doc/asio/reference/windows__basic_stream_handle/release.html +/doc/asio/reference/windows__basic_stream_handle/release/overload1.html +/doc/asio/reference/windows__basic_stream_handle/release/overload2.html /doc/asio/reference/windows__basic_stream_handle/write_some/ /doc/asio/reference/windows__basic_stream_handle/write_some.html /doc/asio/reference/windows__basic_stream_handle/write_some/overload1.html @@ -4203,6 +5488,7 @@ /doc/asio/reference/windows__overlapped_ptr/reset/overload3.html /doc/asio/reference/windows__random_access_handle.html /doc/asio/reference/windows__stream_handle.html +/doc/asio/reference/writable_pipe.html /doc/asio/reference/write/ /doc/asio/reference/write_at/ /doc/asio/reference/write_at.html @@ -4232,7 +5518,9 @@ /doc/asio/reference/write/overload7.html /doc/asio/reference/write/overload8.html /doc/asio/reference/write/overload9.html +/doc/asio/reference/WriteToken.html /doc/asio/reference/yield_context.html +/doc/asio/std_executors.html /doc/asio/tutorial/ /doc/asio/tutorial/boost_bind.html /doc/asio/tutorial.html @@ -4273,11 +5561,20 @@ /doc/asio/tutorial/tuttimer5.html /doc/asio/tutorial/tuttimer5/src.html /doc/asio/using.html +/doc/async_agent_chain.png +/doc/async_agent_model.png +/doc/async_child_agent_chain.png /doc/async_op1.png /doc/async_op2.png +/doc/async_op_init_complete.png +/doc/async_op_model.png +/doc/async_op_phases.png +/doc/async_op_trivial_chain.png /doc/blank.png /doc/boostbook.css /doc/caution.png +/doc/completion_token_model.png +/doc/completion_token_transform.png /doc/draft.png /doc/examples/ /doc/examples/diffs/ @@ -4289,6 +5586,9 @@ /doc/examples/diffs/chat/chat_client.cpp.html /doc/examples/diffs/chat/chat_message.hpp.html /doc/examples/diffs/chat/chat_server.cpp.html +/doc/examples/diffs/deferred/ +/doc/examples/diffs/deferred/deferred_1.cpp.html +/doc/examples/diffs/deferred/deferred_2.cpp.html /doc/examples/diffs/echo/ /doc/examples/diffs/echo/async_tcp_echo_server.cpp.html /doc/examples/diffs/echo/async_udp_echo_server.cpp.html @@ -4303,6 +5603,9 @@ /doc/examples/diffs/executors/fork_join.cpp.html /doc/examples/diffs/executors/pipeline.cpp.html /doc/examples/diffs/executors/priority_scheduler.cpp.html +/doc/examples/diffs/files/ +/doc/examples/diffs/files/async_file_copy.cpp.html +/doc/examples/diffs/files/blocking_file_copy.cpp.html /doc/examples/diffs/fork/ /doc/examples/diffs/fork/daemon.cpp.html /doc/examples/diffs/fork/process_per_connection.cpp.html @@ -4336,6 +5639,8 @@ /doc/examples/diffs/iostreams/http_client.cpp.html /doc/examples/diffs/local/ /doc/examples/diffs/local/connect_pair.cpp.html +/doc/examples/diffs/local/fd_passing_stream_client.cpp.html +/doc/examples/diffs/local/fd_passing_stream_server.cpp.html /doc/examples/diffs/local/iostream_client.cpp.html /doc/examples/diffs/local/stream_client.cpp.html /doc/examples/diffs/local/stream_server.cpp.html @@ -4353,6 +5658,12 @@ /doc/examples/diffs/operations/composed_6.cpp.html /doc/examples/diffs/operations/composed_7.cpp.html /doc/examples/diffs/operations/composed_8.cpp.html +/doc/examples/diffs/parallel_group/ +/doc/examples/diffs/parallel_group/ranged_wait_for_all.cpp.html +/doc/examples/diffs/parallel_group/wait_for_all.cpp.html +/doc/examples/diffs/parallel_group/wait_for_one.cpp.html +/doc/examples/diffs/parallel_group/wait_for_one_error.cpp.html +/doc/examples/diffs/parallel_group/wait_for_one_success.cpp.html /doc/examples/diffs/socks4/ /doc/examples/diffs/socks4/socks4.hpp.html /doc/examples/diffs/socks4/sync_client.cpp.html @@ -4370,6 +5681,14 @@ /doc/examples/diffs/timeouts/server.cpp.html /doc/examples/diffs/timers/ /doc/examples/diffs/timers/time_t_timer.cpp.html +/doc/examples/diffs/type_erasure/ +/doc/examples/diffs/type_erasure/line_reader.hpp.html +/doc/examples/diffs/type_erasure/main.cpp.html +/doc/examples/diffs/type_erasure/sleep.cpp.html +/doc/examples/diffs/type_erasure/sleep.hpp.html +/doc/examples/diffs/type_erasure/stdin_line_reader.cpp.html +/doc/examples/diffs/type_erasure/stdin_line_reader.hpp.html +/doc/higher_level_model.png /doc/home.png /doc/important.png /doc/index.html @@ -4379,7 +5698,6 @@ /doc/prev_disabled.png /doc/prev.png /doc/proactor.png -/doc/standalone_HTML.manifest /doc/sync_op.png /doc/tip.png /doc/up_disabled.png @@ -4387,15 +5705,25 @@ /doc/warning.png /include/ /include/asio/ +/include/asio/any_completion_executor.hpp +/include/asio/any_completion_handler.hpp /include/asio/any_io_executor.hpp +/include/asio/append.hpp /include/asio/associated_allocator.hpp +/include/asio/associated_cancellation_slot.hpp /include/asio/associated_executor.hpp +/include/asio/associated_immediate_executor.hpp +/include/asio/associator.hpp +/include/asio/as_tuple.hpp /include/asio/async_result.hpp /include/asio/awaitable.hpp /include/asio/basic_datagram_socket.hpp /include/asio/basic_deadline_timer.hpp +/include/asio/basic_file.hpp /include/asio/basic_io_object.hpp +/include/asio/basic_random_access_file.hpp /include/asio/basic_raw_socket.hpp +/include/asio/basic_readable_pipe.hpp /include/asio/basic_seq_packet_socket.hpp /include/asio/basic_serial_port.hpp /include/asio/basic_signal_set.hpp @@ -4405,9 +5733,14 @@ /include/asio/basic_socket_streambuf.hpp /include/asio/basic_streambuf_fwd.hpp /include/asio/basic_streambuf.hpp +/include/asio/basic_stream_file.hpp /include/asio/basic_stream_socket.hpp /include/asio/basic_waitable_timer.hpp +/include/asio/basic_writable_pipe.hpp +/include/asio/bind_allocator.hpp +/include/asio/bind_cancellation_slot.hpp /include/asio/bind_executor.hpp +/include/asio/bind_immediate_executor.hpp /include/asio/buffered_read_stream_fwd.hpp /include/asio/buffered_read_stream.hpp /include/asio/buffered_stream_fwd.hpp @@ -4415,20 +5748,28 @@ /include/asio/buffered_write_stream_fwd.hpp /include/asio/buffered_write_stream.hpp /include/asio/buffer.hpp +/include/asio/buffer_registration.hpp /include/asio/buffers_iterator.hpp +/include/asio/cancellation_signal.hpp +/include/asio/cancellation_state.hpp +/include/asio/cancellation_type.hpp /include/asio/completion_condition.hpp /include/asio/compose.hpp /include/asio/connect.hpp +/include/asio/connect_pipe.hpp +/include/asio/consign.hpp /include/asio/coroutine.hpp /include/asio/co_spawn.hpp /include/asio/deadline_timer.hpp /include/asio/defer.hpp +/include/asio/deferred.hpp /include/asio/detached.hpp /include/asio/detail/ /include/asio/detail/array_fwd.hpp /include/asio/detail/array.hpp /include/asio/detail/assert.hpp /include/asio/detail/atomic_count.hpp +/include/asio/detail/base_from_cancellation_state.hpp /include/asio/detail/base_from_completion_cond.hpp /include/asio/detail/bind_handler.hpp /include/asio/detail/blocking_executor_op.hpp @@ -4440,6 +5781,7 @@ /include/asio/detail/chrono.hpp /include/asio/detail/chrono_time_traits.hpp /include/asio/detail/completion_handler.hpp +/include/asio/detail/composed_work.hpp /include/asio/detail/concurrency_hint.hpp /include/asio/detail/conditionally_enabled_event.hpp /include/asio/detail/conditionally_enabled_mutex.hpp @@ -4457,6 +5799,7 @@ /include/asio/detail/epoll_reactor.hpp /include/asio/detail/eventfd_select_interrupter.hpp /include/asio/detail/event.hpp +/include/asio/detail/exception.hpp /include/asio/detail/executor_function.hpp /include/asio/detail/executor_op.hpp /include/asio/detail/fd_set_adapter.hpp @@ -4484,16 +5827,21 @@ /include/asio/detail/impl/epoll_reactor.ipp /include/asio/detail/impl/eventfd_select_interrupter.ipp /include/asio/detail/impl/handler_tracking.ipp +/include/asio/detail/impl/io_uring_descriptor_service.ipp +/include/asio/detail/impl/io_uring_file_service.ipp +/include/asio/detail/impl/io_uring_service.hpp +/include/asio/detail/impl/io_uring_service.ipp +/include/asio/detail/impl/io_uring_socket_service_base.ipp /include/asio/detail/impl/kqueue_reactor.hpp /include/asio/detail/impl/kqueue_reactor.ipp /include/asio/detail/impl/null_event.ipp /include/asio/detail/impl/pipe_select_interrupter.ipp /include/asio/detail/impl/posix_event.ipp /include/asio/detail/impl/posix_mutex.ipp +/include/asio/detail/impl/posix_serial_port_service.ipp /include/asio/detail/impl/posix_thread.ipp /include/asio/detail/impl/posix_tss_ptr.ipp /include/asio/detail/impl/reactive_descriptor_service.ipp -/include/asio/detail/impl/reactive_serial_port_service.ipp /include/asio/detail/impl/reactive_socket_service_base.ipp /include/asio/detail/impl/resolver_service_base.ipp /include/asio/detail/impl/scheduler.ipp @@ -4508,10 +5856,12 @@ /include/asio/detail/impl/strand_executor_service.ipp /include/asio/detail/impl/strand_service.hpp /include/asio/detail/impl/strand_service.ipp +/include/asio/detail/impl/thread_context.ipp /include/asio/detail/impl/throw_error.ipp /include/asio/detail/impl/timer_queue_ptime.ipp /include/asio/detail/impl/timer_queue_set.ipp /include/asio/detail/impl/win_event.ipp +/include/asio/detail/impl/win_iocp_file_service.ipp /include/asio/detail/impl/win_iocp_handle_service.ipp /include/asio/detail/impl/win_iocp_io_context.hpp /include/asio/detail/impl/win_iocp_io_context.ipp @@ -4526,8 +5876,30 @@ /include/asio/detail/impl/win_static_mutex.ipp /include/asio/detail/impl/win_thread.ipp /include/asio/detail/impl/win_tss_ptr.ipp +/include/asio/detail/initiate_defer.hpp +/include/asio/detail/initiate_dispatch.hpp +/include/asio/detail/initiate_post.hpp /include/asio/detail/io_control.hpp /include/asio/detail/io_object_impl.hpp +/include/asio/detail/io_uring_descriptor_read_at_op.hpp +/include/asio/detail/io_uring_descriptor_read_op.hpp +/include/asio/detail/io_uring_descriptor_service.hpp +/include/asio/detail/io_uring_descriptor_write_at_op.hpp +/include/asio/detail/io_uring_descriptor_write_op.hpp +/include/asio/detail/io_uring_file_service.hpp +/include/asio/detail/io_uring_null_buffers_op.hpp +/include/asio/detail/io_uring_operation.hpp +/include/asio/detail/io_uring_service.hpp +/include/asio/detail/io_uring_socket_accept_op.hpp +/include/asio/detail/io_uring_socket_connect_op.hpp +/include/asio/detail/io_uring_socket_recvfrom_op.hpp +/include/asio/detail/io_uring_socket_recvmsg_op.hpp +/include/asio/detail/io_uring_socket_recv_op.hpp +/include/asio/detail/io_uring_socket_send_op.hpp +/include/asio/detail/io_uring_socket_sendto_op.hpp +/include/asio/detail/io_uring_socket_service_base.hpp +/include/asio/detail/io_uring_socket_service.hpp +/include/asio/detail/io_uring_wait_op.hpp /include/asio/detail/is_buffer_sequence.hpp /include/asio/detail/is_executor.hpp /include/asio/detail/keyword_tss_ptr.hpp @@ -4559,6 +5931,7 @@ /include/asio/detail/posix_fd_set_adapter.hpp /include/asio/detail/posix_global.hpp /include/asio/detail/posix_mutex.hpp +/include/asio/detail/posix_serial_port_service.hpp /include/asio/detail/posix_signal_blocker.hpp /include/asio/detail/posix_static_mutex.hpp /include/asio/detail/posix_thread.hpp @@ -4566,7 +5939,6 @@ /include/asio/detail/push_options.hpp /include/asio/detail/reactive_descriptor_service.hpp /include/asio/detail/reactive_null_buffers_op.hpp -/include/asio/detail/reactive_serial_port_service.hpp /include/asio/detail/reactive_socket_accept_op.hpp /include/asio/detail/reactive_socket_connect_op.hpp /include/asio/detail/reactive_socket_recvfrom_op.hpp @@ -4577,7 +5949,6 @@ /include/asio/detail/reactive_socket_service_base.hpp /include/asio/detail/reactive_socket_service.hpp /include/asio/detail/reactive_wait_op.hpp -/include/asio/detail/reactor_fwd.hpp /include/asio/detail/reactor.hpp /include/asio/detail/reactor_op.hpp /include/asio/detail/reactor_op_queue.hpp @@ -4590,6 +5961,7 @@ /include/asio/detail/resolver_service.hpp /include/asio/detail/scheduler.hpp /include/asio/detail/scheduler_operation.hpp +/include/asio/detail/scheduler_task.hpp /include/asio/detail/scheduler_thread_info.hpp /include/asio/detail/scoped_lock.hpp /include/asio/detail/scoped_ptr.hpp @@ -4632,6 +6004,7 @@ /include/asio/detail/timer_scheduler.hpp /include/asio/detail/tss_ptr.hpp /include/asio/detail/type_traits.hpp +/include/asio/detail/utility.hpp /include/asio/detail/variadic_templates.hpp /include/asio/detail/wait_handler.hpp /include/asio/detail/wait_op.hpp @@ -4641,6 +6014,7 @@ /include/asio/detail/win_fd_set_adapter.hpp /include/asio/detail/win_fenced_block.hpp /include/asio/detail/win_global.hpp +/include/asio/detail/win_iocp_file_service.hpp /include/asio/detail/win_iocp_handle_read_op.hpp /include/asio/detail/win_iocp_handle_service.hpp /include/asio/detail/win_iocp_handle_write_op.hpp @@ -4726,6 +6100,53 @@ /include/asio/execution/submit.hpp /include/asio/executor.hpp /include/asio/executor_work_guard.hpp +/include/asio/experimental/ +/include/asio/experimental/append.hpp +/include/asio/experimental/as_single.hpp +/include/asio/experimental/as_tuple.hpp +/include/asio/experimental/awaitable_operators.hpp +/include/asio/experimental/basic_channel.hpp +/include/asio/experimental/basic_concurrent_channel.hpp +/include/asio/experimental/cancellation_condition.hpp +/include/asio/experimental/channel_error.hpp +/include/asio/experimental/channel.hpp +/include/asio/experimental/channel_traits.hpp +/include/asio/experimental/co_composed.hpp +/include/asio/experimental/concurrent_channel.hpp +/include/asio/experimental/coro.hpp +/include/asio/experimental/coro_traits.hpp +/include/asio/experimental/co_spawn.hpp +/include/asio/experimental/deferred.hpp +/include/asio/experimental/detail/ +/include/asio/experimental/detail/channel_handler.hpp +/include/asio/experimental/detail/channel_message.hpp +/include/asio/experimental/detail/channel_operation.hpp +/include/asio/experimental/detail/channel_payload.hpp +/include/asio/experimental/detail/channel_receive_op.hpp +/include/asio/experimental/detail/channel_send_functions.hpp +/include/asio/experimental/detail/channel_send_op.hpp +/include/asio/experimental/detail/channel_service.hpp +/include/asio/experimental/detail/coro_completion_handler.hpp +/include/asio/experimental/detail/coro_promise_allocator.hpp +/include/asio/experimental/detail/has_signature.hpp +/include/asio/experimental/detail/impl/ +/include/asio/experimental/detail/impl/channel_service.hpp +/include/asio/experimental/detail/partial_promise.hpp +/include/asio/experimental/impl/ +/include/asio/experimental/impl/as_single.hpp +/include/asio/experimental/impl/channel_error.ipp +/include/asio/experimental/impl/co_composed.hpp +/include/asio/experimental/impl/coro.hpp +/include/asio/experimental/impl/parallel_group.hpp +/include/asio/experimental/impl/promise.hpp +/include/asio/experimental/impl/use_coro.hpp +/include/asio/experimental/impl/use_promise.hpp +/include/asio/experimental/parallel_group.hpp +/include/asio/experimental/prepend.hpp +/include/asio/experimental/promise.hpp +/include/asio/experimental/use_coro.hpp +/include/asio/experimental/use_promise.hpp +/include/asio/file_base.hpp /include/asio/generic/ /include/asio/generic/basic_endpoint.hpp /include/asio/generic/datagram_protocol.hpp @@ -4742,15 +6163,21 @@ /include/asio/high_resolution_timer.hpp /include/asio.hpp /include/asio/impl/ +/include/asio/impl/any_completion_executor.ipp +/include/asio/impl/any_io_executor.ipp +/include/asio/impl/append.hpp +/include/asio/impl/as_tuple.hpp /include/asio/impl/awaitable.hpp /include/asio/impl/buffered_read_stream.hpp /include/asio/impl/buffered_write_stream.hpp -/include/asio/impl/compose.hpp +/include/asio/impl/cancellation_signal.ipp /include/asio/impl/connect.hpp +/include/asio/impl/connect_pipe.hpp +/include/asio/impl/connect_pipe.ipp +/include/asio/impl/consign.hpp /include/asio/impl/co_spawn.hpp -/include/asio/impl/defer.hpp +/include/asio/impl/deferred.hpp /include/asio/impl/detached.hpp -/include/asio/impl/dispatch.hpp /include/asio/impl/error_code.ipp /include/asio/impl/error.ipp /include/asio/impl/execution_context.hpp @@ -4761,7 +6188,7 @@ /include/asio/impl/io_context.hpp /include/asio/impl/io_context.ipp /include/asio/impl/multiple_exceptions.ipp -/include/asio/impl/post.hpp +/include/asio/impl/prepend.hpp /include/asio/impl/read_at.hpp /include/asio/impl/read.hpp /include/asio/impl/read_until.hpp @@ -4769,7 +6196,6 @@ /include/asio/impl/serial_port_base.hpp /include/asio/impl/serial_port_base.ipp /include/asio/impl/spawn.hpp -/include/asio/impl/src.cpp /include/asio/impl/src.hpp /include/asio/impl/system_context.hpp /include/asio/impl/system_context.ipp @@ -4829,6 +6255,7 @@ /include/asio/ip/unicast.hpp /include/asio/ip/v6_only.hpp /include/asio/is_applicable_property.hpp +/include/asio/is_contiguous_iterator.hpp /include/asio/is_executor.hpp /include/asio/is_read_buffered.hpp /include/asio/is_write_buffered.hpp @@ -4840,6 +6267,7 @@ /include/asio/local/detail/endpoint.hpp /include/asio/local/detail/impl/ /include/asio/local/detail/impl/endpoint.ipp +/include/asio/local/seq_packet_protocol.hpp /include/asio/local/stream_protocol.hpp /include/asio/multiple_exceptions.hpp /include/asio/packaged_task.hpp @@ -4852,15 +6280,21 @@ /include/asio/posix/stream_descriptor.hpp /include/asio/post.hpp /include/asio/prefer.hpp +/include/asio/prepend.hpp /include/asio/query.hpp +/include/asio/random_access_file.hpp +/include/asio/readable_pipe.hpp /include/asio/read_at.hpp /include/asio/read.hpp /include/asio/read_until.hpp +/include/asio/recycling_allocator.hpp /include/asio/redirect_error.hpp +/include/asio/registered_buffer.hpp /include/asio/require_concept.hpp /include/asio/require.hpp /include/asio/serial_port_base.hpp /include/asio/serial_port.hpp +/include/asio/signal_set_base.hpp /include/asio/signal_set.hpp /include/asio/socket_base.hpp /include/asio/spawn.hpp @@ -4902,6 +6336,7 @@ /include/asio/steady_timer.hpp /include/asio/strand.hpp /include/asio/streambuf.hpp +/include/asio/stream_file.hpp /include/asio/system_context.hpp /include/asio/system_error.hpp /include/asio/system_executor.hpp @@ -4967,6 +6402,7 @@ /include/asio/windows/overlapped_ptr.hpp /include/asio/windows/random_access_handle.hpp /include/asio/windows/stream_handle.hpp +/include/asio/writable_pipe.hpp /include/asio/write_at.hpp /include/asio/write.hpp /include/asio/yield.hpp @@ -5119,7 +6555,7 @@ /src/examples/cpp03/ssl/ /src/examples/cpp03/ssl/ca.pem /src/examples/cpp03/ssl/client.cpp -/src/examples/cpp03/ssl/dh2048.pem +/src/examples/cpp03/ssl/dh4096.pem /src/examples/cpp03/ssl/README /src/examples/cpp03/ssl/server.cpp /src/examples/cpp03/ssl/server.pem @@ -5167,6 +6603,9 @@ /src/examples/cpp11/chat/chat_client.cpp /src/examples/cpp11/chat/chat_message.hpp /src/examples/cpp11/chat/chat_server.cpp +/src/examples/cpp11/deferred/ +/src/examples/cpp11/deferred/deferred_1.cpp +/src/examples/cpp11/deferred/deferred_2.cpp /src/examples/cpp11/echo/ /src/examples/cpp11/echo/async_tcp_echo_server.cpp /src/examples/cpp11/echo/async_udp_echo_server.cpp @@ -5181,6 +6620,9 @@ /src/examples/cpp11/executors/fork_join.cpp /src/examples/cpp11/executors/pipeline.cpp /src/examples/cpp11/executors/priority_scheduler.cpp +/src/examples/cpp11/files/ +/src/examples/cpp11/files/async_file_copy.cpp +/src/examples/cpp11/files/blocking_file_copy.cpp /src/examples/cpp11/fork/ /src/examples/cpp11/fork/daemon.cpp /src/examples/cpp11/fork/process_per_connection.cpp @@ -5214,6 +6656,8 @@ /src/examples/cpp11/iostreams/http_client.cpp /src/examples/cpp11/local/ /src/examples/cpp11/local/connect_pair.cpp +/src/examples/cpp11/local/fd_passing_stream_client.cpp +/src/examples/cpp11/local/fd_passing_stream_server.cpp /src/examples/cpp11/local/iostream_client.cpp /src/examples/cpp11/local/stream_client.cpp /src/examples/cpp11/local/stream_server.cpp @@ -5233,6 +6677,12 @@ /src/examples/cpp11/operations/composed_6.cpp /src/examples/cpp11/operations/composed_7.cpp /src/examples/cpp11/operations/composed_8.cpp +/src/examples/cpp11/parallel_group/ +/src/examples/cpp11/parallel_group/ranged_wait_for_all.cpp +/src/examples/cpp11/parallel_group/wait_for_all.cpp +/src/examples/cpp11/parallel_group/wait_for_one.cpp +/src/examples/cpp11/parallel_group/wait_for_one_error.cpp +/src/examples/cpp11/parallel_group/wait_for_one_success.cpp /src/examples/cpp11/socks4/ /src/examples/cpp11/socks4/socks4.hpp /src/examples/cpp11/socks4/sync_client.cpp @@ -5240,8 +6690,12 @@ /src/examples/cpp11/spawn/echo_server.cpp /src/examples/cpp11/spawn/parallel_grep.cpp /src/examples/cpp11/ssl/ +/src/examples/cpp11/ssl/ca.pem /src/examples/cpp11/ssl/client.cpp +/src/examples/cpp11/ssl/dh4096.pem +/src/examples/cpp11/ssl/README /src/examples/cpp11/ssl/server.cpp +/src/examples/cpp11/ssl/server.pem /src/examples/cpp11/timeouts/ /src/examples/cpp11/timeouts/async_tcp_client.cpp /src/examples/cpp11/timeouts/blocking_tcp_client.cpp @@ -5250,7 +6704,22 @@ /src/examples/cpp11/timeouts/server.cpp /src/examples/cpp11/timers/ /src/examples/cpp11/timers/time_t_timer.cpp +/src/examples/cpp11/type_erasure/ +/src/examples/cpp11/type_erasure/line_reader.hpp +/src/examples/cpp11/type_erasure/main.cpp +/src/examples/cpp11/type_erasure/sleep.cpp +/src/examples/cpp11/type_erasure/sleep.hpp +/src/examples/cpp11/type_erasure/stdin_line_reader.cpp +/src/examples/cpp11/type_erasure/stdin_line_reader.hpp /src/examples/cpp14/ +/src/examples/cpp14/deferred/ +/src/examples/cpp14/deferred/deferred_1.cpp +/src/examples/cpp14/deferred/deferred_2.cpp +/src/examples/cpp14/deferred/deferred_3.cpp +/src/examples/cpp14/deferred/deferred_4.cpp +/src/examples/cpp14/deferred/deferred_5.cpp +/src/examples/cpp14/deferred/deferred_6.cpp +/src/examples/cpp14/deferred/deferred_7.cpp /src/examples/cpp14/echo/ /src/examples/cpp14/echo/async_tcp_echo_server.cpp /src/examples/cpp14/echo/async_udp_echo_server.cpp @@ -5272,6 +6741,8 @@ /src/examples/cpp14/Makefile.am /src/examples/cpp14/Makefile.in /src/examples/cpp14/operations/ +/src/examples/cpp14/operations/callback_wrapper.cpp +/src/examples/cpp14/operations/c_callback_wrapper.cpp /src/examples/cpp14/operations/composed_1.cpp /src/examples/cpp14/operations/composed_2.cpp /src/examples/cpp14/operations/composed_3.cpp @@ -5280,15 +6751,57 @@ /src/examples/cpp14/operations/composed_6.cpp /src/examples/cpp14/operations/composed_7.cpp /src/examples/cpp14/operations/composed_8.cpp +/src/examples/cpp14/parallel_group/ +/src/examples/cpp14/parallel_group/parallel_sort.cpp +/src/examples/cpp14/parallel_group/ranged_wait_for_all.cpp +/src/examples/cpp14/parallel_group/wait_for_all.cpp +/src/examples/cpp14/parallel_group/wait_for_one.cpp +/src/examples/cpp14/parallel_group/wait_for_one_error.cpp +/src/examples/cpp14/parallel_group/wait_for_one_success.cpp /src/examples/cpp17/ /src/examples/cpp17/coroutines_ts/ /src/examples/cpp17/coroutines_ts/chat_server.cpp /src/examples/cpp17/coroutines_ts/echo_server.cpp +/src/examples/cpp17/coroutines_ts/echo_server_with_as_single_default.cpp +/src/examples/cpp17/coroutines_ts/echo_server_with_as_tuple_default.cpp /src/examples/cpp17/coroutines_ts/echo_server_with_default.cpp /src/examples/cpp17/coroutines_ts/range_based_for.cpp /src/examples/cpp17/coroutines_ts/refactored_echo_server.cpp /src/examples/cpp17/Makefile.am /src/examples/cpp17/Makefile.in +/src/examples/cpp20/ +/src/examples/cpp20/channels/ +/src/examples/cpp20/channels/throttling_proxy.cpp +/src/examples/cpp20/coroutines/ +/src/examples/cpp20/coroutines/chat_server.cpp +/src/examples/cpp20/coroutines/echo_server.cpp +/src/examples/cpp20/coroutines/echo_server_with_as_single_default.cpp +/src/examples/cpp20/coroutines/echo_server_with_as_tuple_default.cpp +/src/examples/cpp20/coroutines/echo_server_with_default.cpp +/src/examples/cpp20/coroutines/echo_server_with_deferred.cpp +/src/examples/cpp20/coroutines/echo_server_with_deferred_default.cpp +/src/examples/cpp20/coroutines/refactored_echo_server.cpp +/src/examples/cpp20/coroutines/timeout.cpp +/src/examples/cpp20/Makefile.am +/src/examples/cpp20/Makefile.in +/src/examples/cpp20/operations/ +/src/examples/cpp20/operations/callback_wrapper.cpp +/src/examples/cpp20/operations/c_callback_wrapper.cpp +/src/examples/cpp20/operations/composed_1.cpp +/src/examples/cpp20/operations/composed_2.cpp +/src/examples/cpp20/operations/composed_3.cpp +/src/examples/cpp20/operations/composed_4.cpp +/src/examples/cpp20/operations/composed_5.cpp +/src/examples/cpp20/operations/composed_6.cpp +/src/examples/cpp20/operations/composed_7.cpp +/src/examples/cpp20/operations/composed_8.cpp +/src/examples/cpp20/type_erasure/ +/src/examples/cpp20/type_erasure/line_reader.hpp +/src/examples/cpp20/type_erasure/main.cpp +/src/examples/cpp20/type_erasure/sleep.cpp +/src/examples/cpp20/type_erasure/sleep.hpp +/src/examples/cpp20/type_erasure/stdin_line_reader.cpp +/src/examples/cpp20/type_erasure/stdin_line_reader.hpp /src/Makefile.am /src/Makefile.in /src/Makefile.mgw @@ -5485,6 +6998,7 @@ /src/tests/properties/Makefile.am /src/tests/properties/Makefile.in /src/tests/unit/ +/src/tests/unit/append.cpp /src/tests/unit/archetypes/ /src/tests/unit/archetypes/async_ops.hpp /src/tests/unit/archetypes/async_result.hpp @@ -5492,33 +7006,52 @@ /src/tests/unit/archetypes/io_control_command.hpp /src/tests/unit/archetypes/settable_socket_option.hpp /src/tests/unit/associated_allocator.cpp +/src/tests/unit/associated_cancellation_slot.cpp /src/tests/unit/associated_executor.cpp +/src/tests/unit/associated_immediate_executor.cpp +/src/tests/unit/associator.cpp +/src/tests/unit/as_tuple.cpp /src/tests/unit/async_result.cpp /src/tests/unit/awaitable.cpp /src/tests/unit/basic_datagram_socket.cpp /src/tests/unit/basic_deadline_timer.cpp +/src/tests/unit/basic_file.cpp +/src/tests/unit/basic_random_access_file.cpp /src/tests/unit/basic_raw_socket.cpp +/src/tests/unit/basic_readable_pipe.cpp /src/tests/unit/basic_seq_packet_socket.cpp /src/tests/unit/basic_serial_port.cpp /src/tests/unit/basic_signal_set.cpp /src/tests/unit/basic_socket_acceptor.cpp /src/tests/unit/basic_socket.cpp /src/tests/unit/basic_streambuf.cpp +/src/tests/unit/basic_stream_file.cpp /src/tests/unit/basic_stream_socket.cpp /src/tests/unit/basic_waitable_timer.cpp +/src/tests/unit/basic_writable_pipe.cpp +/src/tests/unit/bind_allocator.cpp +/src/tests/unit/bind_cancellation_slot.cpp /src/tests/unit/bind_executor.cpp +/src/tests/unit/bind_immediate_executor.cpp /src/tests/unit/buffer.cpp /src/tests/unit/buffered_read_stream.cpp /src/tests/unit/buffered_stream.cpp /src/tests/unit/buffered_write_stream.cpp +/src/tests/unit/buffer_registration.cpp /src/tests/unit/buffers_iterator.cpp +/src/tests/unit/cancellation_signal.cpp +/src/tests/unit/cancellation_state.cpp +/src/tests/unit/cancellation_type.cpp /src/tests/unit/completion_condition.cpp /src/tests/unit/compose.cpp /src/tests/unit/connect.cpp +/src/tests/unit/connect_pipe.cpp +/src/tests/unit/consign.cpp /src/tests/unit/coroutine.cpp /src/tests/unit/co_spawn.cpp /src/tests/unit/deadline_timer.cpp /src/tests/unit/defer.cpp +/src/tests/unit/deferred.cpp /src/tests/unit/detached.cpp /src/tests/unit/dispatch.cpp /src/tests/unit/error.cpp @@ -5550,6 +7083,26 @@ /src/tests/unit/execution/submit.cpp /src/tests/unit/executor.cpp /src/tests/unit/executor_work_guard.cpp +/src/tests/unit/experimental/ +/src/tests/unit/experimental/awaitable_operators.cpp +/src/tests/unit/experimental/basic_channel.cpp +/src/tests/unit/experimental/basic_concurrent_channel.cpp +/src/tests/unit/experimental/channel.cpp +/src/tests/unit/experimental/channel_traits.cpp +/src/tests/unit/experimental/co_composed.cpp +/src/tests/unit/experimental/concurrent_channel.cpp +/src/tests/unit/experimental/coro/ +/src/tests/unit/experimental/coro/allocator.cpp +/src/tests/unit/experimental/coro/cancel.cpp +/src/tests/unit/experimental/coro/co_spawn.cpp +/src/tests/unit/experimental/coro/exception.cpp +/src/tests/unit/experimental/coro/executor.cpp +/src/tests/unit/experimental/coro/partial.cpp +/src/tests/unit/experimental/coro/simple_test.cpp +/src/tests/unit/experimental/coro/stack_test.cpp +/src/tests/unit/experimental/coro/use_coro.cpp +/src/tests/unit/experimental/promise.cpp +/src/tests/unit/file_base.cpp /src/tests/unit/generic/ /src/tests/unit/generic/basic_endpoint.cpp /src/tests/unit/generic/datagram_protocol.cpp @@ -5588,6 +7141,7 @@ /src/tests/unit/local/basic_endpoint.cpp /src/tests/unit/local/connect_pair.cpp /src/tests/unit/local/datagram_protocol.cpp +/src/tests/unit/local/seq_packet_protocol.cpp /src/tests/unit/local/stream_protocol.cpp /src/tests/unit/packaged_task.cpp /src/tests/unit/placeholders.cpp @@ -5598,12 +7152,18 @@ /src/tests/unit/posix/descriptor.cpp /src/tests/unit/posix/stream_descriptor.cpp /src/tests/unit/post.cpp +/src/tests/unit/prepend.cpp +/src/tests/unit/random_access_file.cpp +/src/tests/unit/readable_pipe.cpp /src/tests/unit/read_at.cpp /src/tests/unit/read.cpp /src/tests/unit/read_until.cpp +/src/tests/unit/recycling_allocator.cpp /src/tests/unit/redirect_error.cpp +/src/tests/unit/registered_buffer.cpp /src/tests/unit/serial_port_base.cpp /src/tests/unit/serial_port.cpp +/src/tests/unit/signal_set_base.cpp /src/tests/unit/signal_set.cpp /src/tests/unit/socket_base.cpp /src/tests/unit/ssl/ @@ -5618,6 +7178,7 @@ /src/tests/unit/steady_timer.cpp /src/tests/unit/strand.cpp /src/tests/unit/streambuf.cpp +/src/tests/unit/stream_file.cpp /src/tests/unit/system_context.cpp /src/tests/unit/system_executor.cpp /src/tests/unit/system_timer.cpp @@ -5649,6 +7210,7 @@ /src/tests/unit/windows/overlapped_ptr.cpp /src/tests/unit/windows/random_access_handle.cpp /src/tests/unit/windows/stream_handle.cpp +/src/tests/unit/writable_pipe.cpp /src/tests/unit/write_at.cpp /src/tests/unit/write.cpp /src/tools/ diff --git a/tidal-link/link/modules/asio-standalone/asio/asio.pc.in b/tidal-link/link/modules/asio-standalone/asio/asio.pc.in new file mode 100644 index 000000000..b93eb673d --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/asio.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +includedir=@includedir@ + +Name: @PACKAGE_NAME@ +Description: A cross-platform C++ library for network and low-level I/O programming that provides developers with a consistent asynchronous model using a modern C++ approach. +Version: @PACKAGE_VERSION@ +Cflags: -I${includedir} +Lflags: +Requires: +Requires.private: diff --git a/tidal-link/link/modules/asio-standalone/asio/autogen.sh b/tidal-link/link/modules/asio-standalone/asio/autogen.sh old mode 100644 new mode 100755 diff --git a/tidal-link/link/modules/asio-standalone/asio/boost_asio.manifest b/tidal-link/link/modules/asio-standalone/asio/boost_asio.manifest index 9c6c6e2bc..8258b2a8a 100644 --- a/tidal-link/link/modules/asio-standalone/asio/boost_asio.manifest +++ b/tidal-link/link/modules/asio-standalone/asio/boost_asio.manifest @@ -1,15 +1,25 @@ / /boost/ /boost/asio/ +/boost/asio/any_completion_executor.hpp +/boost/asio/any_completion_handler.hpp /boost/asio/any_io_executor.hpp +/boost/asio/append.hpp /boost/asio/associated_allocator.hpp +/boost/asio/associated_cancellation_slot.hpp /boost/asio/associated_executor.hpp +/boost/asio/associated_immediate_executor.hpp +/boost/asio/associator.hpp +/boost/asio/as_tuple.hpp /boost/asio/async_result.hpp /boost/asio/awaitable.hpp /boost/asio/basic_datagram_socket.hpp /boost/asio/basic_deadline_timer.hpp +/boost/asio/basic_file.hpp /boost/asio/basic_io_object.hpp +/boost/asio/basic_random_access_file.hpp /boost/asio/basic_raw_socket.hpp +/boost/asio/basic_readable_pipe.hpp /boost/asio/basic_seq_packet_socket.hpp /boost/asio/basic_serial_port.hpp /boost/asio/basic_signal_set.hpp @@ -19,9 +29,14 @@ /boost/asio/basic_socket_streambuf.hpp /boost/asio/basic_streambuf_fwd.hpp /boost/asio/basic_streambuf.hpp +/boost/asio/basic_stream_file.hpp /boost/asio/basic_stream_socket.hpp /boost/asio/basic_waitable_timer.hpp +/boost/asio/basic_writable_pipe.hpp +/boost/asio/bind_allocator.hpp +/boost/asio/bind_cancellation_slot.hpp /boost/asio/bind_executor.hpp +/boost/asio/bind_immediate_executor.hpp /boost/asio/buffered_read_stream_fwd.hpp /boost/asio/buffered_read_stream.hpp /boost/asio/buffered_stream_fwd.hpp @@ -29,20 +44,28 @@ /boost/asio/buffered_write_stream_fwd.hpp /boost/asio/buffered_write_stream.hpp /boost/asio/buffer.hpp +/boost/asio/buffer_registration.hpp /boost/asio/buffers_iterator.hpp +/boost/asio/cancellation_signal.hpp +/boost/asio/cancellation_state.hpp +/boost/asio/cancellation_type.hpp /boost/asio/completion_condition.hpp /boost/asio/compose.hpp /boost/asio/connect.hpp +/boost/asio/connect_pipe.hpp +/boost/asio/consign.hpp /boost/asio/coroutine.hpp /boost/asio/co_spawn.hpp /boost/asio/deadline_timer.hpp /boost/asio/defer.hpp +/boost/asio/deferred.hpp /boost/asio/detached.hpp /boost/asio/detail/ /boost/asio/detail/array_fwd.hpp /boost/asio/detail/array.hpp /boost/asio/detail/assert.hpp /boost/asio/detail/atomic_count.hpp +/boost/asio/detail/base_from_cancellation_state.hpp /boost/asio/detail/base_from_completion_cond.hpp /boost/asio/detail/bind_handler.hpp /boost/asio/detail/blocking_executor_op.hpp @@ -54,6 +77,7 @@ /boost/asio/detail/chrono.hpp /boost/asio/detail/chrono_time_traits.hpp /boost/asio/detail/completion_handler.hpp +/boost/asio/detail/composed_work.hpp /boost/asio/detail/concurrency_hint.hpp /boost/asio/detail/conditionally_enabled_event.hpp /boost/asio/detail/conditionally_enabled_mutex.hpp @@ -71,6 +95,7 @@ /boost/asio/detail/epoll_reactor.hpp /boost/asio/detail/eventfd_select_interrupter.hpp /boost/asio/detail/event.hpp +/boost/asio/detail/exception.hpp /boost/asio/detail/executor_function.hpp /boost/asio/detail/executor_op.hpp /boost/asio/detail/fd_set_adapter.hpp @@ -98,16 +123,21 @@ /boost/asio/detail/impl/epoll_reactor.ipp /boost/asio/detail/impl/eventfd_select_interrupter.ipp /boost/asio/detail/impl/handler_tracking.ipp +/boost/asio/detail/impl/io_uring_descriptor_service.ipp +/boost/asio/detail/impl/io_uring_file_service.ipp +/boost/asio/detail/impl/io_uring_service.hpp +/boost/asio/detail/impl/io_uring_service.ipp +/boost/asio/detail/impl/io_uring_socket_service_base.ipp /boost/asio/detail/impl/kqueue_reactor.hpp /boost/asio/detail/impl/kqueue_reactor.ipp /boost/asio/detail/impl/null_event.ipp /boost/asio/detail/impl/pipe_select_interrupter.ipp /boost/asio/detail/impl/posix_event.ipp /boost/asio/detail/impl/posix_mutex.ipp +/boost/asio/detail/impl/posix_serial_port_service.ipp /boost/asio/detail/impl/posix_thread.ipp /boost/asio/detail/impl/posix_tss_ptr.ipp /boost/asio/detail/impl/reactive_descriptor_service.ipp -/boost/asio/detail/impl/reactive_serial_port_service.ipp /boost/asio/detail/impl/reactive_socket_service_base.ipp /boost/asio/detail/impl/resolver_service_base.ipp /boost/asio/detail/impl/scheduler.ipp @@ -122,10 +152,12 @@ /boost/asio/detail/impl/strand_executor_service.ipp /boost/asio/detail/impl/strand_service.hpp /boost/asio/detail/impl/strand_service.ipp +/boost/asio/detail/impl/thread_context.ipp /boost/asio/detail/impl/throw_error.ipp /boost/asio/detail/impl/timer_queue_ptime.ipp /boost/asio/detail/impl/timer_queue_set.ipp /boost/asio/detail/impl/win_event.ipp +/boost/asio/detail/impl/win_iocp_file_service.ipp /boost/asio/detail/impl/win_iocp_handle_service.ipp /boost/asio/detail/impl/win_iocp_io_context.hpp /boost/asio/detail/impl/win_iocp_io_context.ipp @@ -140,8 +172,30 @@ /boost/asio/detail/impl/win_static_mutex.ipp /boost/asio/detail/impl/win_thread.ipp /boost/asio/detail/impl/win_tss_ptr.ipp +/boost/asio/detail/initiate_defer.hpp +/boost/asio/detail/initiate_dispatch.hpp +/boost/asio/detail/initiate_post.hpp /boost/asio/detail/io_control.hpp /boost/asio/detail/io_object_impl.hpp +/boost/asio/detail/io_uring_descriptor_read_at_op.hpp +/boost/asio/detail/io_uring_descriptor_read_op.hpp +/boost/asio/detail/io_uring_descriptor_service.hpp +/boost/asio/detail/io_uring_descriptor_write_at_op.hpp +/boost/asio/detail/io_uring_descriptor_write_op.hpp +/boost/asio/detail/io_uring_file_service.hpp +/boost/asio/detail/io_uring_null_buffers_op.hpp +/boost/asio/detail/io_uring_operation.hpp +/boost/asio/detail/io_uring_service.hpp +/boost/asio/detail/io_uring_socket_accept_op.hpp +/boost/asio/detail/io_uring_socket_connect_op.hpp +/boost/asio/detail/io_uring_socket_recvfrom_op.hpp +/boost/asio/detail/io_uring_socket_recvmsg_op.hpp +/boost/asio/detail/io_uring_socket_recv_op.hpp +/boost/asio/detail/io_uring_socket_send_op.hpp +/boost/asio/detail/io_uring_socket_sendto_op.hpp +/boost/asio/detail/io_uring_socket_service_base.hpp +/boost/asio/detail/io_uring_socket_service.hpp +/boost/asio/detail/io_uring_wait_op.hpp /boost/asio/detail/is_buffer_sequence.hpp /boost/asio/detail/is_executor.hpp /boost/asio/detail/keyword_tss_ptr.hpp @@ -173,6 +227,7 @@ /boost/asio/detail/posix_fd_set_adapter.hpp /boost/asio/detail/posix_global.hpp /boost/asio/detail/posix_mutex.hpp +/boost/asio/detail/posix_serial_port_service.hpp /boost/asio/detail/posix_signal_blocker.hpp /boost/asio/detail/posix_static_mutex.hpp /boost/asio/detail/posix_thread.hpp @@ -180,7 +235,6 @@ /boost/asio/detail/push_options.hpp /boost/asio/detail/reactive_descriptor_service.hpp /boost/asio/detail/reactive_null_buffers_op.hpp -/boost/asio/detail/reactive_serial_port_service.hpp /boost/asio/detail/reactive_socket_accept_op.hpp /boost/asio/detail/reactive_socket_connect_op.hpp /boost/asio/detail/reactive_socket_recvfrom_op.hpp @@ -191,7 +245,6 @@ /boost/asio/detail/reactive_socket_service_base.hpp /boost/asio/detail/reactive_socket_service.hpp /boost/asio/detail/reactive_wait_op.hpp -/boost/asio/detail/reactor_fwd.hpp /boost/asio/detail/reactor.hpp /boost/asio/detail/reactor_op.hpp /boost/asio/detail/reactor_op_queue.hpp @@ -204,6 +257,7 @@ /boost/asio/detail/resolver_service.hpp /boost/asio/detail/scheduler.hpp /boost/asio/detail/scheduler_operation.hpp +/boost/asio/detail/scheduler_task.hpp /boost/asio/detail/scheduler_thread_info.hpp /boost/asio/detail/scoped_lock.hpp /boost/asio/detail/scoped_ptr.hpp @@ -246,6 +300,7 @@ /boost/asio/detail/timer_scheduler.hpp /boost/asio/detail/tss_ptr.hpp /boost/asio/detail/type_traits.hpp +/boost/asio/detail/utility.hpp /boost/asio/detail/variadic_templates.hpp /boost/asio/detail/wait_handler.hpp /boost/asio/detail/wait_op.hpp @@ -255,6 +310,7 @@ /boost/asio/detail/win_fd_set_adapter.hpp /boost/asio/detail/win_fenced_block.hpp /boost/asio/detail/win_global.hpp +/boost/asio/detail/win_iocp_file_service.hpp /boost/asio/detail/win_iocp_handle_read_op.hpp /boost/asio/detail/win_iocp_handle_service.hpp /boost/asio/detail/win_iocp_handle_write_op.hpp @@ -339,6 +395,53 @@ /boost/asio/execution/submit.hpp /boost/asio/executor.hpp /boost/asio/executor_work_guard.hpp +/boost/asio/experimental/ +/boost/asio/experimental/append.hpp +/boost/asio/experimental/as_single.hpp +/boost/asio/experimental/as_tuple.hpp +/boost/asio/experimental/awaitable_operators.hpp +/boost/asio/experimental/basic_channel.hpp +/boost/asio/experimental/basic_concurrent_channel.hpp +/boost/asio/experimental/cancellation_condition.hpp +/boost/asio/experimental/channel_error.hpp +/boost/asio/experimental/channel.hpp +/boost/asio/experimental/channel_traits.hpp +/boost/asio/experimental/co_composed.hpp +/boost/asio/experimental/concurrent_channel.hpp +/boost/asio/experimental/coro.hpp +/boost/asio/experimental/coro_traits.hpp +/boost/asio/experimental/co_spawn.hpp +/boost/asio/experimental/deferred.hpp +/boost/asio/experimental/detail/ +/boost/asio/experimental/detail/channel_handler.hpp +/boost/asio/experimental/detail/channel_message.hpp +/boost/asio/experimental/detail/channel_operation.hpp +/boost/asio/experimental/detail/channel_payload.hpp +/boost/asio/experimental/detail/channel_receive_op.hpp +/boost/asio/experimental/detail/channel_send_functions.hpp +/boost/asio/experimental/detail/channel_send_op.hpp +/boost/asio/experimental/detail/channel_service.hpp +/boost/asio/experimental/detail/coro_completion_handler.hpp +/boost/asio/experimental/detail/coro_promise_allocator.hpp +/boost/asio/experimental/detail/has_signature.hpp +/boost/asio/experimental/detail/impl/ +/boost/asio/experimental/detail/impl/channel_service.hpp +/boost/asio/experimental/detail/partial_promise.hpp +/boost/asio/experimental/impl/ +/boost/asio/experimental/impl/as_single.hpp +/boost/asio/experimental/impl/channel_error.ipp +/boost/asio/experimental/impl/co_composed.hpp +/boost/asio/experimental/impl/coro.hpp +/boost/asio/experimental/impl/parallel_group.hpp +/boost/asio/experimental/impl/promise.hpp +/boost/asio/experimental/impl/use_coro.hpp +/boost/asio/experimental/impl/use_promise.hpp +/boost/asio/experimental/parallel_group.hpp +/boost/asio/experimental/prepend.hpp +/boost/asio/experimental/promise.hpp +/boost/asio/experimental/use_coro.hpp +/boost/asio/experimental/use_promise.hpp +/boost/asio/file_base.hpp /boost/asio/generic/ /boost/asio/generic/basic_endpoint.hpp /boost/asio/generic/datagram_protocol.hpp @@ -355,15 +458,21 @@ /boost/asio/high_resolution_timer.hpp /boost/asio.hpp /boost/asio/impl/ +/boost/asio/impl/any_completion_executor.ipp +/boost/asio/impl/any_io_executor.ipp +/boost/asio/impl/append.hpp +/boost/asio/impl/as_tuple.hpp /boost/asio/impl/awaitable.hpp /boost/asio/impl/buffered_read_stream.hpp /boost/asio/impl/buffered_write_stream.hpp -/boost/asio/impl/compose.hpp +/boost/asio/impl/cancellation_signal.ipp /boost/asio/impl/connect.hpp +/boost/asio/impl/connect_pipe.hpp +/boost/asio/impl/connect_pipe.ipp +/boost/asio/impl/consign.hpp /boost/asio/impl/co_spawn.hpp -/boost/asio/impl/defer.hpp +/boost/asio/impl/deferred.hpp /boost/asio/impl/detached.hpp -/boost/asio/impl/dispatch.hpp /boost/asio/impl/error.ipp /boost/asio/impl/execution_context.hpp /boost/asio/impl/execution_context.ipp @@ -373,7 +482,7 @@ /boost/asio/impl/io_context.hpp /boost/asio/impl/io_context.ipp /boost/asio/impl/multiple_exceptions.ipp -/boost/asio/impl/post.hpp +/boost/asio/impl/prepend.hpp /boost/asio/impl/read_at.hpp /boost/asio/impl/read.hpp /boost/asio/impl/read_until.hpp @@ -381,7 +490,6 @@ /boost/asio/impl/serial_port_base.hpp /boost/asio/impl/serial_port_base.ipp /boost/asio/impl/spawn.hpp -/boost/asio/impl/src.cpp /boost/asio/impl/src.hpp /boost/asio/impl/system_context.hpp /boost/asio/impl/system_context.ipp @@ -441,6 +549,7 @@ /boost/asio/ip/unicast.hpp /boost/asio/ip/v6_only.hpp /boost/asio/is_applicable_property.hpp +/boost/asio/is_contiguous_iterator.hpp /boost/asio/is_executor.hpp /boost/asio/is_read_buffered.hpp /boost/asio/is_write_buffered.hpp @@ -452,6 +561,7 @@ /boost/asio/local/detail/endpoint.hpp /boost/asio/local/detail/impl/ /boost/asio/local/detail/impl/endpoint.ipp +/boost/asio/local/seq_packet_protocol.hpp /boost/asio/local/stream_protocol.hpp /boost/asio/multiple_exceptions.hpp /boost/asio/packaged_task.hpp @@ -464,15 +574,21 @@ /boost/asio/posix/stream_descriptor.hpp /boost/asio/post.hpp /boost/asio/prefer.hpp +/boost/asio/prepend.hpp /boost/asio/query.hpp +/boost/asio/random_access_file.hpp +/boost/asio/readable_pipe.hpp /boost/asio/read_at.hpp /boost/asio/read.hpp /boost/asio/read_until.hpp +/boost/asio/recycling_allocator.hpp /boost/asio/redirect_error.hpp +/boost/asio/registered_buffer.hpp /boost/asio/require_concept.hpp /boost/asio/require.hpp /boost/asio/serial_port_base.hpp /boost/asio/serial_port.hpp +/boost/asio/signal_set_base.hpp /boost/asio/signal_set.hpp /boost/asio/socket_base.hpp /boost/asio/spawn.hpp @@ -514,6 +630,7 @@ /boost/asio/steady_timer.hpp /boost/asio/strand.hpp /boost/asio/streambuf.hpp +/boost/asio/stream_file.hpp /boost/asio/system_context.hpp /boost/asio/system_executor.hpp /boost/asio/system_timer.hpp @@ -577,6 +694,7 @@ /boost/asio/windows/overlapped_ptr.hpp /boost/asio/windows/random_access_handle.hpp /boost/asio/windows/stream_handle.hpp +/boost/asio/writable_pipe.hpp /boost/asio/write_at.hpp /boost/asio/write.hpp /boost/asio/yield.hpp @@ -588,20 +706,56 @@ /boost/system/config.hpp /boost/system/cygwin_error.hpp /boost/system/detail/ +/boost/system/detail/append_int.hpp +/boost/system/detail/cerrno.hpp /boost/system/detail/config.hpp +/boost/system/detail/enable_if.hpp +/boost/system/detail/errc.hpp +/boost/system/detail/error_category.hpp +/boost/system/detail/error_category_impl.hpp +/boost/system/detail/error_code.hpp +/boost/system/detail/error_condition.hpp /boost/system/detail/generic_category.hpp -/boost/system/detail/std_interoperability.hpp -/boost/system/detail/system_category_posix.hpp -/boost/system/detail/system_category_win32.hpp +/boost/system/detail/generic_category_message.hpp +/boost/system/detail/interop_category.hpp +/boost/system/detail/is_same.hpp +/boost/system/detail/mutex.hpp +/boost/system/detail/requires_cxx11.hpp +/boost/system/detail/snprintf.hpp +/boost/system/detail/std_category.hpp +/boost/system/detail/std_category_impl.hpp +/boost/system/detail/system_category_condition_win32.hpp +/boost/system/detail/system_category.hpp +/boost/system/detail/system_category_impl.hpp +/boost/system/detail/system_category_message.hpp +/boost/system/detail/system_category_message_win32.hpp +/boost/system/detail/throws.hpp +/boost/system/errc.hpp +/boost/system/error_category.hpp /boost/system/error_code.hpp +/boost/system/error_condition.hpp +/boost/system/generic_category.hpp +/boost/system/is_error_code_enum.hpp +/boost/system/is_error_condition_enum.hpp /boost/system/linux_error.hpp +/boost/system/result.hpp +/boost/system/system_category.hpp /boost/system/system_error.hpp /boost/system/windows_error.hpp /doc/ /doc/html/ /doc/html/boost_asio/ +/doc/html/boost_asio/async_agent_chain.png +/doc/html/boost_asio/async_agent_model.png +/doc/html/boost_asio/async_child_agent_chain.png /doc/html/boost_asio/async_op1.png /doc/html/boost_asio/async_op2.png +/doc/html/boost_asio/async_op_init_complete.png +/doc/html/boost_asio/async_op_model.png +/doc/html/boost_asio/async_op_phases.png +/doc/html/boost_asio/async_op_trivial_chain.png +/doc/html/boost_asio/completion_token_model.png +/doc/html/boost_asio/completion_token_transform.png /doc/html/boost_asio/example/ /doc/html/boost_asio/example/cpp03/ /doc/html/boost_asio/example/cpp03/allocation/ @@ -756,6 +910,9 @@ /doc/html/boost_asio/example/cpp11/chat/chat_client.cpp /doc/html/boost_asio/example/cpp11/chat/chat_message.hpp /doc/html/boost_asio/example/cpp11/chat/chat_server.cpp +/doc/html/boost_asio/example/cpp11/deferred/ +/doc/html/boost_asio/example/cpp11/deferred/deferred_1.cpp +/doc/html/boost_asio/example/cpp11/deferred/deferred_2.cpp /doc/html/boost_asio/example/cpp11/echo/ /doc/html/boost_asio/example/cpp11/echo/async_tcp_echo_server.cpp /doc/html/boost_asio/example/cpp11/echo/async_udp_echo_server.cpp @@ -801,6 +958,8 @@ /doc/html/boost_asio/example/cpp11/invocation/prioritised_handlers.cpp /doc/html/boost_asio/example/cpp11/local/ /doc/html/boost_asio/example/cpp11/local/connect_pair.cpp +/doc/html/boost_asio/example/cpp11/local/fd_passing_stream_client.cpp +/doc/html/boost_asio/example/cpp11/local/fd_passing_stream_server.cpp /doc/html/boost_asio/example/cpp11/local/iostream_client.cpp /doc/html/boost_asio/example/cpp11/local/stream_client.cpp /doc/html/boost_asio/example/cpp11/local/stream_server.cpp @@ -818,6 +977,12 @@ /doc/html/boost_asio/example/cpp11/operations/composed_6.cpp /doc/html/boost_asio/example/cpp11/operations/composed_7.cpp /doc/html/boost_asio/example/cpp11/operations/composed_8.cpp +/doc/html/boost_asio/example/cpp11/parallel_group/ +/doc/html/boost_asio/example/cpp11/parallel_group/ranged_wait_for_all.cpp +/doc/html/boost_asio/example/cpp11/parallel_group/wait_for_all.cpp +/doc/html/boost_asio/example/cpp11/parallel_group/wait_for_one.cpp +/doc/html/boost_asio/example/cpp11/parallel_group/wait_for_one_error.cpp +/doc/html/boost_asio/example/cpp11/parallel_group/wait_for_one_success.cpp /doc/html/boost_asio/example/cpp11/socks4/ /doc/html/boost_asio/example/cpp11/socks4/socks4.hpp /doc/html/boost_asio/example/cpp11/socks4/sync_client.cpp @@ -835,8 +1000,36 @@ /doc/html/boost_asio/example/cpp11/timeouts/server.cpp /doc/html/boost_asio/example/cpp11/timers/ /doc/html/boost_asio/example/cpp11/timers/time_t_timer.cpp +/doc/html/boost_asio/example/cpp11/type_erasure/ +/doc/html/boost_asio/example/cpp11/type_erasure/line_reader.hpp +/doc/html/boost_asio/example/cpp11/type_erasure/main.cpp +/doc/html/boost_asio/example/cpp11/type_erasure/sleep.cpp +/doc/html/boost_asio/example/cpp11/type_erasure/sleep.hpp +/doc/html/boost_asio/example/cpp11/type_erasure/stdin_line_reader.cpp +/doc/html/boost_asio/example/cpp11/type_erasure/stdin_line_reader.hpp /doc/html/boost_asio/example/cpp14/ +/doc/html/boost_asio/example/cpp14/deferred/ +/doc/html/boost_asio/example/cpp14/deferred/deferred_1.cpp +/doc/html/boost_asio/example/cpp14/deferred/deferred_2.cpp +/doc/html/boost_asio/example/cpp14/deferred/deferred_3.cpp +/doc/html/boost_asio/example/cpp14/deferred/deferred_4.cpp +/doc/html/boost_asio/example/cpp14/deferred/deferred_5.cpp +/doc/html/boost_asio/example/cpp14/deferred/deferred_6.cpp +/doc/html/boost_asio/example/cpp14/deferred/deferred_7.cpp +/doc/html/boost_asio/example/cpp14/executors/ +/doc/html/boost_asio/example/cpp14/executors/actor.cpp +/doc/html/boost_asio/example/cpp14/executors/async_1.cpp +/doc/html/boost_asio/example/cpp14/executors/async_2.cpp +/doc/html/boost_asio/example/cpp14/executors/bank_account_1.cpp +/doc/html/boost_asio/example/cpp14/executors/bank_account_2.cpp +/doc/html/boost_asio/example/cpp14/executors/fork_join.cpp +/doc/html/boost_asio/example/cpp14/executors/pipeline.cpp +/doc/html/boost_asio/example/cpp14/executors/priority_scheduler.cpp +/doc/html/boost_asio/example/cpp14/iostreams/ +/doc/html/boost_asio/example/cpp14/iostreams/http_client.cpp /doc/html/boost_asio/example/cpp14/operations/ +/doc/html/boost_asio/example/cpp14/operations/callback_wrapper.cpp +/doc/html/boost_asio/example/cpp14/operations/c_callback_wrapper.cpp /doc/html/boost_asio/example/cpp14/operations/composed_1.cpp /doc/html/boost_asio/example/cpp14/operations/composed_2.cpp /doc/html/boost_asio/example/cpp14/operations/composed_3.cpp @@ -845,37 +1038,92 @@ /doc/html/boost_asio/example/cpp14/operations/composed_6.cpp /doc/html/boost_asio/example/cpp14/operations/composed_7.cpp /doc/html/boost_asio/example/cpp14/operations/composed_8.cpp +/doc/html/boost_asio/example/cpp14/parallel_group/ +/doc/html/boost_asio/example/cpp14/parallel_group/parallel_sort.cpp +/doc/html/boost_asio/example/cpp14/parallel_group/ranged_wait_for_all.cpp +/doc/html/boost_asio/example/cpp14/parallel_group/wait_for_all.cpp +/doc/html/boost_asio/example/cpp14/parallel_group/wait_for_one.cpp +/doc/html/boost_asio/example/cpp14/parallel_group/wait_for_one_error.cpp +/doc/html/boost_asio/example/cpp14/parallel_group/wait_for_one_success.cpp /doc/html/boost_asio/example/cpp17/ /doc/html/boost_asio/example/cpp17/coroutines_ts/ /doc/html/boost_asio/example/cpp17/coroutines_ts/chat_server.cpp /doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server.cpp +/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server_with_as_single_default.cpp +/doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server_with_as_tuple_default.cpp /doc/html/boost_asio/example/cpp17/coroutines_ts/echo_server_with_default.cpp /doc/html/boost_asio/example/cpp17/coroutines_ts/range_based_for.cpp /doc/html/boost_asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp +/doc/html/boost_asio/example/cpp20/ +/doc/html/boost_asio/example/cpp20/channels/ +/doc/html/boost_asio/example/cpp20/channels/throttling_proxy.cpp +/doc/html/boost_asio/example/cpp20/coroutines/ +/doc/html/boost_asio/example/cpp20/coroutines/chat_server.cpp +/doc/html/boost_asio/example/cpp20/coroutines/echo_server.cpp +/doc/html/boost_asio/example/cpp20/coroutines/echo_server_with_as_single_default.cpp +/doc/html/boost_asio/example/cpp20/coroutines/echo_server_with_as_tuple_default.cpp +/doc/html/boost_asio/example/cpp20/coroutines/echo_server_with_default.cpp +/doc/html/boost_asio/example/cpp20/coroutines/echo_server_with_deferred.cpp +/doc/html/boost_asio/example/cpp20/coroutines/echo_server_with_deferred_default.cpp +/doc/html/boost_asio/example/cpp20/coroutines/refactored_echo_server.cpp +/doc/html/boost_asio/example/cpp20/coroutines/timeout.cpp +/doc/html/boost_asio/example/cpp20/operations/ +/doc/html/boost_asio/example/cpp20/operations/callback_wrapper.cpp +/doc/html/boost_asio/example/cpp20/operations/c_callback_wrapper.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_1.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_2.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_3.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_4.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_5.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_6.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_7.cpp +/doc/html/boost_asio/example/cpp20/operations/composed_8.cpp +/doc/html/boost_asio/example/cpp20/type_erasure/ +/doc/html/boost_asio/example/cpp20/type_erasure/line_reader.hpp +/doc/html/boost_asio/example/cpp20/type_erasure/main.cpp +/doc/html/boost_asio/example/cpp20/type_erasure/sleep.cpp +/doc/html/boost_asio/example/cpp20/type_erasure/sleep.hpp +/doc/html/boost_asio/example/cpp20/type_erasure/stdin_line_reader.cpp +/doc/html/boost_asio/example/cpp20/type_erasure/stdin_line_reader.hpp /doc/html/boost_asio/examples/ /doc/html/boost_asio/examples/cpp03_examples.html /doc/html/boost_asio/examples/cpp11_examples.html /doc/html/boost_asio/examples/cpp14_examples.html /doc/html/boost_asio/examples/cpp17_examples.html +/doc/html/boost_asio/examples/cpp20_examples.html /doc/html/boost_asio/examples.html +/doc/html/boost_asio/higher_level_model.png /doc/html/boost_asio/history.html /doc/html/boost_asio.html /doc/html/boost_asio/index.html /doc/html/boost_asio/net_ts.html /doc/html/boost_asio/overview/ +/doc/html/boost_asio/overview/basics.html +/doc/html/boost_asio/overview/channels.html +/doc/html/boost_asio/overview/composition/ +/doc/html/boost_asio/overview/composition/compose.html +/doc/html/boost_asio/overview/composition/coro.html +/doc/html/boost_asio/overview/composition/coroutine.html +/doc/html/boost_asio/overview/composition/cpp20_coroutines.html +/doc/html/boost_asio/overview/composition/deferred.html +/doc/html/boost_asio/overview/composition/futures.html +/doc/html/boost_asio/overview/composition.html +/doc/html/boost_asio/overview/composition/immediate_completion.html +/doc/html/boost_asio/overview/composition/parallel_group.html +/doc/html/boost_asio/overview/composition/promises.html +/doc/html/boost_asio/overview/composition/spawn.html +/doc/html/boost_asio/overview/composition/token_adapters.html +/doc/html/boost_asio/overview/composition/type_erasure.html /doc/html/boost_asio/overview/core/ /doc/html/boost_asio/overview/core/allocation.html /doc/html/boost_asio/overview/core/async.html -/doc/html/boost_asio/overview/core/basics.html /doc/html/boost_asio/overview/core/buffers.html +/doc/html/boost_asio/overview/core/cancellation.html /doc/html/boost_asio/overview/core/concurrency_hint.html -/doc/html/boost_asio/overview/core/coroutine.html -/doc/html/boost_asio/overview/core/coroutines_ts.html /doc/html/boost_asio/overview/core/handler_tracking.html /doc/html/boost_asio/overview/core.html /doc/html/boost_asio/overview/core/line_based.html /doc/html/boost_asio/overview/core/reactor.html -/doc/html/boost_asio/overview/core/spawn.html /doc/html/boost_asio/overview/core/strands.html /doc/html/boost_asio/overview/core/streams.html /doc/html/boost_asio/overview/core/threads.html @@ -883,20 +1131,33 @@ /doc/html/boost_asio/overview/cpp2011/array.html /doc/html/boost_asio/overview/cpp2011/atomic.html /doc/html/boost_asio/overview/cpp2011/chrono.html -/doc/html/boost_asio/overview/cpp2011/futures.html /doc/html/boost_asio/overview/cpp2011.html /doc/html/boost_asio/overview/cpp2011/move_handlers.html /doc/html/boost_asio/overview/cpp2011/move_objects.html /doc/html/boost_asio/overview/cpp2011/shared_ptr.html /doc/html/boost_asio/overview/cpp2011/variadic.html +/doc/html/boost_asio/overview/files.html /doc/html/boost_asio/overview.html /doc/html/boost_asio/overview/implementation.html +/doc/html/boost_asio/overview/model/ +/doc/html/boost_asio/overview/model/allocators.html +/doc/html/boost_asio/overview/model/associators.html +/doc/html/boost_asio/overview/model/async_agents.html +/doc/html/boost_asio/overview/model/async_ops.html +/doc/html/boost_asio/overview/model/cancellation.html +/doc/html/boost_asio/overview/model/child_agents.html +/doc/html/boost_asio/overview/model/completion_tokens.html +/doc/html/boost_asio/overview/model/executors.html +/doc/html/boost_asio/overview/model/higher_levels.html +/doc/html/boost_asio/overview/model.html +/doc/html/boost_asio/overview/model/library_elements.html /doc/html/boost_asio/overview/networking/ /doc/html/boost_asio/overview/networking/bsd_sockets.html /doc/html/boost_asio/overview/networking.html /doc/html/boost_asio/overview/networking/iostreams.html /doc/html/boost_asio/overview/networking/other_protocols.html /doc/html/boost_asio/overview/networking/protocols.html +/doc/html/boost_asio/overview/pipes.html /doc/html/boost_asio/overview/posix/ /doc/html/boost_asio/overview/posix/fork.html /doc/html/boost_asio/overview/posix.html @@ -916,7 +1177,201 @@ /doc/html/boost_asio/reference/ /doc/html/boost_asio/reference/AcceptableProtocol.html /doc/html/boost_asio/reference/AcceptHandler.html +/doc/html/boost_asio/reference/AcceptToken.html +/doc/html/boost_asio/reference/allocator_binder/ +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/ +/doc/html/boost_asio/reference/allocator_binder/_allocator_binder.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload1.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload2.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload3.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload4.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload5.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload6.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload7.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload8.html +/doc/html/boost_asio/reference/allocator_binder/allocator_binder/overload9.html +/doc/html/boost_asio/reference/allocator_binder/allocator_type.html +/doc/html/boost_asio/reference/allocator_binder/argument_type.html +/doc/html/boost_asio/reference/allocator_binder/first_argument_type.html +/doc/html/boost_asio/reference/allocator_binder/get/ +/doc/html/boost_asio/reference/allocator_binder/get_allocator.html +/doc/html/boost_asio/reference/allocator_binder/get.html +/doc/html/boost_asio/reference/allocator_binder/get/overload1.html +/doc/html/boost_asio/reference/allocator_binder/get/overload2.html +/doc/html/boost_asio/reference/allocator_binder.html +/doc/html/boost_asio/reference/allocator_binder/operator_lp__rp_/ +/doc/html/boost_asio/reference/allocator_binder/operator_lp__rp_.html +/doc/html/boost_asio/reference/allocator_binder/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/allocator_binder/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/allocator_binder/result_type.html +/doc/html/boost_asio/reference/allocator_binder/second_argument_type.html +/doc/html/boost_asio/reference/allocator_binder/target_type.html +/doc/html/boost_asio/reference/any_completion_executor/ +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/ +/doc/html/boost_asio/reference/any_completion_executor/_any_completion_executor.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload10.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload3.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload4.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload5.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload6.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload7.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload8.html +/doc/html/boost_asio/reference/any_completion_executor/any_completion_executor/overload9.html +/doc/html/boost_asio/reference/any_completion_executor/context.html +/doc/html/boost_asio/reference/any_completion_executor/execute.html +/doc/html/boost_asio/reference/any_completion_executor.html +/doc/html/boost_asio/reference/any_completion_executor/operator_bool.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq_/ +/doc/html/boost_asio/reference/any_completion_executor/operator_eq__eq_/ +/doc/html/boost_asio/reference/any_completion_executor/operator_eq__eq_.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq__eq_/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq__eq_/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq__eq_/overload3.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq_.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq_/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq_/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/operator_eq_/overload3.html +/doc/html/boost_asio/reference/any_completion_executor/operator_not__eq_/ +/doc/html/boost_asio/reference/any_completion_executor/operator_not__eq_.html +/doc/html/boost_asio/reference/any_completion_executor/operator_not__eq_/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/operator_not__eq_/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/operator_not__eq_/overload3.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/ +/doc/html/boost_asio/reference/any_completion_executor/prefer.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/overload3.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/overload4.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/overload5.html +/doc/html/boost_asio/reference/any_completion_executor/prefer/overload6.html +/doc/html/boost_asio/reference/any_completion_executor/query.html +/doc/html/boost_asio/reference/any_completion_executor/require/ +/doc/html/boost_asio/reference/any_completion_executor/require.html +/doc/html/boost_asio/reference/any_completion_executor/require/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/require/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/swap/ +/doc/html/boost_asio/reference/any_completion_executor/swap.html +/doc/html/boost_asio/reference/any_completion_executor/swap/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/swap/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/target/ +/doc/html/boost_asio/reference/any_completion_executor/target.html +/doc/html/boost_asio/reference/any_completion_executor/target/overload1.html +/doc/html/boost_asio/reference/any_completion_executor/target/overload2.html +/doc/html/boost_asio/reference/any_completion_executor/target_type.html +/doc/html/boost_asio/reference/any_completion_handler/ +/doc/html/boost_asio/reference/any_completion_handler_allocator/ +/doc/html/boost_asio/reference/any_completion_handler_allocator/allocate.html +/doc/html/boost_asio/reference/any_completion_handler_allocator/any_completion_handler_allocator.html +/doc/html/boost_asio/reference/any_completion_handler_allocator/deallocate.html +/doc/html/boost_asio/reference/any_completion_handler_allocator.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/ +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/any_completion_handler_allocator.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_eq__eq_.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/operator_not__eq_.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/ +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt___rebind/other.html +/doc/html/boost_asio/reference/any_completion_handler_allocator_lt__void_comma__Signatures_ellipsis__gt_/value_type.html +/doc/html/boost_asio/reference/any_completion_handler_allocator/operator_eq__eq_.html +/doc/html/boost_asio/reference/any_completion_handler_allocator/operator_not__eq_.html +/doc/html/boost_asio/reference/any_completion_handler_allocator__rebind/ +/doc/html/boost_asio/reference/any_completion_handler_allocator__rebind.html +/doc/html/boost_asio/reference/any_completion_handler_allocator__rebind/other.html +/doc/html/boost_asio/reference/any_completion_handler_allocator/value_type.html +/doc/html/boost_asio/reference/any_completion_handler/any_completion_handler/ +/doc/html/boost_asio/reference/any_completion_handler/_any_completion_handler.html +/doc/html/boost_asio/reference/any_completion_handler/any_completion_handler.html +/doc/html/boost_asio/reference/any_completion_handler/any_completion_handler/overload1.html +/doc/html/boost_asio/reference/any_completion_handler/any_completion_handler/overload2.html +/doc/html/boost_asio/reference/any_completion_handler/any_completion_handler/overload3.html +/doc/html/boost_asio/reference/any_completion_handler/any_completion_handler/overload4.html +/doc/html/boost_asio/reference/any_completion_handler/get_allocator.html +/doc/html/boost_asio/reference/any_completion_handler/get_cancellation_slot.html +/doc/html/boost_asio/reference/any_completion_handler.html +/doc/html/boost_asio/reference/any_completion_handler/operator_bool.html +/doc/html/boost_asio/reference/any_completion_handler/operator_eq_/ +/doc/html/boost_asio/reference/any_completion_handler/operator_eq__eq_/ +/doc/html/boost_asio/reference/any_completion_handler/operator_eq__eq_.html +/doc/html/boost_asio/reference/any_completion_handler/operator_eq__eq_/overload1.html +/doc/html/boost_asio/reference/any_completion_handler/operator_eq__eq_/overload2.html +/doc/html/boost_asio/reference/any_completion_handler/operator_eq_.html +/doc/html/boost_asio/reference/any_completion_handler/operator_eq_/overload1.html +/doc/html/boost_asio/reference/any_completion_handler/operator_eq_/overload2.html +/doc/html/boost_asio/reference/any_completion_handler/operator_lp__rp_.html +/doc/html/boost_asio/reference/any_completion_handler/operator_not__eq_/ +/doc/html/boost_asio/reference/any_completion_handler/operator_not__eq_.html +/doc/html/boost_asio/reference/any_completion_handler/operator_not__eq_/overload1.html +/doc/html/boost_asio/reference/any_completion_handler/operator_not__eq_/overload2.html +/doc/html/boost_asio/reference/any_completion_handler/operator_not_.html +/doc/html/boost_asio/reference/any_completion_handler/swap.html +/doc/html/boost_asio/reference/any_io_executor/ +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/ +/doc/html/boost_asio/reference/any_io_executor/_any_io_executor.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload10.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload1.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload2.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload3.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload4.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload5.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload6.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload7.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload8.html +/doc/html/boost_asio/reference/any_io_executor/any_io_executor/overload9.html +/doc/html/boost_asio/reference/any_io_executor/context.html +/doc/html/boost_asio/reference/any_io_executor/execute.html /doc/html/boost_asio/reference/any_io_executor.html +/doc/html/boost_asio/reference/any_io_executor/operator_bool.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq_/ +/doc/html/boost_asio/reference/any_io_executor/operator_eq__eq_/ +/doc/html/boost_asio/reference/any_io_executor/operator_eq__eq_.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq__eq_/overload1.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq__eq_/overload2.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq__eq_/overload3.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq_.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq_/overload1.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq_/overload2.html +/doc/html/boost_asio/reference/any_io_executor/operator_eq_/overload3.html +/doc/html/boost_asio/reference/any_io_executor/operator_not__eq_/ +/doc/html/boost_asio/reference/any_io_executor/operator_not__eq_.html +/doc/html/boost_asio/reference/any_io_executor/operator_not__eq_/overload1.html +/doc/html/boost_asio/reference/any_io_executor/operator_not__eq_/overload2.html +/doc/html/boost_asio/reference/any_io_executor/operator_not__eq_/overload3.html +/doc/html/boost_asio/reference/any_io_executor/prefer/ +/doc/html/boost_asio/reference/any_io_executor/prefer.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload1.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload2.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload3.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload4.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload5.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload6.html +/doc/html/boost_asio/reference/any_io_executor/prefer/overload7.html +/doc/html/boost_asio/reference/any_io_executor/query.html +/doc/html/boost_asio/reference/any_io_executor/require/ +/doc/html/boost_asio/reference/any_io_executor/require.html +/doc/html/boost_asio/reference/any_io_executor/require/overload1.html +/doc/html/boost_asio/reference/any_io_executor/require/overload2.html +/doc/html/boost_asio/reference/any_io_executor/require/overload3.html +/doc/html/boost_asio/reference/any_io_executor/swap/ +/doc/html/boost_asio/reference/any_io_executor/swap.html +/doc/html/boost_asio/reference/any_io_executor/swap/overload1.html +/doc/html/boost_asio/reference/any_io_executor/swap/overload2.html +/doc/html/boost_asio/reference/any_io_executor/target/ +/doc/html/boost_asio/reference/any_io_executor/target.html +/doc/html/boost_asio/reference/any_io_executor/target/overload1.html +/doc/html/boost_asio/reference/any_io_executor/target/overload2.html +/doc/html/boost_asio/reference/any_io_executor/target_type.html +/doc/html/boost_asio/reference/append.html +/doc/html/boost_asio/reference/append_t/ +/doc/html/boost_asio/reference/append_t/append_t.html +/doc/html/boost_asio/reference/append_t.html +/doc/html/boost_asio/reference/append_t/token_.html +/doc/html/boost_asio/reference/append_t/values_.html /doc/html/boost_asio/reference/asio_handler_allocate.html /doc/html/boost_asio/reference/asio_handler_deallocate.html /doc/html/boost_asio/reference/asio_handler_invoke/ @@ -925,13 +1380,74 @@ /doc/html/boost_asio/reference/asio_handler_invoke/overload2.html /doc/html/boost_asio/reference/asio_handler_is_continuation.html /doc/html/boost_asio/reference/associated_allocator/ -/doc/html/boost_asio/reference/associated_allocator/get.html +/doc/html/boost_asio/reference/associated_allocator/decltype/ +/doc/html/boost_asio/reference/associated_allocator/decltype.html +/doc/html/boost_asio/reference/associated_allocator/decltype/overload1.html +/doc/html/boost_asio/reference/associated_allocator/decltype/overload2.html /doc/html/boost_asio/reference/associated_allocator.html +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/ +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/ +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get.html +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload1.html +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/get/overload2.html +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_.html +/doc/html/boost_asio/reference/associated_allocator_lt__reference_wrapper_lt__T__gt__comma__Allocator__gt_/type.html +/doc/html/boost_asio/reference/associated_allocator/noexcept.html /doc/html/boost_asio/reference/associated_allocator/type.html +/doc/html/boost_asio/reference/associated_cancellation_slot/ +/doc/html/boost_asio/reference/associated_cancellation_slot/decltype/ +/doc/html/boost_asio/reference/associated_cancellation_slot/decltype.html +/doc/html/boost_asio/reference/associated_cancellation_slot/decltype/overload1.html +/doc/html/boost_asio/reference/associated_cancellation_slot/decltype/overload2.html +/doc/html/boost_asio/reference/associated_cancellation_slot.html +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/ +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/ +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get.html +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload1.html +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/get/overload2.html +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_.html +/doc/html/boost_asio/reference/associated_cancellation_slot_lt__reference_wrapper_lt__T__gt__comma__CancellationSlot__gt_/type.html +/doc/html/boost_asio/reference/associated_cancellation_slot/noexcept.html +/doc/html/boost_asio/reference/associated_cancellation_slot/type.html /doc/html/boost_asio/reference/associated_executor/ -/doc/html/boost_asio/reference/associated_executor/get.html +/doc/html/boost_asio/reference/associated_executor/decltype/ +/doc/html/boost_asio/reference/associated_executor/decltype.html +/doc/html/boost_asio/reference/associated_executor/decltype/overload1.html +/doc/html/boost_asio/reference/associated_executor/decltype/overload2.html /doc/html/boost_asio/reference/associated_executor.html +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/ +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/ +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload1.html +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get/overload2.html +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html +/doc/html/boost_asio/reference/associated_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html +/doc/html/boost_asio/reference/associated_executor/noexcept.html /doc/html/boost_asio/reference/associated_executor/type.html +/doc/html/boost_asio/reference/associated_immediate_executor/ +/doc/html/boost_asio/reference/associated_immediate_executor/decltype.html +/doc/html/boost_asio/reference/associated_immediate_executor.html +/doc/html/boost_asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/ +/doc/html/boost_asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/get.html +/doc/html/boost_asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_.html +/doc/html/boost_asio/reference/associated_immediate_executor_lt__reference_wrapper_lt__T__gt__comma__Executor__gt_/type.html +/doc/html/boost_asio/reference/associated_immediate_executor/noexcept.html +/doc/html/boost_asio/reference/associated_immediate_executor/type.html +/doc/html/boost_asio/reference/associator.html +/doc/html/boost_asio/reference/as_tuple.html +/doc/html/boost_asio/reference/as_tuple_t/ +/doc/html/boost_asio/reference/as_tuple_t/as_default_on.html +/doc/html/boost_asio/reference/as_tuple_t/as_tuple_t/ +/doc/html/boost_asio/reference/as_tuple_t/as_tuple_t.html +/doc/html/boost_asio/reference/as_tuple_t/as_tuple_t/overload1.html +/doc/html/boost_asio/reference/as_tuple_t/as_tuple_t/overload2.html +/doc/html/boost_asio/reference/as_tuple_t__default_constructor_tag.html +/doc/html/boost_asio/reference/as_tuple_t__executor_with_default/ +/doc/html/boost_asio/reference/as_tuple_t__executor_with_default/default_completion_token_type.html +/doc/html/boost_asio/reference/as_tuple_t__executor_with_default/executor_with_default.html +/doc/html/boost_asio/reference/as_tuple_t__executor_with_default.html +/doc/html/boost_asio/reference/as_tuple_t.html +/doc/html/boost_asio/reference/as_tuple_t/token_.html /doc/html/boost_asio/reference/async_completion/ /doc/html/boost_asio/reference/async_completion/async_completion.html /doc/html/boost_asio/reference/async_completion/completion_handler.html @@ -989,6 +1505,11 @@ /doc/html/boost_asio/reference/async_result/get.html /doc/html/boost_asio/reference/async_result.html /doc/html/boost_asio/reference/async_result/initiate.html +/doc/html/boost_asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/ +/doc/html/boost_asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/handler_type.html +/doc/html/boost_asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_.html +/doc/html/boost_asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/initiate.html +/doc/html/boost_asio/reference/async_result_lt__basic_yield_context_lt__Executor__gt__comma__Signature__gt_/return_type.html /doc/html/boost_asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/ /doc/html/boost_asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/async_result.html /doc/html/boost_asio/reference/async_result_lt__std__packaged_task_lt__Result_lp_Args_ellipsis__rp__gt__comma__Signature__gt_/completion_handler_type.html @@ -1021,6 +1542,7 @@ /doc/html/boost_asio/reference/awaitable/awaitable/overload2.html /doc/html/boost_asio/reference/awaitable/executor_type.html /doc/html/boost_asio/reference/awaitable.html +/doc/html/boost_asio/reference/awaitable/operator_eq_.html /doc/html/boost_asio/reference/awaitable/valid.html /doc/html/boost_asio/reference/awaitable/value_type.html /doc/html/boost_asio/reference/bad_executor/ @@ -1100,7 +1622,6 @@ /doc/html/boost_asio/reference/basic_datagram_socket/get_option/overload1.html /doc/html/boost_asio/reference/basic_datagram_socket/get_option/overload2.html /doc/html/boost_asio/reference/basic_datagram_socket.html -/doc/html/boost_asio/reference/basic_datagram_socket/impl_.html /doc/html/boost_asio/reference/basic_datagram_socket/io_control/ /doc/html/boost_asio/reference/basic_datagram_socket/io_control.html /doc/html/boost_asio/reference/basic_datagram_socket/io_control/overload1.html @@ -1240,6 +1761,81 @@ /doc/html/boost_asio/reference/basic_deadline_timer/wait.html /doc/html/boost_asio/reference/basic_deadline_timer/wait/overload1.html /doc/html/boost_asio/reference/basic_deadline_timer/wait/overload2.html +/doc/html/boost_asio/reference/basic_file/ +/doc/html/boost_asio/reference/basic_file/append.html +/doc/html/boost_asio/reference/basic_file/assign/ +/doc/html/boost_asio/reference/basic_file/assign.html +/doc/html/boost_asio/reference/basic_file/assign/overload1.html +/doc/html/boost_asio/reference/basic_file/assign/overload2.html +/doc/html/boost_asio/reference/basic_file/basic_file/ +/doc/html/boost_asio/reference/basic_file/_basic_file.html +/doc/html/boost_asio/reference/basic_file/basic_file.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload10.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload1.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload2.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload3.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload4.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload5.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload6.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload7.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload8.html +/doc/html/boost_asio/reference/basic_file/basic_file/overload9.html +/doc/html/boost_asio/reference/basic_file/cancel/ +/doc/html/boost_asio/reference/basic_file/cancel.html +/doc/html/boost_asio/reference/basic_file/cancel/overload1.html +/doc/html/boost_asio/reference/basic_file/cancel/overload2.html +/doc/html/boost_asio/reference/basic_file/close/ +/doc/html/boost_asio/reference/basic_file/close.html +/doc/html/boost_asio/reference/basic_file/close/overload1.html +/doc/html/boost_asio/reference/basic_file/close/overload2.html +/doc/html/boost_asio/reference/basic_file/create.html +/doc/html/boost_asio/reference/basic_file/exclusive.html +/doc/html/boost_asio/reference/basic_file/executor_type.html +/doc/html/boost_asio/reference/basic_file/flags.html +/doc/html/boost_asio/reference/basic_file/get_executor.html +/doc/html/boost_asio/reference/basic_file.html +/doc/html/boost_asio/reference/basic_file/is_open.html +/doc/html/boost_asio/reference/basic_file/native_handle.html +/doc/html/boost_asio/reference/basic_file/native_handle_type.html +/doc/html/boost_asio/reference/basic_file/open/ +/doc/html/boost_asio/reference/basic_file/open.html +/doc/html/boost_asio/reference/basic_file/open/overload1.html +/doc/html/boost_asio/reference/basic_file/open/overload2.html +/doc/html/boost_asio/reference/basic_file/open/overload3.html +/doc/html/boost_asio/reference/basic_file/open/overload4.html +/doc/html/boost_asio/reference/basic_file/operator_eq_/ +/doc/html/boost_asio/reference/basic_file/operator_eq_.html +/doc/html/boost_asio/reference/basic_file/operator_eq_/overload1.html +/doc/html/boost_asio/reference/basic_file/operator_eq_/overload2.html +/doc/html/boost_asio/reference/basic_file/read_only.html +/doc/html/boost_asio/reference/basic_file/read_write.html +/doc/html/boost_asio/reference/basic_file__rebind_executor/ +/doc/html/boost_asio/reference/basic_file__rebind_executor.html +/doc/html/boost_asio/reference/basic_file__rebind_executor/other.html +/doc/html/boost_asio/reference/basic_file/release/ +/doc/html/boost_asio/reference/basic_file/release.html +/doc/html/boost_asio/reference/basic_file/release/overload1.html +/doc/html/boost_asio/reference/basic_file/release/overload2.html +/doc/html/boost_asio/reference/basic_file/resize/ +/doc/html/boost_asio/reference/basic_file/resize.html +/doc/html/boost_asio/reference/basic_file/resize/overload1.html +/doc/html/boost_asio/reference/basic_file/resize/overload2.html +/doc/html/boost_asio/reference/basic_file/seek_basis.html +/doc/html/boost_asio/reference/basic_file/size/ +/doc/html/boost_asio/reference/basic_file/size.html +/doc/html/boost_asio/reference/basic_file/size/overload1.html +/doc/html/boost_asio/reference/basic_file/size/overload2.html +/doc/html/boost_asio/reference/basic_file/sync_all/ +/doc/html/boost_asio/reference/basic_file/sync_all.html +/doc/html/boost_asio/reference/basic_file/sync_all_on_write.html +/doc/html/boost_asio/reference/basic_file/sync_all/overload1.html +/doc/html/boost_asio/reference/basic_file/sync_all/overload2.html +/doc/html/boost_asio/reference/basic_file/sync_data/ +/doc/html/boost_asio/reference/basic_file/sync_data.html +/doc/html/boost_asio/reference/basic_file/sync_data/overload1.html +/doc/html/boost_asio/reference/basic_file/sync_data/overload2.html +/doc/html/boost_asio/reference/basic_file/truncate.html +/doc/html/boost_asio/reference/basic_file/write_only.html /doc/html/boost_asio/reference/basic_io_object/ /doc/html/boost_asio/reference/basic_io_object/basic_io_object/ /doc/html/boost_asio/reference/basic_io_object/_basic_io_object.html @@ -1263,6 +1859,91 @@ /doc/html/boost_asio/reference/basic_io_object/implementation_type.html /doc/html/boost_asio/reference/basic_io_object/operator_eq_.html /doc/html/boost_asio/reference/basic_io_object/service_type.html +/doc/html/boost_asio/reference/basic_random_access_file/ +/doc/html/boost_asio/reference/basic_random_access_file/append.html +/doc/html/boost_asio/reference/basic_random_access_file/assign/ +/doc/html/boost_asio/reference/basic_random_access_file/assign.html +/doc/html/boost_asio/reference/basic_random_access_file/assign/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/assign/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/async_read_some_at.html +/doc/html/boost_asio/reference/basic_random_access_file/async_write_some_at.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/ +/doc/html/boost_asio/reference/basic_random_access_file/_basic_random_access_file.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload10.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload3.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload4.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload5.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload6.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload7.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload8.html +/doc/html/boost_asio/reference/basic_random_access_file/basic_random_access_file/overload9.html +/doc/html/boost_asio/reference/basic_random_access_file/cancel/ +/doc/html/boost_asio/reference/basic_random_access_file/cancel.html +/doc/html/boost_asio/reference/basic_random_access_file/cancel/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/cancel/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/close/ +/doc/html/boost_asio/reference/basic_random_access_file/close.html +/doc/html/boost_asio/reference/basic_random_access_file/close/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/close/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/create.html +/doc/html/boost_asio/reference/basic_random_access_file/exclusive.html +/doc/html/boost_asio/reference/basic_random_access_file/executor_type.html +/doc/html/boost_asio/reference/basic_random_access_file/flags.html +/doc/html/boost_asio/reference/basic_random_access_file/get_executor.html +/doc/html/boost_asio/reference/basic_random_access_file.html +/doc/html/boost_asio/reference/basic_random_access_file/is_open.html +/doc/html/boost_asio/reference/basic_random_access_file/native_handle.html +/doc/html/boost_asio/reference/basic_random_access_file/native_handle_type.html +/doc/html/boost_asio/reference/basic_random_access_file/open/ +/doc/html/boost_asio/reference/basic_random_access_file/open.html +/doc/html/boost_asio/reference/basic_random_access_file/open/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/open/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/open/overload3.html +/doc/html/boost_asio/reference/basic_random_access_file/open/overload4.html +/doc/html/boost_asio/reference/basic_random_access_file/operator_eq_/ +/doc/html/boost_asio/reference/basic_random_access_file/operator_eq_.html +/doc/html/boost_asio/reference/basic_random_access_file/operator_eq_/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/operator_eq_/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/read_only.html +/doc/html/boost_asio/reference/basic_random_access_file/read_some_at/ +/doc/html/boost_asio/reference/basic_random_access_file/read_some_at.html +/doc/html/boost_asio/reference/basic_random_access_file/read_some_at/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/read_some_at/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/read_write.html +/doc/html/boost_asio/reference/basic_random_access_file__rebind_executor/ +/doc/html/boost_asio/reference/basic_random_access_file__rebind_executor.html +/doc/html/boost_asio/reference/basic_random_access_file__rebind_executor/other.html +/doc/html/boost_asio/reference/basic_random_access_file/release/ +/doc/html/boost_asio/reference/basic_random_access_file/release.html +/doc/html/boost_asio/reference/basic_random_access_file/release/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/release/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/resize/ +/doc/html/boost_asio/reference/basic_random_access_file/resize.html +/doc/html/boost_asio/reference/basic_random_access_file/resize/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/resize/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/seek_basis.html +/doc/html/boost_asio/reference/basic_random_access_file/size/ +/doc/html/boost_asio/reference/basic_random_access_file/size.html +/doc/html/boost_asio/reference/basic_random_access_file/size/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/size/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_all/ +/doc/html/boost_asio/reference/basic_random_access_file/sync_all.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_all_on_write.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_all/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_all/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_data/ +/doc/html/boost_asio/reference/basic_random_access_file/sync_data.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_data/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/sync_data/overload2.html +/doc/html/boost_asio/reference/basic_random_access_file/truncate.html +/doc/html/boost_asio/reference/basic_random_access_file/write_only.html +/doc/html/boost_asio/reference/basic_random_access_file/write_some_at/ +/doc/html/boost_asio/reference/basic_random_access_file/write_some_at.html +/doc/html/boost_asio/reference/basic_random_access_file/write_some_at/overload1.html +/doc/html/boost_asio/reference/basic_random_access_file/write_some_at/overload2.html /doc/html/boost_asio/reference/basic_raw_socket/ /doc/html/boost_asio/reference/basic_raw_socket/assign/ /doc/html/boost_asio/reference/basic_raw_socket/assign.html @@ -1336,7 +2017,6 @@ /doc/html/boost_asio/reference/basic_raw_socket/get_option/overload1.html /doc/html/boost_asio/reference/basic_raw_socket/get_option/overload2.html /doc/html/boost_asio/reference/basic_raw_socket.html -/doc/html/boost_asio/reference/basic_raw_socket/impl_.html /doc/html/boost_asio/reference/basic_raw_socket/io_control/ /doc/html/boost_asio/reference/basic_raw_socket/io_control.html /doc/html/boost_asio/reference/basic_raw_socket/io_control/overload1.html @@ -1432,6 +2112,55 @@ /doc/html/boost_asio/reference/basic_raw_socket/wait/overload1.html /doc/html/boost_asio/reference/basic_raw_socket/wait/overload2.html /doc/html/boost_asio/reference/basic_raw_socket/wait_type.html +/doc/html/boost_asio/reference/basic_readable_pipe/ +/doc/html/boost_asio/reference/basic_readable_pipe/assign/ +/doc/html/boost_asio/reference/basic_readable_pipe/assign.html +/doc/html/boost_asio/reference/basic_readable_pipe/assign/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/assign/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe/async_read_some.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/ +/doc/html/boost_asio/reference/basic_readable_pipe/_basic_readable_pipe.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/overload3.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/overload4.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/overload5.html +/doc/html/boost_asio/reference/basic_readable_pipe/basic_readable_pipe/overload6.html +/doc/html/boost_asio/reference/basic_readable_pipe/cancel/ +/doc/html/boost_asio/reference/basic_readable_pipe/cancel.html +/doc/html/boost_asio/reference/basic_readable_pipe/cancel/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/cancel/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe/close/ +/doc/html/boost_asio/reference/basic_readable_pipe/close.html +/doc/html/boost_asio/reference/basic_readable_pipe/close/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/close/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe/executor_type.html +/doc/html/boost_asio/reference/basic_readable_pipe/get_executor.html +/doc/html/boost_asio/reference/basic_readable_pipe.html +/doc/html/boost_asio/reference/basic_readable_pipe/is_open.html +/doc/html/boost_asio/reference/basic_readable_pipe/lowest_layer/ +/doc/html/boost_asio/reference/basic_readable_pipe/lowest_layer.html +/doc/html/boost_asio/reference/basic_readable_pipe/lowest_layer/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/lowest_layer/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe/lowest_layer_type.html +/doc/html/boost_asio/reference/basic_readable_pipe/native_handle.html +/doc/html/boost_asio/reference/basic_readable_pipe/native_handle_type.html +/doc/html/boost_asio/reference/basic_readable_pipe/operator_eq_/ +/doc/html/boost_asio/reference/basic_readable_pipe/operator_eq_.html +/doc/html/boost_asio/reference/basic_readable_pipe/operator_eq_/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/operator_eq_/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe/read_some/ +/doc/html/boost_asio/reference/basic_readable_pipe/read_some.html +/doc/html/boost_asio/reference/basic_readable_pipe/read_some/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/read_some/overload2.html +/doc/html/boost_asio/reference/basic_readable_pipe__rebind_executor/ +/doc/html/boost_asio/reference/basic_readable_pipe__rebind_executor.html +/doc/html/boost_asio/reference/basic_readable_pipe__rebind_executor/other.html +/doc/html/boost_asio/reference/basic_readable_pipe/release/ +/doc/html/boost_asio/reference/basic_readable_pipe/release.html +/doc/html/boost_asio/reference/basic_readable_pipe/release/overload1.html +/doc/html/boost_asio/reference/basic_readable_pipe/release/overload2.html /doc/html/boost_asio/reference/basic_seq_packet_socket/ /doc/html/boost_asio/reference/basic_seq_packet_socket/assign/ /doc/html/boost_asio/reference/basic_seq_packet_socket/assign.html @@ -1494,7 +2223,6 @@ /doc/html/boost_asio/reference/basic_seq_packet_socket/get_option/overload1.html /doc/html/boost_asio/reference/basic_seq_packet_socket/get_option/overload2.html /doc/html/boost_asio/reference/basic_seq_packet_socket.html -/doc/html/boost_asio/reference/basic_seq_packet_socket/impl_.html /doc/html/boost_asio/reference/basic_seq_packet_socket/io_control/ /doc/html/boost_asio/reference/basic_seq_packet_socket/io_control.html /doc/html/boost_asio/reference/basic_seq_packet_socket/io_control/overload1.html @@ -1589,6 +2317,7 @@ /doc/html/boost_asio/reference/basic_serial_port/basic_serial_port/ /doc/html/boost_asio/reference/basic_serial_port/_basic_serial_port.html /doc/html/boost_asio/reference/basic_serial_port/basic_serial_port.html +/doc/html/boost_asio/reference/basic_serial_port/basic_serial_port/overload10.html /doc/html/boost_asio/reference/basic_serial_port/basic_serial_port/overload1.html /doc/html/boost_asio/reference/basic_serial_port/basic_serial_port/overload2.html /doc/html/boost_asio/reference/basic_serial_port/basic_serial_port/overload3.html @@ -1625,7 +2354,10 @@ /doc/html/boost_asio/reference/basic_serial_port/open.html /doc/html/boost_asio/reference/basic_serial_port/open/overload1.html /doc/html/boost_asio/reference/basic_serial_port/open/overload2.html +/doc/html/boost_asio/reference/basic_serial_port/operator_eq_/ /doc/html/boost_asio/reference/basic_serial_port/operator_eq_.html +/doc/html/boost_asio/reference/basic_serial_port/operator_eq_/overload1.html +/doc/html/boost_asio/reference/basic_serial_port/operator_eq_/overload2.html /doc/html/boost_asio/reference/basic_serial_port/read_some/ /doc/html/boost_asio/reference/basic_serial_port/read_some.html /doc/html/boost_asio/reference/basic_serial_port/read_some/overload1.html @@ -1650,6 +2382,8 @@ /doc/html/boost_asio/reference/basic_signal_set/add.html /doc/html/boost_asio/reference/basic_signal_set/add/overload1.html /doc/html/boost_asio/reference/basic_signal_set/add/overload2.html +/doc/html/boost_asio/reference/basic_signal_set/add/overload3.html +/doc/html/boost_asio/reference/basic_signal_set/add/overload4.html /doc/html/boost_asio/reference/basic_signal_set/async_wait.html /doc/html/boost_asio/reference/basic_signal_set/basic_signal_set/ /doc/html/boost_asio/reference/basic_signal_set/_basic_signal_set.html @@ -1671,6 +2405,8 @@ /doc/html/boost_asio/reference/basic_signal_set/clear/overload1.html /doc/html/boost_asio/reference/basic_signal_set/clear/overload2.html /doc/html/boost_asio/reference/basic_signal_set/executor_type.html +/doc/html/boost_asio/reference/basic_signal_set/flags.html +/doc/html/boost_asio/reference/basic_signal_set/flags_t.html /doc/html/boost_asio/reference/basic_signal_set/get_executor.html /doc/html/boost_asio/reference/basic_signal_set.html /doc/html/boost_asio/reference/basic_signal_set__rebind_executor/ @@ -1875,7 +2611,6 @@ /doc/html/boost_asio/reference/basic_socket/get_option/overload1.html /doc/html/boost_asio/reference/basic_socket/get_option/overload2.html /doc/html/boost_asio/reference/basic_socket.html -/doc/html/boost_asio/reference/basic_socket/impl_.html /doc/html/boost_asio/reference/basic_socket/io_control/ /doc/html/boost_asio/reference/basic_socket/io_control.html /doc/html/boost_asio/reference/basic_socket/io_control/overload1.html @@ -2051,6 +2786,95 @@ /doc/html/boost_asio/reference/basic_streambuf/reserve.html /doc/html/boost_asio/reference/basic_streambuf/size.html /doc/html/boost_asio/reference/basic_streambuf/underflow.html +/doc/html/boost_asio/reference/basic_stream_file/ +/doc/html/boost_asio/reference/basic_stream_file/append.html +/doc/html/boost_asio/reference/basic_stream_file/assign/ +/doc/html/boost_asio/reference/basic_stream_file/assign.html +/doc/html/boost_asio/reference/basic_stream_file/assign/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/assign/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/async_read_some.html +/doc/html/boost_asio/reference/basic_stream_file/async_write_some.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/ +/doc/html/boost_asio/reference/basic_stream_file/_basic_stream_file.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload10.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload3.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload4.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload5.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload6.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload7.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload8.html +/doc/html/boost_asio/reference/basic_stream_file/basic_stream_file/overload9.html +/doc/html/boost_asio/reference/basic_stream_file/cancel/ +/doc/html/boost_asio/reference/basic_stream_file/cancel.html +/doc/html/boost_asio/reference/basic_stream_file/cancel/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/cancel/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/close/ +/doc/html/boost_asio/reference/basic_stream_file/close.html +/doc/html/boost_asio/reference/basic_stream_file/close/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/close/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/create.html +/doc/html/boost_asio/reference/basic_stream_file/exclusive.html +/doc/html/boost_asio/reference/basic_stream_file/executor_type.html +/doc/html/boost_asio/reference/basic_stream_file/flags.html +/doc/html/boost_asio/reference/basic_stream_file/get_executor.html +/doc/html/boost_asio/reference/basic_stream_file.html +/doc/html/boost_asio/reference/basic_stream_file/is_open.html +/doc/html/boost_asio/reference/basic_stream_file/native_handle.html +/doc/html/boost_asio/reference/basic_stream_file/native_handle_type.html +/doc/html/boost_asio/reference/basic_stream_file/open/ +/doc/html/boost_asio/reference/basic_stream_file/open.html +/doc/html/boost_asio/reference/basic_stream_file/open/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/open/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/open/overload3.html +/doc/html/boost_asio/reference/basic_stream_file/open/overload4.html +/doc/html/boost_asio/reference/basic_stream_file/operator_eq_/ +/doc/html/boost_asio/reference/basic_stream_file/operator_eq_.html +/doc/html/boost_asio/reference/basic_stream_file/operator_eq_/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/operator_eq_/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/read_only.html +/doc/html/boost_asio/reference/basic_stream_file/read_some/ +/doc/html/boost_asio/reference/basic_stream_file/read_some.html +/doc/html/boost_asio/reference/basic_stream_file/read_some/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/read_some/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/read_write.html +/doc/html/boost_asio/reference/basic_stream_file__rebind_executor/ +/doc/html/boost_asio/reference/basic_stream_file__rebind_executor.html +/doc/html/boost_asio/reference/basic_stream_file__rebind_executor/other.html +/doc/html/boost_asio/reference/basic_stream_file/release/ +/doc/html/boost_asio/reference/basic_stream_file/release.html +/doc/html/boost_asio/reference/basic_stream_file/release/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/release/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/resize/ +/doc/html/boost_asio/reference/basic_stream_file/resize.html +/doc/html/boost_asio/reference/basic_stream_file/resize/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/resize/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/seek/ +/doc/html/boost_asio/reference/basic_stream_file/seek_basis.html +/doc/html/boost_asio/reference/basic_stream_file/seek.html +/doc/html/boost_asio/reference/basic_stream_file/seek/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/seek/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/size/ +/doc/html/boost_asio/reference/basic_stream_file/size.html +/doc/html/boost_asio/reference/basic_stream_file/size/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/size/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/sync_all/ +/doc/html/boost_asio/reference/basic_stream_file/sync_all.html +/doc/html/boost_asio/reference/basic_stream_file/sync_all_on_write.html +/doc/html/boost_asio/reference/basic_stream_file/sync_all/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/sync_all/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/sync_data/ +/doc/html/boost_asio/reference/basic_stream_file/sync_data.html +/doc/html/boost_asio/reference/basic_stream_file/sync_data/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/sync_data/overload2.html +/doc/html/boost_asio/reference/basic_stream_file/truncate.html +/doc/html/boost_asio/reference/basic_stream_file/write_only.html +/doc/html/boost_asio/reference/basic_stream_file/write_some/ +/doc/html/boost_asio/reference/basic_stream_file/write_some.html +/doc/html/boost_asio/reference/basic_stream_file/write_some/overload1.html +/doc/html/boost_asio/reference/basic_stream_file/write_some/overload2.html /doc/html/boost_asio/reference/basic_stream_socket/ /doc/html/boost_asio/reference/basic_stream_socket/assign/ /doc/html/boost_asio/reference/basic_stream_socket/assign.html @@ -2118,7 +2942,6 @@ /doc/html/boost_asio/reference/basic_stream_socket/get_option/overload1.html /doc/html/boost_asio/reference/basic_stream_socket/get_option/overload2.html /doc/html/boost_asio/reference/basic_stream_socket.html -/doc/html/boost_asio/reference/basic_stream_socket/impl_.html /doc/html/boost_asio/reference/basic_stream_socket/io_control/ /doc/html/boost_asio/reference/basic_stream_socket/io_control.html /doc/html/boost_asio/reference/basic_stream_socket/io_control/overload1.html @@ -2295,19 +3118,81 @@ /doc/html/boost_asio/reference/basic_waitable_timer/wait.html /doc/html/boost_asio/reference/basic_waitable_timer/wait/overload1.html /doc/html/boost_asio/reference/basic_waitable_timer/wait/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/ +/doc/html/boost_asio/reference/basic_writable_pipe/assign/ +/doc/html/boost_asio/reference/basic_writable_pipe/assign.html +/doc/html/boost_asio/reference/basic_writable_pipe/assign/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/assign/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/async_write_some.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/ +/doc/html/boost_asio/reference/basic_writable_pipe/_basic_writable_pipe.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/overload3.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/overload4.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/overload5.html +/doc/html/boost_asio/reference/basic_writable_pipe/basic_writable_pipe/overload6.html +/doc/html/boost_asio/reference/basic_writable_pipe/cancel/ +/doc/html/boost_asio/reference/basic_writable_pipe/cancel.html +/doc/html/boost_asio/reference/basic_writable_pipe/cancel/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/cancel/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/close/ +/doc/html/boost_asio/reference/basic_writable_pipe/close.html +/doc/html/boost_asio/reference/basic_writable_pipe/close/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/close/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/executor_type.html +/doc/html/boost_asio/reference/basic_writable_pipe/get_executor.html +/doc/html/boost_asio/reference/basic_writable_pipe.html +/doc/html/boost_asio/reference/basic_writable_pipe/is_open.html +/doc/html/boost_asio/reference/basic_writable_pipe/lowest_layer/ +/doc/html/boost_asio/reference/basic_writable_pipe/lowest_layer.html +/doc/html/boost_asio/reference/basic_writable_pipe/lowest_layer/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/lowest_layer/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/lowest_layer_type.html +/doc/html/boost_asio/reference/basic_writable_pipe/native_handle.html +/doc/html/boost_asio/reference/basic_writable_pipe/native_handle_type.html +/doc/html/boost_asio/reference/basic_writable_pipe/operator_eq_/ +/doc/html/boost_asio/reference/basic_writable_pipe/operator_eq_.html +/doc/html/boost_asio/reference/basic_writable_pipe/operator_eq_/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/operator_eq_/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe__rebind_executor/ +/doc/html/boost_asio/reference/basic_writable_pipe__rebind_executor.html +/doc/html/boost_asio/reference/basic_writable_pipe__rebind_executor/other.html +/doc/html/boost_asio/reference/basic_writable_pipe/release/ +/doc/html/boost_asio/reference/basic_writable_pipe/release.html +/doc/html/boost_asio/reference/basic_writable_pipe/release/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/release/overload2.html +/doc/html/boost_asio/reference/basic_writable_pipe/write_some/ +/doc/html/boost_asio/reference/basic_writable_pipe/write_some.html +/doc/html/boost_asio/reference/basic_writable_pipe/write_some/overload1.html +/doc/html/boost_asio/reference/basic_writable_pipe/write_some/overload2.html /doc/html/boost_asio/reference/basic_yield_context/ -/doc/html/boost_asio/reference/basic_yield_context/basic_yield_context/ /doc/html/boost_asio/reference/basic_yield_context/basic_yield_context.html -/doc/html/boost_asio/reference/basic_yield_context/basic_yield_context/overload1.html -/doc/html/boost_asio/reference/basic_yield_context/basic_yield_context/overload2.html -/doc/html/boost_asio/reference/basic_yield_context/callee_type.html -/doc/html/boost_asio/reference/basic_yield_context/caller_type.html +/doc/html/boost_asio/reference/basic_yield_context/cancellation_slot_type.html +/doc/html/boost_asio/reference/basic_yield_context/cancelled.html +/doc/html/boost_asio/reference/basic_yield_context/executor_type.html +/doc/html/boost_asio/reference/basic_yield_context/get_cancellation_slot.html +/doc/html/boost_asio/reference/basic_yield_context/get_cancellation_state.html +/doc/html/boost_asio/reference/basic_yield_context/get_executor.html /doc/html/boost_asio/reference/basic_yield_context.html /doc/html/boost_asio/reference/basic_yield_context/operator_lb__rb_.html +/doc/html/boost_asio/reference/basic_yield_context/reset_cancellation_state/ +/doc/html/boost_asio/reference/basic_yield_context/reset_cancellation_state.html +/doc/html/boost_asio/reference/basic_yield_context/reset_cancellation_state/overload1.html +/doc/html/boost_asio/reference/basic_yield_context/reset_cancellation_state/overload2.html +/doc/html/boost_asio/reference/basic_yield_context/reset_cancellation_state/overload3.html +/doc/html/boost_asio/reference/basic_yield_context/throw_if_cancelled/ +/doc/html/boost_asio/reference/basic_yield_context/throw_if_cancelled.html +/doc/html/boost_asio/reference/basic_yield_context/throw_if_cancelled/overload1.html +/doc/html/boost_asio/reference/basic_yield_context/throw_if_cancelled/overload2.html +/doc/html/boost_asio/reference/bind_allocator.html +/doc/html/boost_asio/reference/bind_cancellation_slot.html /doc/html/boost_asio/reference/bind_executor/ /doc/html/boost_asio/reference/bind_executor.html /doc/html/boost_asio/reference/bind_executor/overload1.html /doc/html/boost_asio/reference/bind_executor/overload2.html +/doc/html/boost_asio/reference/bind_immediate_executor.html /doc/html/boost_asio/reference/buffer/ /doc/html/boost_asio/reference/buffer_cast/ /doc/html/boost_asio/reference/buffer_cast.html @@ -2318,6 +3203,7 @@ /doc/html/boost_asio/reference/buffer_copy/overload1.html /doc/html/boost_asio/reference/buffer_copy/overload2.html /doc/html/boost_asio/reference/BufferedHandshakeHandler.html +/doc/html/boost_asio/reference/BufferedHandshakeToken.html /doc/html/boost_asio/reference/buffered_read_stream/ /doc/html/boost_asio/reference/buffered_read_stream/async_fill.html /doc/html/boost_asio/reference/buffered_read_stream/async_read_some.html @@ -2452,6 +3338,10 @@ /doc/html/boost_asio/reference/buffered_write_stream/write_some/overload1.html /doc/html/boost_asio/reference/buffered_write_stream/write_some/overload2.html /doc/html/boost_asio/reference/buffer.html +/doc/html/boost_asio/reference/buffer_literals__operator_quot__quot__buf/ +/doc/html/boost_asio/reference/buffer_literals__operator_quot__quot__buf.html +/doc/html/boost_asio/reference/buffer_literals__operator_quot__quot__buf/overload1.html +/doc/html/boost_asio/reference/buffer_literals__operator_quot__quot__buf/overload2.html /doc/html/boost_asio/reference/buffer/overload10.html /doc/html/boost_asio/reference/buffer/overload11.html /doc/html/boost_asio/reference/buffer/overload12.html @@ -2477,13 +3367,42 @@ /doc/html/boost_asio/reference/buffer/overload30.html /doc/html/boost_asio/reference/buffer/overload31.html /doc/html/boost_asio/reference/buffer/overload32.html +/doc/html/boost_asio/reference/buffer/overload33.html +/doc/html/boost_asio/reference/buffer/overload34.html +/doc/html/boost_asio/reference/buffer/overload35.html +/doc/html/boost_asio/reference/buffer/overload36.html +/doc/html/boost_asio/reference/buffer/overload37.html +/doc/html/boost_asio/reference/buffer/overload38.html +/doc/html/boost_asio/reference/buffer/overload39.html /doc/html/boost_asio/reference/buffer/overload3.html +/doc/html/boost_asio/reference/buffer/overload40.html +/doc/html/boost_asio/reference/buffer/overload41.html +/doc/html/boost_asio/reference/buffer/overload42.html /doc/html/boost_asio/reference/buffer/overload4.html /doc/html/boost_asio/reference/buffer/overload5.html /doc/html/boost_asio/reference/buffer/overload6.html /doc/html/boost_asio/reference/buffer/overload7.html /doc/html/boost_asio/reference/buffer/overload8.html /doc/html/boost_asio/reference/buffer/overload9.html +/doc/html/boost_asio/reference/buffer_registration/ +/doc/html/boost_asio/reference/buffer_registration/allocator_type.html +/doc/html/boost_asio/reference/buffer_registration/at.html +/doc/html/boost_asio/reference/buffer_registration/begin.html +/doc/html/boost_asio/reference/buffer_registration/buffer_registration/ +/doc/html/boost_asio/reference/buffer_registration/_buffer_registration.html +/doc/html/boost_asio/reference/buffer_registration/buffer_registration.html +/doc/html/boost_asio/reference/buffer_registration/buffer_registration/overload1.html +/doc/html/boost_asio/reference/buffer_registration/buffer_registration/overload2.html +/doc/html/boost_asio/reference/buffer_registration/buffer_registration/overload3.html +/doc/html/boost_asio/reference/buffer_registration/cbegin.html +/doc/html/boost_asio/reference/buffer_registration/cend.html +/doc/html/boost_asio/reference/buffer_registration/const_iterator.html +/doc/html/boost_asio/reference/buffer_registration/end.html +/doc/html/boost_asio/reference/buffer_registration.html +/doc/html/boost_asio/reference/buffer_registration/iterator.html +/doc/html/boost_asio/reference/buffer_registration/operator_eq_.html +/doc/html/boost_asio/reference/buffer_registration/operator_lb__rb_.html +/doc/html/boost_asio/reference/buffer_registration/size.html /doc/html/boost_asio/reference/buffers_begin.html /doc/html/boost_asio/reference/buffers_end.html /doc/html/boost_asio/reference/buffer_sequence_begin/ @@ -2492,12 +3411,16 @@ /doc/html/boost_asio/reference/buffer_sequence_begin/overload2.html /doc/html/boost_asio/reference/buffer_sequence_begin/overload3.html /doc/html/boost_asio/reference/buffer_sequence_begin/overload4.html +/doc/html/boost_asio/reference/buffer_sequence_begin/overload5.html +/doc/html/boost_asio/reference/buffer_sequence_begin/overload6.html /doc/html/boost_asio/reference/buffer_sequence_end/ /doc/html/boost_asio/reference/buffer_sequence_end.html /doc/html/boost_asio/reference/buffer_sequence_end/overload1.html /doc/html/boost_asio/reference/buffer_sequence_end/overload2.html /doc/html/boost_asio/reference/buffer_sequence_end/overload3.html /doc/html/boost_asio/reference/buffer_sequence_end/overload4.html +/doc/html/boost_asio/reference/buffer_sequence_end/overload5.html +/doc/html/boost_asio/reference/buffer_sequence_end/overload6.html /doc/html/boost_asio/reference/buffers_iterator/ /doc/html/boost_asio/reference/buffers_iterator/begin.html /doc/html/boost_asio/reference/buffers_iterator/buffers_iterator.html @@ -2536,12 +3459,77 @@ /doc/html/boost_asio/reference/buffers_iterator/reference.html /doc/html/boost_asio/reference/buffers_iterator/value_type.html /doc/html/boost_asio/reference/buffer_size.html +/doc/html/boost_asio/reference/cancellation_filter/ +/doc/html/boost_asio/reference/cancellation_filter.html +/doc/html/boost_asio/reference/cancellation_filter/operator_lp__rp_.html +/doc/html/boost_asio/reference/CancellationHandler.html +/doc/html/boost_asio/reference/cancellation_signal/ +/doc/html/boost_asio/reference/cancellation_signal/_cancellation_signal.html +/doc/html/boost_asio/reference/cancellation_signal/cancellation_signal.html +/doc/html/boost_asio/reference/cancellation_signal/emit.html +/doc/html/boost_asio/reference/cancellation_signal.html +/doc/html/boost_asio/reference/cancellation_signal/slot.html +/doc/html/boost_asio/reference/cancellation_slot/ +/doc/html/boost_asio/reference/cancellation_slot/assign.html +/doc/html/boost_asio/reference/cancellation_slot_binder/ +/doc/html/boost_asio/reference/cancellation_slot_binder/argument_type.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/ +/doc/html/boost_asio/reference/cancellation_slot_binder/_cancellation_slot_binder.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload1.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload2.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload3.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload4.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload5.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload6.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload7.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload8.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_binder/overload9.html +/doc/html/boost_asio/reference/cancellation_slot_binder/cancellation_slot_type.html +/doc/html/boost_asio/reference/cancellation_slot_binder/first_argument_type.html +/doc/html/boost_asio/reference/cancellation_slot_binder/get/ +/doc/html/boost_asio/reference/cancellation_slot_binder/get_cancellation_slot.html +/doc/html/boost_asio/reference/cancellation_slot_binder/get.html +/doc/html/boost_asio/reference/cancellation_slot_binder/get/overload1.html +/doc/html/boost_asio/reference/cancellation_slot_binder/get/overload2.html +/doc/html/boost_asio/reference/cancellation_slot_binder.html +/doc/html/boost_asio/reference/cancellation_slot_binder/operator_lp__rp_/ +/doc/html/boost_asio/reference/cancellation_slot_binder/operator_lp__rp_.html +/doc/html/boost_asio/reference/cancellation_slot_binder/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/cancellation_slot_binder/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/cancellation_slot_binder/result_type.html +/doc/html/boost_asio/reference/cancellation_slot_binder/second_argument_type.html +/doc/html/boost_asio/reference/cancellation_slot_binder/target_type.html +/doc/html/boost_asio/reference/cancellation_slot/cancellation_slot.html +/doc/html/boost_asio/reference/cancellation_slot/clear.html +/doc/html/boost_asio/reference/cancellation_slot/emplace.html +/doc/html/boost_asio/reference/cancellation_slot/has_handler.html +/doc/html/boost_asio/reference/CancellationSlot.html +/doc/html/boost_asio/reference/cancellation_slot.html +/doc/html/boost_asio/reference/cancellation_slot/is_connected.html +/doc/html/boost_asio/reference/cancellation_slot/operator_eq__eq_.html +/doc/html/boost_asio/reference/cancellation_slot/operator_not__eq_.html +/doc/html/boost_asio/reference/cancellation_state/ +/doc/html/boost_asio/reference/cancellation_state/cancellation_state/ +/doc/html/boost_asio/reference/cancellation_state/cancellation_state.html +/doc/html/boost_asio/reference/cancellation_state/cancellation_state/overload1.html +/doc/html/boost_asio/reference/cancellation_state/cancellation_state/overload2.html +/doc/html/boost_asio/reference/cancellation_state/cancellation_state/overload3.html +/doc/html/boost_asio/reference/cancellation_state/cancellation_state/overload4.html +/doc/html/boost_asio/reference/cancellation_state/cancelled.html +/doc/html/boost_asio/reference/cancellation_state/clear.html +/doc/html/boost_asio/reference/cancellation_state.html +/doc/html/boost_asio/reference/cancellation_state/slot.html +/doc/html/boost_asio/reference/cancellation_type.html +/doc/html/boost_asio/reference/cancellation_type_t.html /doc/html/boost_asio/reference/can_prefer.html /doc/html/boost_asio/reference/can_query.html /doc/html/boost_asio/reference/can_require_concept.html /doc/html/boost_asio/reference/can_require.html /doc/html/boost_asio/reference/CompletionCondition.html -/doc/html/boost_asio/reference/CompletionHandler.html +/doc/html/boost_asio/reference/completion_signature_of/ +/doc/html/boost_asio/reference/completion_signature_of.html +/doc/html/boost_asio/reference/completion_signature_of/type.html /doc/html/boost_asio/reference/connect/ /doc/html/boost_asio/reference/ConnectCondition.html /doc/html/boost_asio/reference/ConnectHandler.html @@ -2558,6 +3546,15 @@ /doc/html/boost_asio/reference/connect/overload7.html /doc/html/boost_asio/reference/connect/overload8.html /doc/html/boost_asio/reference/connect/overload9.html +/doc/html/boost_asio/reference/connect_pipe/ +/doc/html/boost_asio/reference/connect_pipe.html +/doc/html/boost_asio/reference/connect_pipe/overload1.html +/doc/html/boost_asio/reference/connect_pipe/overload2.html +/doc/html/boost_asio/reference/ConnectToken.html +/doc/html/boost_asio/reference/consign.html +/doc/html/boost_asio/reference/consign_t/ +/doc/html/boost_asio/reference/consign_t/consign_t.html +/doc/html/boost_asio/reference/consign_t.html /doc/html/boost_asio/reference/const_buffer/ /doc/html/boost_asio/reference/const_buffer/const_buffer/ /doc/html/boost_asio/reference/const_buffer/const_buffer.html @@ -2590,6 +3587,21 @@ /doc/html/boost_asio/reference/const_buffers_1/value_type.html /doc/html/boost_asio/reference/ConstBufferSequence.html /doc/html/boost_asio/reference/const_buffer/size.html +/doc/html/boost_asio/reference/const_registered_buffer/ +/doc/html/boost_asio/reference/const_registered_buffer/buffer.html +/doc/html/boost_asio/reference/const_registered_buffer/const_registered_buffer/ +/doc/html/boost_asio/reference/const_registered_buffer/const_registered_buffer.html +/doc/html/boost_asio/reference/const_registered_buffer/const_registered_buffer/overload1.html +/doc/html/boost_asio/reference/const_registered_buffer/const_registered_buffer/overload2.html +/doc/html/boost_asio/reference/const_registered_buffer/data.html +/doc/html/boost_asio/reference/const_registered_buffer.html +/doc/html/boost_asio/reference/const_registered_buffer/id.html +/doc/html/boost_asio/reference/const_registered_buffer/operator_plus_/ +/doc/html/boost_asio/reference/const_registered_buffer/operator_plus__eq_.html +/doc/html/boost_asio/reference/const_registered_buffer/operator_plus_.html +/doc/html/boost_asio/reference/const_registered_buffer/operator_plus_/overload1.html +/doc/html/boost_asio/reference/const_registered_buffer/operator_plus_/overload2.html +/doc/html/boost_asio/reference/const_registered_buffer/size.html /doc/html/boost_asio/reference/coroutine/ /doc/html/boost_asio/reference/coroutine/coroutine.html /doc/html/boost_asio/reference/coroutine.html @@ -2613,6 +3625,62 @@ /doc/html/boost_asio/reference/defer/overload1.html /doc/html/boost_asio/reference/defer/overload2.html /doc/html/boost_asio/reference/defer/overload3.html +/doc/html/boost_asio/reference/deferred_async_operation/ +/doc/html/boost_asio/reference/deferred_async_operation/deferred_async_operation.html +/doc/html/boost_asio/reference/deferred_async_operation/detail__index_sequence_for.html +/doc/html/boost_asio/reference/deferred_async_operation.html +/doc/html/boost_asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/ +/doc/html/boost_asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/deferred_async_operation.html +/doc/html/boost_asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/detail__index_sequence_for.html +/doc/html/boost_asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_.html +/doc/html/boost_asio/reference/deferred_async_operation_lt__deferred_signatures_lt__Signatures_ellipsis__gt__comma__Initiation_comma__InitArgs_ellipsis__gt_/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_async_operation/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_conditional/ +/doc/html/boost_asio/reference/deferred_conditional/deferred_conditional.html +/doc/html/boost_asio/reference/deferred_conditional.html +/doc/html/boost_asio/reference/deferred_conditional/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_conditional/otherwise.html +/doc/html/boost_asio/reference/deferred_conditional/then.html +/doc/html/boost_asio/reference/deferred_function/ +/doc/html/boost_asio/reference/deferred_function/deferred_function.html +/doc/html/boost_asio/reference/deferred_function/function_.html +/doc/html/boost_asio/reference/deferred_function.html +/doc/html/boost_asio/reference/deferred_function/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred.html +/doc/html/boost_asio/reference/deferred_init_tag.html +/doc/html/boost_asio/reference/deferred_noop/ +/doc/html/boost_asio/reference/deferred_noop.html +/doc/html/boost_asio/reference/deferred_noop/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_sequence/ +/doc/html/boost_asio/reference/deferred_sequence/deferred_sequence.html +/doc/html/boost_asio/reference/deferred_sequence.html +/doc/html/boost_asio/reference/deferred_sequence/operator_lp__rp_/ +/doc/html/boost_asio/reference/deferred_sequence/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_sequence/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/deferred_sequence/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/deferred_signatures.html +/doc/html/boost_asio/reference/deferred_t/ +/doc/html/boost_asio/reference/deferred_t/as_default_on.html +/doc/html/boost_asio/reference/deferred_t/deferred_t.html +/doc/html/boost_asio/reference/deferred_t__executor_with_default/ +/doc/html/boost_asio/reference/deferred_t__executor_with_default/default_completion_token_type.html +/doc/html/boost_asio/reference/deferred_t__executor_with_default/executor_with_default.html +/doc/html/boost_asio/reference/deferred_t__executor_with_default.html +/doc/html/boost_asio/reference/deferred_t.html +/doc/html/boost_asio/reference/deferred_t/operator_lp__rp_/ +/doc/html/boost_asio/reference/deferred_t/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_t/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/deferred_t/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/deferred_t/values.html +/doc/html/boost_asio/reference/deferred_t/when.html +/doc/html/boost_asio/reference/deferred_values/ +/doc/html/boost_asio/reference/deferred_values/deferred_values.html +/doc/html/boost_asio/reference/deferred_values/detail__index_sequence_for.html +/doc/html/boost_asio/reference/deferred_values.html +/doc/html/boost_asio/reference/deferred_values__initiate/ +/doc/html/boost_asio/reference/deferred_values__initiate.html +/doc/html/boost_asio/reference/deferred_values__initiate/operator_lp__rp_.html +/doc/html/boost_asio/reference/deferred_values/operator_lp__rp_.html /doc/html/boost_asio/reference/detached.html /doc/html/boost_asio/reference/detached_t/ /doc/html/boost_asio/reference/detached_t/as_default_on.html @@ -2625,6 +3693,7 @@ /doc/html/boost_asio/reference/detached_t__executor_with_default/executor_with_default/overload2.html /doc/html/boost_asio/reference/detached_t__executor_with_default.html /doc/html/boost_asio/reference/detached_t.html +/doc/html/boost_asio/reference/disable_cancellation.html /doc/html/boost_asio/reference/dispatch/ /doc/html/boost_asio/reference/dispatch.html /doc/html/boost_asio/reference/dispatch/overload1.html @@ -2683,11 +3752,15 @@ /doc/html/boost_asio/reference/dynamic_vector_buffer/prepare.html /doc/html/boost_asio/reference/dynamic_vector_buffer/shrink.html /doc/html/boost_asio/reference/dynamic_vector_buffer/size.html +/doc/html/boost_asio/reference/enable_partial_cancellation.html +/doc/html/boost_asio/reference/enable_terminal_cancellation.html +/doc/html/boost_asio/reference/enable_total_cancellation.html /doc/html/boost_asio/reference/Endpoint.html /doc/html/boost_asio/reference/EndpointSequence.html /doc/html/boost_asio/reference/error__addrinfo_category.html /doc/html/boost_asio/reference/error__addrinfo_errors.html /doc/html/boost_asio/reference/error__basic_errors.html +/doc/html/boost_asio/reference/error__clear.html /doc/html/boost_asio/reference/error__get_addrinfo_category.html /doc/html/boost_asio/reference/error__get_misc_category.html /doc/html/boost_asio/reference/error__get_netdb_category.html @@ -2719,12 +3792,16 @@ /doc/html/boost_asio/reference/execution__any_executor/any_executor/ /doc/html/boost_asio/reference/execution__any_executor/_any_executor.html /doc/html/boost_asio/reference/execution__any_executor/any_executor.html +/doc/html/boost_asio/reference/execution__any_executor/any_executor/overload10.html /doc/html/boost_asio/reference/execution__any_executor/any_executor/overload1.html /doc/html/boost_asio/reference/execution__any_executor/any_executor/overload2.html /doc/html/boost_asio/reference/execution__any_executor/any_executor/overload3.html /doc/html/boost_asio/reference/execution__any_executor/any_executor/overload4.html /doc/html/boost_asio/reference/execution__any_executor/any_executor/overload5.html /doc/html/boost_asio/reference/execution__any_executor/any_executor/overload6.html +/doc/html/boost_asio/reference/execution__any_executor/any_executor/overload7.html +/doc/html/boost_asio/reference/execution__any_executor/any_executor/overload8.html +/doc/html/boost_asio/reference/execution__any_executor/any_executor/overload9.html /doc/html/boost_asio/reference/execution__any_executor/context.html /doc/html/boost_asio/reference/execution__any_executor/execute.html /doc/html/boost_asio/reference/execution__any_executor.html @@ -3158,6 +4235,254 @@ /doc/html/boost_asio/reference/executor_work_guard.html /doc/html/boost_asio/reference/executor_work_guard/owns_work.html /doc/html/boost_asio/reference/executor_work_guard/reset.html +/doc/html/boost_asio/reference/experimental__as_single.html +/doc/html/boost_asio/reference/experimental__as_single_t/ +/doc/html/boost_asio/reference/experimental__as_single_t/as_default_on.html +/doc/html/boost_asio/reference/experimental__as_single_t/as_single_t/ +/doc/html/boost_asio/reference/experimental__as_single_t/as_single_t.html +/doc/html/boost_asio/reference/experimental__as_single_t/as_single_t/overload1.html +/doc/html/boost_asio/reference/experimental__as_single_t/as_single_t/overload2.html +/doc/html/boost_asio/reference/experimental__as_single_t__default_constructor_tag.html +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default/ +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default/default_completion_token_type.html +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/ +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default/executor_with_default.html +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload1.html +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default/executor_with_default/overload2.html +/doc/html/boost_asio/reference/experimental__as_single_t__executor_with_default.html +/doc/html/boost_asio/reference/experimental__as_single_t.html +/doc/html/boost_asio/reference/experimental__as_single_t/token_.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/ +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload1.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload2.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload3.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload4.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload5.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator__amp__amp_/overload6.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/ +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload1.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload2.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload3.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload4.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload5.html +/doc/html/boost_asio/reference/experimental__awaitable_operators__operator_pipe__pipe_/overload6.html +/doc/html/boost_asio/reference/experimental__basic_channel/ +/doc/html/boost_asio/reference/experimental__basic_channel/async_receive.html +/doc/html/boost_asio/reference/experimental__basic_channel/async_send.html +/doc/html/boost_asio/reference/experimental__basic_channel/basic_channel/ +/doc/html/boost_asio/reference/experimental__basic_channel/_basic_channel.html +/doc/html/boost_asio/reference/experimental__basic_channel/basic_channel.html +/doc/html/boost_asio/reference/experimental__basic_channel/basic_channel/overload1.html +/doc/html/boost_asio/reference/experimental__basic_channel/basic_channel/overload2.html +/doc/html/boost_asio/reference/experimental__basic_channel/basic_channel/overload3.html +/doc/html/boost_asio/reference/experimental__basic_channel/basic_channel/overload4.html +/doc/html/boost_asio/reference/experimental__basic_channel/cancel.html +/doc/html/boost_asio/reference/experimental__basic_channel/capacity.html +/doc/html/boost_asio/reference/experimental__basic_channel/close.html +/doc/html/boost_asio/reference/experimental__basic_channel/executor_type.html +/doc/html/boost_asio/reference/experimental__basic_channel/get_executor.html +/doc/html/boost_asio/reference/experimental__basic_channel.html +/doc/html/boost_asio/reference/experimental__basic_channel/is_open.html +/doc/html/boost_asio/reference/experimental__basic_channel/operator_eq_/ +/doc/html/boost_asio/reference/experimental__basic_channel/operator_eq_.html +/doc/html/boost_asio/reference/experimental__basic_channel/operator_eq_/overload1.html +/doc/html/boost_asio/reference/experimental__basic_channel/operator_eq_/overload2.html +/doc/html/boost_asio/reference/experimental__basic_channel/ready.html +/doc/html/boost_asio/reference/experimental__basic_channel__rebind_executor/ +/doc/html/boost_asio/reference/experimental__basic_channel__rebind_executor.html +/doc/html/boost_asio/reference/experimental__basic_channel__rebind_executor/other.html +/doc/html/boost_asio/reference/experimental__basic_channel/reset.html +/doc/html/boost_asio/reference/experimental__basic_channel/traits_type.html +/doc/html/boost_asio/reference/experimental__basic_channel/try_receive.html +/doc/html/boost_asio/reference/experimental__basic_channel/try_send.html +/doc/html/boost_asio/reference/experimental__basic_channel/try_send_n.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/ +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/async_receive.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/async_send.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/ +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/_basic_concurrent_channel.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload1.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload2.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload3.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/basic_concurrent_channel/overload4.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/cancel.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/capacity.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/close.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/executor_type.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/get_executor.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/is_open.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/operator_eq_/ +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/operator_eq_.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload1.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/operator_eq_/overload2.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/ready.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel__rebind_executor/ +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel__rebind_executor.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel__rebind_executor/other.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/reset.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/traits_type.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/try_receive.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/try_send.html +/doc/html/boost_asio/reference/experimental__basic_concurrent_channel/try_send_n.html +/doc/html/boost_asio/reference/experimental__channel_traits/ +/doc/html/boost_asio/reference/experimental__channel_traits__container/ +/doc/html/boost_asio/reference/experimental__channel_traits__container.html +/doc/html/boost_asio/reference/experimental__channel_traits__container/type.html +/doc/html/boost_asio/reference/experimental__channel_traits.html +/doc/html/boost_asio/reference/experimental__channel_traits/invoke_receive_cancelled.html +/doc/html/boost_asio/reference/experimental__channel_traits/invoke_receive_closed.html +/doc/html/boost_asio/reference/experimental__channel_traits__rebind/ +/doc/html/boost_asio/reference/experimental__channel_traits__rebind.html +/doc/html/boost_asio/reference/experimental__channel_traits__rebind/other.html +/doc/html/boost_asio/reference/experimental__channel_traits/receive_cancelled_signature.html +/doc/html/boost_asio/reference/experimental__channel_traits/receive_closed_signature.html +/doc/html/boost_asio/reference/experimental__co_composed.html +/doc/html/boost_asio/reference/experimental__coro/ +/doc/html/boost_asio/reference/experimental__coro/async_resume/ +/doc/html/boost_asio/reference/experimental__coro/async_resume.html +/doc/html/boost_asio/reference/experimental__coro/async_resume/overload1.html +/doc/html/boost_asio/reference/experimental__coro/async_resume/overload2.html +/doc/html/boost_asio/reference/experimental__coro/coro/ +/doc/html/boost_asio/reference/experimental__coro/_coro.html +/doc/html/boost_asio/reference/experimental__coro/coro.html +/doc/html/boost_asio/reference/experimental__coro/coro/overload1.html +/doc/html/boost_asio/reference/experimental__coro/coro/overload2.html +/doc/html/boost_asio/reference/experimental__coro/coro/overload3.html +/doc/html/boost_asio/reference/experimental__coro/get_allocator.html +/doc/html/boost_asio/reference/experimental__coro/get_executor.html +/doc/html/boost_asio/reference/experimental__coro.html +/doc/html/boost_asio/reference/experimental__coro/is_noexcept.html +/doc/html/boost_asio/reference/experimental__coro/is_open.html +/doc/html/boost_asio/reference/experimental__coro/operator_bool.html +/doc/html/boost_asio/reference/experimental__coro/operator_co_await.html +/doc/html/boost_asio/reference/experimental__coro/operator_eq_/ +/doc/html/boost_asio/reference/experimental__coro/operator_eq_.html +/doc/html/boost_asio/reference/experimental__coro/operator_eq_/overload1.html +/doc/html/boost_asio/reference/experimental__coro/operator_eq_/overload2.html +/doc/html/boost_asio/reference/experimental__coro/operator_lp__rp_.html +/doc/html/boost_asio/reference/experimental__coro_traits/ +/doc/html/boost_asio/reference/experimental__coro_traits.html +/doc/html/boost_asio/reference/experimental__coro_traits/is_noexcept.html +/doc/html/boost_asio/reference/experimental__co_spawn/ +/doc/html/boost_asio/reference/experimental__co_spawn.html +/doc/html/boost_asio/reference/experimental__co_spawn/overload1.html +/doc/html/boost_asio/reference/experimental__co_spawn/overload2.html +/doc/html/boost_asio/reference/experimental__co_spawn/overload3.html +/doc/html/boost_asio/reference/experimental__co_spawn/overload4.html +/doc/html/boost_asio/reference/experimental__co_spawn/overload5.html +/doc/html/boost_asio/reference/experimental__co_spawn/overload6.html +/doc/html/boost_asio/reference/experimental__error__channel_category.html +/doc/html/boost_asio/reference/experimental__error__channel_errors.html +/doc/html/boost_asio/reference/experimental__error__get_channel_category.html +/doc/html/boost_asio/reference/experimental__error__make_error_code.html +/doc/html/boost_asio/reference/experimental__is_async_operation_range/ +/doc/html/boost_asio/reference/experimental__is_async_operation_range.html +/doc/html/boost_asio/reference/experimental__is_async_operation_range/value.html +/doc/html/boost_asio/reference/experimental__is_promise.html +/doc/html/boost_asio/reference/experimental__is_promise_lt__promise_lt__Ts_ellipsis__gt__gt_.html +/doc/html/boost_asio/reference/experimental__is_promise_v.html +/doc/html/boost_asio/reference/experimental__make_parallel_group/ +/doc/html/boost_asio/reference/experimental__make_parallel_group.html +/doc/html/boost_asio/reference/experimental__make_parallel_group/overload1.html +/doc/html/boost_asio/reference/experimental__make_parallel_group/overload2.html +/doc/html/boost_asio/reference/experimental__make_parallel_group/overload3.html +/doc/html/boost_asio/reference/experimental__parallel_group/ +/doc/html/boost_asio/reference/experimental__parallel_group/async_wait.html +/doc/html/boost_asio/reference/experimental__parallel_group.html +/doc/html/boost_asio/reference/experimental__parallel_group/parallel_group.html +/doc/html/boost_asio/reference/experimental__parallel_group/signature.html +/doc/html/boost_asio/reference/experimental__promise/ +/doc/html/boost_asio/reference/experimental__promise/cancel.html +/doc/html/boost_asio/reference/experimental__promise/completed.html +/doc/html/boost_asio/reference/experimental__promise.html +/doc/html/boost_asio/reference/experimental__promise/operator_lp__rp_.html +/doc/html/boost_asio/reference/experimental__promise/promise/ +/doc/html/boost_asio/reference/experimental__promise/_promise.html +/doc/html/boost_asio/reference/experimental__promise/promise.html +/doc/html/boost_asio/reference/experimental__promise/promise/overload1.html +/doc/html/boost_asio/reference/experimental__promise/promise/overload2.html +/doc/html/boost_asio/reference/experimental__promise/promise/overload3.html +/doc/html/boost_asio/reference/experimental__promise_value_type.html +/doc/html/boost_asio/reference/experimental__promise_value_type_lt__gt_.html +/doc/html/boost_asio/reference/experimental__promise_value_type_lt__T__gt_.html +/doc/html/boost_asio/reference/experimental__ranged_parallel_group/ +/doc/html/boost_asio/reference/experimental__ranged_parallel_group/async_wait.html +/doc/html/boost_asio/reference/experimental__ranged_parallel_group.html +/doc/html/boost_asio/reference/experimental__ranged_parallel_group/ranged_parallel_group.html +/doc/html/boost_asio/reference/experimental__ranged_parallel_group/signature.html +/doc/html/boost_asio/reference/experimental__use_coro.html +/doc/html/boost_asio/reference/experimental__use_coro_t/ +/doc/html/boost_asio/reference/experimental__use_coro_t/allocator_type.html +/doc/html/boost_asio/reference/experimental__use_coro_t/as_default_on.html +/doc/html/boost_asio/reference/experimental__use_coro_t__executor_with_default/ +/doc/html/boost_asio/reference/experimental__use_coro_t__executor_with_default/default_completion_token_type.html +/doc/html/boost_asio/reference/experimental__use_coro_t__executor_with_default/executor_with_default.html +/doc/html/boost_asio/reference/experimental__use_coro_t__executor_with_default.html +/doc/html/boost_asio/reference/experimental__use_coro_t/get_allocator.html +/doc/html/boost_asio/reference/experimental__use_coro_t.html +/doc/html/boost_asio/reference/experimental__use_coro_t/rebind.html +/doc/html/boost_asio/reference/experimental__use_coro_t/use_coro_t/ +/doc/html/boost_asio/reference/experimental__use_coro_t/use_coro_t.html +/doc/html/boost_asio/reference/experimental__use_coro_t/use_coro_t/overload1.html +/doc/html/boost_asio/reference/experimental__use_coro_t/use_coro_t/overload2.html +/doc/html/boost_asio/reference/experimental__use_promise.html +/doc/html/boost_asio/reference/experimental__use_promise_t/ +/doc/html/boost_asio/reference/experimental__use_promise_t/allocator_type.html +/doc/html/boost_asio/reference/experimental__use_promise_t/as_default_on.html +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default/ +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default/default_completion_token_type.html +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/ +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default.html +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload1.html +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default/executor_with_default/overload2.html +/doc/html/boost_asio/reference/experimental__use_promise_t__executor_with_default.html +/doc/html/boost_asio/reference/experimental__use_promise_t/get_allocator.html +/doc/html/boost_asio/reference/experimental__use_promise_t.html +/doc/html/boost_asio/reference/experimental__use_promise_t/rebind.html +/doc/html/boost_asio/reference/experimental__use_promise_t/use_promise_t/ +/doc/html/boost_asio/reference/experimental__use_promise_t/use_promise_t.html +/doc/html/boost_asio/reference/experimental__use_promise_t/use_promise_t/overload1.html +/doc/html/boost_asio/reference/experimental__use_promise_t/use_promise_t/overload2.html +/doc/html/boost_asio/reference/experimental__wait_for_all/ +/doc/html/boost_asio/reference/experimental__wait_for_all.html +/doc/html/boost_asio/reference/experimental__wait_for_all/operator_lp__rp_.html +/doc/html/boost_asio/reference/experimental__wait_for_one/ +/doc/html/boost_asio/reference/experimental__wait_for_one_error/ +/doc/html/boost_asio/reference/experimental__wait_for_one_error.html +/doc/html/boost_asio/reference/experimental__wait_for_one_error/operator_lp__rp_/ +/doc/html/boost_asio/reference/experimental__wait_for_one_error/operator_lp__rp_.html +/doc/html/boost_asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/experimental__wait_for_one_error/operator_lp__rp_/overload3.html +/doc/html/boost_asio/reference/experimental__wait_for_one_error/wait_for_one_error.html +/doc/html/boost_asio/reference/experimental__wait_for_one.html +/doc/html/boost_asio/reference/experimental__wait_for_one/operator_lp__rp_.html +/doc/html/boost_asio/reference/experimental__wait_for_one_success/ +/doc/html/boost_asio/reference/experimental__wait_for_one_success.html +/doc/html/boost_asio/reference/experimental__wait_for_one_success/operator_lp__rp_/ +/doc/html/boost_asio/reference/experimental__wait_for_one_success/operator_lp__rp_.html +/doc/html/boost_asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/experimental__wait_for_one_success/operator_lp__rp_/overload3.html +/doc/html/boost_asio/reference/experimental__wait_for_one_success/wait_for_one_success.html +/doc/html/boost_asio/reference/experimental__wait_for_one/wait_for_one.html +/doc/html/boost_asio/reference/file_base/ +/doc/html/boost_asio/reference/file_base/append.html +/doc/html/boost_asio/reference/file_base/create.html +/doc/html/boost_asio/reference/file_base/exclusive.html +/doc/html/boost_asio/reference/file_base/_file_base.html +/doc/html/boost_asio/reference/file_base/flags.html +/doc/html/boost_asio/reference/file_base.html +/doc/html/boost_asio/reference/file_base/read_only.html +/doc/html/boost_asio/reference/file_base/read_write.html +/doc/html/boost_asio/reference/file_base/seek_basis.html +/doc/html/boost_asio/reference/file_base/sync_all_on_write.html +/doc/html/boost_asio/reference/file_base/truncate.html +/doc/html/boost_asio/reference/file_base/write_only.html /doc/html/boost_asio/reference/generic__basic_endpoint/ /doc/html/boost_asio/reference/generic__basic_endpoint/basic_endpoint/ /doc/html/boost_asio/reference/generic__basic_endpoint/basic_endpoint.html @@ -3240,17 +4565,55 @@ /doc/html/boost_asio/reference/get_associated_allocator.html /doc/html/boost_asio/reference/get_associated_allocator/overload1.html /doc/html/boost_asio/reference/get_associated_allocator/overload2.html +/doc/html/boost_asio/reference/get_associated_cancellation_slot/ +/doc/html/boost_asio/reference/get_associated_cancellation_slot.html +/doc/html/boost_asio/reference/get_associated_cancellation_slot/overload1.html +/doc/html/boost_asio/reference/get_associated_cancellation_slot/overload2.html /doc/html/boost_asio/reference/get_associated_executor/ /doc/html/boost_asio/reference/get_associated_executor.html /doc/html/boost_asio/reference/get_associated_executor/overload1.html /doc/html/boost_asio/reference/get_associated_executor/overload2.html /doc/html/boost_asio/reference/get_associated_executor/overload3.html +/doc/html/boost_asio/reference/get_associated_immediate_executor/ +/doc/html/boost_asio/reference/get_associated_immediate_executor.html +/doc/html/boost_asio/reference/get_associated_immediate_executor/overload1.html +/doc/html/boost_asio/reference/get_associated_immediate_executor/overload2.html /doc/html/boost_asio/reference/GettableSerialPortOption.html /doc/html/boost_asio/reference/GettableSocketOption.html /doc/html/boost_asio/reference/Handler.html /doc/html/boost_asio/reference/HandshakeHandler.html +/doc/html/boost_asio/reference/HandshakeToken.html /doc/html/boost_asio/reference/high_resolution_timer.html /doc/html/boost_asio/reference.html +/doc/html/boost_asio/reference/immediate_executor_binder/ +/doc/html/boost_asio/reference/immediate_executor_binder/argument_type.html +/doc/html/boost_asio/reference/immediate_executor_binder/first_argument_type.html +/doc/html/boost_asio/reference/immediate_executor_binder/get/ +/doc/html/boost_asio/reference/immediate_executor_binder/get.html +/doc/html/boost_asio/reference/immediate_executor_binder/get_immediate_executor.html +/doc/html/boost_asio/reference/immediate_executor_binder/get/overload1.html +/doc/html/boost_asio/reference/immediate_executor_binder/get/overload2.html +/doc/html/boost_asio/reference/immediate_executor_binder.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/ +/doc/html/boost_asio/reference/immediate_executor_binder/_immediate_executor_binder.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload1.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload2.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload3.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload4.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload5.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload6.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload7.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload8.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_binder/overload9.html +/doc/html/boost_asio/reference/immediate_executor_binder/immediate_executor_type.html +/doc/html/boost_asio/reference/immediate_executor_binder/operator_lp__rp_/ +/doc/html/boost_asio/reference/immediate_executor_binder/operator_lp__rp_.html +/doc/html/boost_asio/reference/immediate_executor_binder/operator_lp__rp_/overload1.html +/doc/html/boost_asio/reference/immediate_executor_binder/operator_lp__rp_/overload2.html +/doc/html/boost_asio/reference/immediate_executor_binder/result_type.html +/doc/html/boost_asio/reference/immediate_executor_binder/second_argument_type.html +/doc/html/boost_asio/reference/immediate_executor_binder/target_type.html /doc/html/boost_asio/reference/InternetProtocol.html /doc/html/boost_asio/reference/invalid_service_owner/ /doc/html/boost_asio/reference/invalid_service_owner.html @@ -3689,6 +5052,7 @@ /doc/html/boost_asio/reference/ip__basic_resolver/basic_resolver/overload1.html /doc/html/boost_asio/reference/ip__basic_resolver/basic_resolver/overload2.html /doc/html/boost_asio/reference/ip__basic_resolver/basic_resolver/overload3.html +/doc/html/boost_asio/reference/ip__basic_resolver/basic_resolver/overload4.html /doc/html/boost_asio/reference/ip__basic_resolver/cancel.html /doc/html/boost_asio/reference/ip__basic_resolver/canonical_name.html /doc/html/boost_asio/reference/ip__basic_resolver/endpoint_type.html @@ -3746,7 +5110,10 @@ /doc/html/boost_asio/reference/ip__basic_resolver_iterator/value_type.html /doc/html/boost_asio/reference/ip__basic_resolver/numeric_host.html /doc/html/boost_asio/reference/ip__basic_resolver/numeric_service.html +/doc/html/boost_asio/reference/ip__basic_resolver/operator_eq_/ /doc/html/boost_asio/reference/ip__basic_resolver/operator_eq_.html +/doc/html/boost_asio/reference/ip__basic_resolver/operator_eq_/overload1.html +/doc/html/boost_asio/reference/ip__basic_resolver/operator_eq_/overload2.html /doc/html/boost_asio/reference/ip__basic_resolver/passive.html /doc/html/boost_asio/reference/ip__basic_resolver/protocol_type.html /doc/html/boost_asio/reference/ip__basic_resolver_query/ @@ -3920,6 +5287,7 @@ /doc/html/boost_asio/reference/ip__network_v6/to_string.html /doc/html/boost_asio/reference/ip__network_v6/to_string/overload1.html /doc/html/boost_asio/reference/ip__network_v6/to_string/overload2.html +/doc/html/boost_asio/reference/ip__port_type.html /doc/html/boost_asio/reference/ip__resolver_base/ /doc/html/boost_asio/reference/ip__resolver_base/address_configured.html /doc/html/boost_asio/reference/ip__resolver_base/all_matching.html @@ -3942,6 +5310,7 @@ /doc/html/boost_asio/reference/ip__resolver_query_base/passive.html /doc/html/boost_asio/reference/ip__resolver_query_base/_resolver_query_base.html /doc/html/boost_asio/reference/ip__resolver_query_base/v4_mapped.html +/doc/html/boost_asio/reference/ip__scope_id_type.html /doc/html/boost_asio/reference/ip__tcp/ /doc/html/boost_asio/reference/ip__tcp/acceptor.html /doc/html/boost_asio/reference/ip__tcp/endpoint.html @@ -3973,7 +5342,10 @@ /doc/html/boost_asio/reference/ip__v4_mapped_t.html /doc/html/boost_asio/reference/ip__v6_only.html /doc/html/boost_asio/reference/is_applicable_property.html +/doc/html/boost_asio/reference/is_async_operation.html /doc/html/boost_asio/reference/is_const_buffer_sequence.html +/doc/html/boost_asio/reference/is_contiguous_iterator.html +/doc/html/boost_asio/reference/is_deferred.html /doc/html/boost_asio/reference/is_dynamic_buffer.html /doc/html/boost_asio/reference/is_dynamic_buffer_v1.html /doc/html/boost_asio/reference/is_dynamic_buffer_v2.html @@ -3986,6 +5358,9 @@ /doc/html/boost_asio/reference/is_error_code_enum_lt__basic_errors__gt_/ /doc/html/boost_asio/reference/is_error_code_enum_lt__basic_errors__gt_.html /doc/html/boost_asio/reference/is_error_code_enum_lt__basic_errors__gt_/value.html +/doc/html/boost_asio/reference/is_error_code_enum_lt__boost__asio__experimental__error__channel_errors__gt_/ +/doc/html/boost_asio/reference/is_error_code_enum_lt__boost__asio__experimental__error__channel_errors__gt_.html +/doc/html/boost_asio/reference/is_error_code_enum_lt__boost__asio__experimental__error__channel_errors__gt_/value.html /doc/html/boost_asio/reference/is_error_code_enum_lt__boost__asio__ssl__error__stream_errors__gt_/ /doc/html/boost_asio/reference/is_error_code_enum_lt__boost__asio__ssl__error__stream_errors__gt_.html /doc/html/boost_asio/reference/is_error_code_enum_lt__boost__asio__ssl__error__stream_errors__gt_/value.html @@ -4014,6 +5389,7 @@ /doc/html/boost_asio/reference/is_write_buffered.html /doc/html/boost_asio/reference/is_write_buffered/value.html /doc/html/boost_asio/reference/IteratorConnectHandler.html +/doc/html/boost_asio/reference/IteratorConnectToken.html /doc/html/boost_asio/reference/LegacyCompletionHandler.html /doc/html/boost_asio/reference/local__basic_endpoint/ /doc/html/boost_asio/reference/local__basic_endpoint/basic_endpoint/ @@ -4057,6 +5433,14 @@ /doc/html/boost_asio/reference/local__datagram_protocol/protocol.html /doc/html/boost_asio/reference/local__datagram_protocol/socket.html /doc/html/boost_asio/reference/local__datagram_protocol/type.html +/doc/html/boost_asio/reference/local__seq_packet_protocol/ +/doc/html/boost_asio/reference/local__seq_packet_protocol/acceptor.html +/doc/html/boost_asio/reference/local__seq_packet_protocol/endpoint.html +/doc/html/boost_asio/reference/local__seq_packet_protocol/family.html +/doc/html/boost_asio/reference/local__seq_packet_protocol.html +/doc/html/boost_asio/reference/local__seq_packet_protocol/protocol.html +/doc/html/boost_asio/reference/local__seq_packet_protocol/socket.html +/doc/html/boost_asio/reference/local__seq_packet_protocol/type.html /doc/html/boost_asio/reference/local__stream_protocol/ /doc/html/boost_asio/reference/local__stream_protocol/acceptor.html /doc/html/boost_asio/reference/local__stream_protocol/endpoint.html @@ -4078,6 +5462,7 @@ /doc/html/boost_asio/reference/make_work_guard/overload4.html /doc/html/boost_asio/reference/make_work_guard/overload5.html /doc/html/boost_asio/reference/MoveAcceptHandler.html +/doc/html/boost_asio/reference/MoveAcceptToken.html /doc/html/boost_asio/reference/multiple_exceptions/ /doc/html/boost_asio/reference/multiple_exceptions/first_exception.html /doc/html/boost_asio/reference/multiple_exceptions.html @@ -4114,6 +5499,19 @@ /doc/html/boost_asio/reference/mutable_buffers_1/value_type.html /doc/html/boost_asio/reference/MutableBufferSequence.html /doc/html/boost_asio/reference/mutable_buffer/size.html +/doc/html/boost_asio/reference/mutable_registered_buffer/ +/doc/html/boost_asio/reference/mutable_registered_buffer/buffer.html +/doc/html/boost_asio/reference/mutable_registered_buffer/data.html +/doc/html/boost_asio/reference/mutable_registered_buffer.html +/doc/html/boost_asio/reference/mutable_registered_buffer/id.html +/doc/html/boost_asio/reference/mutable_registered_buffer/mutable_registered_buffer.html +/doc/html/boost_asio/reference/mutable_registered_buffer/operator_plus_/ +/doc/html/boost_asio/reference/mutable_registered_buffer/operator_plus__eq_.html +/doc/html/boost_asio/reference/mutable_registered_buffer/operator_plus_.html +/doc/html/boost_asio/reference/mutable_registered_buffer/operator_plus_/overload1.html +/doc/html/boost_asio/reference/mutable_registered_buffer/operator_plus_/overload2.html +/doc/html/boost_asio/reference/mutable_registered_buffer/size.html +/doc/html/boost_asio/reference/NullaryToken.html /doc/html/boost_asio/reference/null_buffers/ /doc/html/boost_asio/reference/null_buffers/begin.html /doc/html/boost_asio/reference/null_buffers/const_iterator.html @@ -4121,6 +5519,7 @@ /doc/html/boost_asio/reference/null_buffers.html /doc/html/boost_asio/reference/null_buffers/value_type.html /doc/html/boost_asio/reference/OperationState.html +/doc/html/boost_asio/reference/operator_pipe_.html /doc/html/boost_asio/reference/placeholders__bytes_transferred.html /doc/html/boost_asio/reference/placeholders__endpoint.html /doc/html/boost_asio/reference/placeholders__error.html @@ -4141,6 +5540,7 @@ /doc/html/boost_asio/reference/posix__basic_descriptor/basic_descriptor/overload3.html /doc/html/boost_asio/reference/posix__basic_descriptor/basic_descriptor/overload4.html /doc/html/boost_asio/reference/posix__basic_descriptor/basic_descriptor/overload5.html +/doc/html/boost_asio/reference/posix__basic_descriptor/basic_descriptor/overload6.html /doc/html/boost_asio/reference/posix__basic_descriptor/bytes_readable.html /doc/html/boost_asio/reference/posix__basic_descriptor/cancel/ /doc/html/boost_asio/reference/posix__basic_descriptor/cancel.html @@ -4153,7 +5553,6 @@ /doc/html/boost_asio/reference/posix__basic_descriptor/executor_type.html /doc/html/boost_asio/reference/posix__basic_descriptor/get_executor.html /doc/html/boost_asio/reference/posix__basic_descriptor.html -/doc/html/boost_asio/reference/posix__basic_descriptor/impl_.html /doc/html/boost_asio/reference/posix__basic_descriptor/io_control/ /doc/html/boost_asio/reference/posix__basic_descriptor/io_control.html /doc/html/boost_asio/reference/posix__basic_descriptor/io_control/overload1.html @@ -4176,7 +5575,10 @@ /doc/html/boost_asio/reference/posix__basic_descriptor/non_blocking/overload1.html /doc/html/boost_asio/reference/posix__basic_descriptor/non_blocking/overload2.html /doc/html/boost_asio/reference/posix__basic_descriptor/non_blocking/overload3.html +/doc/html/boost_asio/reference/posix__basic_descriptor/operator_eq_/ /doc/html/boost_asio/reference/posix__basic_descriptor/operator_eq_.html +/doc/html/boost_asio/reference/posix__basic_descriptor/operator_eq_/overload1.html +/doc/html/boost_asio/reference/posix__basic_descriptor/operator_eq_/overload2.html /doc/html/boost_asio/reference/posix__basic_descriptor__rebind_executor/ /doc/html/boost_asio/reference/posix__basic_descriptor__rebind_executor.html /doc/html/boost_asio/reference/posix__basic_descriptor__rebind_executor/other.html @@ -4201,6 +5603,7 @@ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload3.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload4.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload5.html +/doc/html/boost_asio/reference/posix__basic_stream_descriptor/basic_stream_descriptor/overload6.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/bytes_readable.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/cancel/ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/cancel.html @@ -4213,7 +5616,6 @@ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/executor_type.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/get_executor.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor.html -/doc/html/boost_asio/reference/posix__basic_stream_descriptor/impl_.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/io_control/ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/io_control.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/io_control/overload1.html @@ -4236,7 +5638,10 @@ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/non_blocking/overload1.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/non_blocking/overload2.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/non_blocking/overload3.html +/doc/html/boost_asio/reference/posix__basic_stream_descriptor/operator_eq_/ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/operator_eq_.html +/doc/html/boost_asio/reference/posix__basic_stream_descriptor/operator_eq_/overload1.html +/doc/html/boost_asio/reference/posix__basic_stream_descriptor/operator_eq_/overload2.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/read_some/ /doc/html/boost_asio/reference/posix__basic_stream_descriptor/read_some.html /doc/html/boost_asio/reference/posix__basic_stream_descriptor/read_some/overload1.html @@ -4270,14 +5675,23 @@ /doc/html/boost_asio/reference/prefer_result/ /doc/html/boost_asio/reference/prefer_result.html /doc/html/boost_asio/reference/prefer_result/type.html +/doc/html/boost_asio/reference/prepend.html +/doc/html/boost_asio/reference/prepend_t/ +/doc/html/boost_asio/reference/prepend_t.html +/doc/html/boost_asio/reference/prepend_t/prepend_t.html +/doc/html/boost_asio/reference/prepend_t/token_.html +/doc/html/boost_asio/reference/prepend_t/values_.html /doc/html/boost_asio/reference/ProtoAllocator.html /doc/html/boost_asio/reference/Protocol.html /doc/html/boost_asio/reference/query.html /doc/html/boost_asio/reference/query_result/ /doc/html/boost_asio/reference/query_result.html /doc/html/boost_asio/reference/query_result/type.html +/doc/html/boost_asio/reference/random_access_file.html /doc/html/boost_asio/reference/RangeConnectHandler.html +/doc/html/boost_asio/reference/RangeConnectToken.html /doc/html/boost_asio/reference/read/ +/doc/html/boost_asio/reference/readable_pipe.html /doc/html/boost_asio/reference/read_at/ /doc/html/boost_asio/reference/read_at.html /doc/html/boost_asio/reference/read_at/overload1.html @@ -4306,6 +5720,7 @@ /doc/html/boost_asio/reference/read/overload7.html /doc/html/boost_asio/reference/read/overload8.html /doc/html/boost_asio/reference/read/overload9.html +/doc/html/boost_asio/reference/ReadToken.html /doc/html/boost_asio/reference/read_until/ /doc/html/boost_asio/reference/read_until.html /doc/html/boost_asio/reference/read_until/overload10.html @@ -4334,12 +5749,51 @@ /doc/html/boost_asio/reference/read_until/overload9.html /doc/html/boost_asio/reference/read_write_operations.html /doc/html/boost_asio/reference/Receiver.html +/doc/html/boost_asio/reference/recycling_allocator/ +/doc/html/boost_asio/reference/recycling_allocator/allocate.html +/doc/html/boost_asio/reference/recycling_allocator/deallocate.html +/doc/html/boost_asio/reference/recycling_allocator.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/ +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/operator_eq__eq_.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/operator_not__eq_.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt___rebind/ +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt___rebind.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt___rebind/other.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/ +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload1.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/recycling_allocator/overload2.html +/doc/html/boost_asio/reference/recycling_allocator_lt__void__gt_/value_type.html +/doc/html/boost_asio/reference/recycling_allocator/operator_eq__eq_.html +/doc/html/boost_asio/reference/recycling_allocator/operator_not__eq_.html +/doc/html/boost_asio/reference/recycling_allocator__rebind/ +/doc/html/boost_asio/reference/recycling_allocator__rebind.html +/doc/html/boost_asio/reference/recycling_allocator__rebind/other.html +/doc/html/boost_asio/reference/recycling_allocator/recycling_allocator/ +/doc/html/boost_asio/reference/recycling_allocator/recycling_allocator.html +/doc/html/boost_asio/reference/recycling_allocator/recycling_allocator/overload1.html +/doc/html/boost_asio/reference/recycling_allocator/recycling_allocator/overload2.html +/doc/html/boost_asio/reference/recycling_allocator/value_type.html /doc/html/boost_asio/reference/redirect_error.html /doc/html/boost_asio/reference/redirect_error_t/ /doc/html/boost_asio/reference/redirect_error_t/ec_.html /doc/html/boost_asio/reference/redirect_error_t.html /doc/html/boost_asio/reference/redirect_error_t/redirect_error_t.html /doc/html/boost_asio/reference/redirect_error_t/token_.html +/doc/html/boost_asio/reference/register_buffers/ +/doc/html/boost_asio/reference/register_buffers.html +/doc/html/boost_asio/reference/register_buffers/overload1.html +/doc/html/boost_asio/reference/register_buffers/overload2.html +/doc/html/boost_asio/reference/register_buffers/overload3.html +/doc/html/boost_asio/reference/register_buffers/overload4.html +/doc/html/boost_asio/reference/registered_buffer_id/ +/doc/html/boost_asio/reference/registered_buffer_id.html +/doc/html/boost_asio/reference/registered_buffer_id/native_handle.html +/doc/html/boost_asio/reference/registered_buffer_id/native_handle_type.html +/doc/html/boost_asio/reference/registered_buffer_id/operator_eq__eq_.html +/doc/html/boost_asio/reference/registered_buffer_id/operator_not__eq_.html +/doc/html/boost_asio/reference/registered_buffer_id/registered_buffer_id.html /doc/html/boost_asio/reference/require_concept.html /doc/html/boost_asio/reference/require_concept_result/ /doc/html/boost_asio/reference/require_concept_result.html @@ -4350,6 +5804,7 @@ /doc/html/boost_asio/reference/require_result/type.html /doc/html/boost_asio/reference/ResolveHandler.html /doc/html/boost_asio/reference/resolver_errc__try_again.html +/doc/html/boost_asio/reference/ResolveToken.html /doc/html/boost_asio/reference/Scheduler.html /doc/html/boost_asio/reference/Sender.html /doc/html/boost_asio/reference/serial_port_base/ @@ -4396,8 +5851,15 @@ /doc/html/boost_asio/reference/SettableSerialPortOption.html /doc/html/boost_asio/reference/SettableSocketOption.html /doc/html/boost_asio/reference/ShutdownHandler.html +/doc/html/boost_asio/reference/ShutdownToken.html /doc/html/boost_asio/reference/SignalHandler.html +/doc/html/boost_asio/reference/signal_set_base/ +/doc/html/boost_asio/reference/signal_set_base/flags.html +/doc/html/boost_asio/reference/signal_set_base/flags_t.html +/doc/html/boost_asio/reference/signal_set_base.html +/doc/html/boost_asio/reference/signal_set_base/_signal_set_base.html /doc/html/boost_asio/reference/signal_set.html +/doc/html/boost_asio/reference/SignalToken.html /doc/html/boost_asio/reference/socket_base/ /doc/html/boost_asio/reference/socket_base/broadcast.html /doc/html/boost_asio/reference/socket_base/bytes_readable.html @@ -4425,6 +5887,10 @@ /doc/html/boost_asio/reference/socket_base/wait_type.html /doc/html/boost_asio/reference/spawn/ /doc/html/boost_asio/reference/spawn.html +/doc/html/boost_asio/reference/spawn/overload10.html +/doc/html/boost_asio/reference/spawn/overload11.html +/doc/html/boost_asio/reference/spawn/overload12.html +/doc/html/boost_asio/reference/spawn/overload13.html /doc/html/boost_asio/reference/spawn/overload1.html /doc/html/boost_asio/reference/spawn/overload2.html /doc/html/boost_asio/reference/spawn/overload3.html @@ -4432,6 +5898,8 @@ /doc/html/boost_asio/reference/spawn/overload5.html /doc/html/boost_asio/reference/spawn/overload6.html /doc/html/boost_asio/reference/spawn/overload7.html +/doc/html/boost_asio/reference/spawn/overload8.html +/doc/html/boost_asio/reference/spawn/overload9.html /doc/html/boost_asio/reference/ssl__context/ /doc/html/boost_asio/reference/ssl__context/add_certificate_authority/ /doc/html/boost_asio/reference/ssl__context/add_certificate_authority.html @@ -4603,6 +6071,7 @@ /doc/html/boost_asio/reference/ssl__stream/next_layer/overload1.html /doc/html/boost_asio/reference/ssl__stream/next_layer/overload2.html /doc/html/boost_asio/reference/ssl__stream/next_layer_type.html +/doc/html/boost_asio/reference/ssl__stream/operator_eq_.html /doc/html/boost_asio/reference/ssl__stream/read_some/ /doc/html/boost_asio/reference/ssl__stream/read_some.html /doc/html/boost_asio/reference/ssl__stream/read_some/overload1.html @@ -4628,6 +6097,7 @@ /doc/html/boost_asio/reference/ssl__stream/stream.html /doc/html/boost_asio/reference/ssl__stream/stream/overload1.html /doc/html/boost_asio/reference/ssl__stream/stream/overload2.html +/doc/html/boost_asio/reference/ssl__stream/stream/overload3.html /doc/html/boost_asio/reference/ssl__stream/write_some/ /doc/html/boost_asio/reference/ssl__stream/write_some.html /doc/html/boost_asio/reference/ssl__stream/write_some/overload1.html @@ -4645,12 +6115,15 @@ /doc/html/boost_asio/reference/static_thread_pool.html /doc/html/boost_asio/reference/steady_timer.html /doc/html/boost_asio/reference/strand/ +/doc/html/boost_asio/reference/strand/context.html /doc/html/boost_asio/reference/strand/defer.html /doc/html/boost_asio/reference/strand/dispatch.html /doc/html/boost_asio/reference/strand/execute.html /doc/html/boost_asio/reference/strand/get_inner_executor.html /doc/html/boost_asio/reference/strand.html /doc/html/boost_asio/reference/strand/inner_executor_type.html +/doc/html/boost_asio/reference/strand/on_work_finished.html +/doc/html/boost_asio/reference/strand/on_work_started.html /doc/html/boost_asio/reference/strand/operator_eq_/ /doc/html/boost_asio/reference/strand/operator_eq__eq_.html /doc/html/boost_asio/reference/strand/operator_eq_.html @@ -4674,6 +6147,7 @@ /doc/html/boost_asio/reference/strand/strand/overload5.html /doc/html/boost_asio/reference/strand/strand/overload6.html /doc/html/boost_asio/reference/streambuf.html +/doc/html/boost_asio/reference/stream_file.html /doc/html/boost_asio/reference/synchronous_socket_operations.html /doc/html/boost_asio/reference/SyncRandomAccessReadDevice.html /doc/html/boost_asio/reference/SyncRandomAccessWriteDevice.html @@ -4700,10 +6174,23 @@ /doc/html/boost_asio/reference/system_context/use_service/overload2.html /doc/html/boost_asio/reference/system_executor.html /doc/html/boost_asio/reference/system_timer.html +/doc/html/boost_asio/reference/this_coro__cancellation_state.html +/doc/html/boost_asio/reference/this_coro__cancellation_state_t/ +/doc/html/boost_asio/reference/this_coro__cancellation_state_t/cancellation_state_t.html +/doc/html/boost_asio/reference/this_coro__cancellation_state_t.html /doc/html/boost_asio/reference/this_coro__executor.html /doc/html/boost_asio/reference/this_coro__executor_t/ /doc/html/boost_asio/reference/this_coro__executor_t/executor_t.html /doc/html/boost_asio/reference/this_coro__executor_t.html +/doc/html/boost_asio/reference/this_coro__reset_cancellation_state/ +/doc/html/boost_asio/reference/this_coro__reset_cancellation_state.html +/doc/html/boost_asio/reference/this_coro__reset_cancellation_state/overload1.html +/doc/html/boost_asio/reference/this_coro__reset_cancellation_state/overload2.html +/doc/html/boost_asio/reference/this_coro__reset_cancellation_state/overload3.html +/doc/html/boost_asio/reference/this_coro__throw_if_cancelled/ +/doc/html/boost_asio/reference/this_coro__throw_if_cancelled.html +/doc/html/boost_asio/reference/this_coro__throw_if_cancelled/overload1.html +/doc/html/boost_asio/reference/this_coro__throw_if_cancelled/overload2.html /doc/html/boost_asio/reference/thread_pool/ /doc/html/boost_asio/reference/thread_pool/add_service.html /doc/html/boost_asio/reference/thread_pool/attach.html @@ -4714,11 +6201,13 @@ /doc/html/boost_asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload1.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/basic_executor_type/overload2.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/bulk_execute.html +/doc/html/boost_asio/reference/thread_pool__basic_executor_type/connect.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/context.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/defer.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/dispatch.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/execute.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type.html +/doc/html/boost_asio/reference/thread_pool__basic_executor_type/index_type.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/on_work_finished.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/on_work_started.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/operator_eq_/ @@ -4755,6 +6244,7 @@ /doc/html/boost_asio/reference/thread_pool__basic_executor_type/running_in_this_thread.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/schedule.html /doc/html/boost_asio/reference/thread_pool__basic_executor_type/sender_type.html +/doc/html/boost_asio/reference/thread_pool__basic_executor_type/shape_type.html /doc/html/boost_asio/reference/thread_pool/destroy.html /doc/html/boost_asio/reference/thread_pool/executor.html /doc/html/boost_asio/reference/thread_pool/executor_type.html @@ -4797,10 +6287,7 @@ /doc/html/boost_asio/reference/use_awaitable_t/as_default_on.html /doc/html/boost_asio/reference/use_awaitable_t__executor_with_default/ /doc/html/boost_asio/reference/use_awaitable_t__executor_with_default/default_completion_token_type.html -/doc/html/boost_asio/reference/use_awaitable_t__executor_with_default/executor_with_default/ /doc/html/boost_asio/reference/use_awaitable_t__executor_with_default/executor_with_default.html -/doc/html/boost_asio/reference/use_awaitable_t__executor_with_default/executor_with_default/overload1.html -/doc/html/boost_asio/reference/use_awaitable_t__executor_with_default/executor_with_default/overload2.html /doc/html/boost_asio/reference/use_awaitable_t__executor_with_default.html /doc/html/boost_asio/reference/use_awaitable_t.html /doc/html/boost_asio/reference/use_awaitable_t/use_awaitable_t/ @@ -4821,6 +6308,7 @@ /doc/html/boost_asio/reference/use_future_t/use_future_t/overload2.html /doc/html/boost_asio/reference/uses_executor.html /doc/html/boost_asio/reference/WaitHandler.html +/doc/html/boost_asio/reference/WaitToken.html /doc/html/boost_asio/reference/wait_traits/ /doc/html/boost_asio/reference/WaitTraits.html /doc/html/boost_asio/reference/wait_traits.html @@ -4841,6 +6329,7 @@ /doc/html/boost_asio/reference/windows__basic_object_handle/basic_object_handle/overload3.html /doc/html/boost_asio/reference/windows__basic_object_handle/basic_object_handle/overload4.html /doc/html/boost_asio/reference/windows__basic_object_handle/basic_object_handle/overload5.html +/doc/html/boost_asio/reference/windows__basic_object_handle/basic_object_handle/overload6.html /doc/html/boost_asio/reference/windows__basic_object_handle/cancel/ /doc/html/boost_asio/reference/windows__basic_object_handle/cancel.html /doc/html/boost_asio/reference/windows__basic_object_handle/cancel/overload1.html @@ -4860,7 +6349,10 @@ /doc/html/boost_asio/reference/windows__basic_object_handle/lowest_layer_type.html /doc/html/boost_asio/reference/windows__basic_object_handle/native_handle.html /doc/html/boost_asio/reference/windows__basic_object_handle/native_handle_type.html +/doc/html/boost_asio/reference/windows__basic_object_handle/operator_eq_/ /doc/html/boost_asio/reference/windows__basic_object_handle/operator_eq_.html +/doc/html/boost_asio/reference/windows__basic_object_handle/operator_eq_/overload1.html +/doc/html/boost_asio/reference/windows__basic_object_handle/operator_eq_/overload2.html /doc/html/boost_asio/reference/windows__basic_object_handle__rebind_executor/ /doc/html/boost_asio/reference/windows__basic_object_handle__rebind_executor.html /doc/html/boost_asio/reference/windows__basic_object_handle__rebind_executor/other.html @@ -4881,6 +6373,7 @@ /doc/html/boost_asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload3.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload4.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload5.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/basic_overlapped_handle/overload6.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/cancel/ /doc/html/boost_asio/reference/windows__basic_overlapped_handle/cancel.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/cancel/overload1.html @@ -4892,7 +6385,6 @@ /doc/html/boost_asio/reference/windows__basic_overlapped_handle/executor_type.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/get_executor.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle.html -/doc/html/boost_asio/reference/windows__basic_overlapped_handle/impl_.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/is_open.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/lowest_layer/ /doc/html/boost_asio/reference/windows__basic_overlapped_handle/lowest_layer.html @@ -4901,10 +6393,17 @@ /doc/html/boost_asio/reference/windows__basic_overlapped_handle/lowest_layer_type.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/native_handle.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle/native_handle_type.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/operator_eq_/ /doc/html/boost_asio/reference/windows__basic_overlapped_handle/operator_eq_.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/operator_eq_/overload1.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/operator_eq_/overload2.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle__rebind_executor/ /doc/html/boost_asio/reference/windows__basic_overlapped_handle__rebind_executor.html /doc/html/boost_asio/reference/windows__basic_overlapped_handle__rebind_executor/other.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/release/ +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/release.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/release/overload1.html +/doc/html/boost_asio/reference/windows__basic_overlapped_handle/release/overload2.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/assign/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/assign.html @@ -4919,6 +6418,7 @@ /doc/html/boost_asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload3.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload4.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload5.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/basic_random_access_handle/overload6.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/cancel/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/cancel.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/cancel/overload1.html @@ -4930,7 +6430,6 @@ /doc/html/boost_asio/reference/windows__basic_random_access_handle/executor_type.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/get_executor.html /doc/html/boost_asio/reference/windows__basic_random_access_handle.html -/doc/html/boost_asio/reference/windows__basic_random_access_handle/impl_.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/is_open.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/lowest_layer/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/lowest_layer.html @@ -4939,7 +6438,10 @@ /doc/html/boost_asio/reference/windows__basic_random_access_handle/lowest_layer_type.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/native_handle.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/native_handle_type.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/operator_eq_/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/operator_eq_.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/operator_eq_/overload1.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/operator_eq_/overload2.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/read_some_at/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/read_some_at.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/read_some_at/overload1.html @@ -4947,6 +6449,10 @@ /doc/html/boost_asio/reference/windows__basic_random_access_handle__rebind_executor/ /doc/html/boost_asio/reference/windows__basic_random_access_handle__rebind_executor.html /doc/html/boost_asio/reference/windows__basic_random_access_handle__rebind_executor/other.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/release/ +/doc/html/boost_asio/reference/windows__basic_random_access_handle/release.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/release/overload1.html +/doc/html/boost_asio/reference/windows__basic_random_access_handle/release/overload2.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/write_some_at/ /doc/html/boost_asio/reference/windows__basic_random_access_handle/write_some_at.html /doc/html/boost_asio/reference/windows__basic_random_access_handle/write_some_at/overload1.html @@ -4965,6 +6471,7 @@ /doc/html/boost_asio/reference/windows__basic_stream_handle/basic_stream_handle/overload3.html /doc/html/boost_asio/reference/windows__basic_stream_handle/basic_stream_handle/overload4.html /doc/html/boost_asio/reference/windows__basic_stream_handle/basic_stream_handle/overload5.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/basic_stream_handle/overload6.html /doc/html/boost_asio/reference/windows__basic_stream_handle/cancel/ /doc/html/boost_asio/reference/windows__basic_stream_handle/cancel.html /doc/html/boost_asio/reference/windows__basic_stream_handle/cancel/overload1.html @@ -4976,7 +6483,6 @@ /doc/html/boost_asio/reference/windows__basic_stream_handle/executor_type.html /doc/html/boost_asio/reference/windows__basic_stream_handle/get_executor.html /doc/html/boost_asio/reference/windows__basic_stream_handle.html -/doc/html/boost_asio/reference/windows__basic_stream_handle/impl_.html /doc/html/boost_asio/reference/windows__basic_stream_handle/is_open.html /doc/html/boost_asio/reference/windows__basic_stream_handle/lowest_layer/ /doc/html/boost_asio/reference/windows__basic_stream_handle/lowest_layer.html @@ -4985,7 +6491,10 @@ /doc/html/boost_asio/reference/windows__basic_stream_handle/lowest_layer_type.html /doc/html/boost_asio/reference/windows__basic_stream_handle/native_handle.html /doc/html/boost_asio/reference/windows__basic_stream_handle/native_handle_type.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/operator_eq_/ /doc/html/boost_asio/reference/windows__basic_stream_handle/operator_eq_.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/operator_eq_/overload1.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/operator_eq_/overload2.html /doc/html/boost_asio/reference/windows__basic_stream_handle/read_some/ /doc/html/boost_asio/reference/windows__basic_stream_handle/read_some.html /doc/html/boost_asio/reference/windows__basic_stream_handle/read_some/overload1.html @@ -4993,6 +6502,10 @@ /doc/html/boost_asio/reference/windows__basic_stream_handle__rebind_executor/ /doc/html/boost_asio/reference/windows__basic_stream_handle__rebind_executor.html /doc/html/boost_asio/reference/windows__basic_stream_handle__rebind_executor/other.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/release/ +/doc/html/boost_asio/reference/windows__basic_stream_handle/release.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/release/overload1.html +/doc/html/boost_asio/reference/windows__basic_stream_handle/release/overload2.html /doc/html/boost_asio/reference/windows__basic_stream_handle/write_some/ /doc/html/boost_asio/reference/windows__basic_stream_handle/write_some.html /doc/html/boost_asio/reference/windows__basic_stream_handle/write_some/overload1.html @@ -5020,6 +6533,7 @@ /doc/html/boost_asio/reference/windows__overlapped_ptr/reset/overload3.html /doc/html/boost_asio/reference/windows__random_access_handle.html /doc/html/boost_asio/reference/windows__stream_handle.html +/doc/html/boost_asio/reference/writable_pipe.html /doc/html/boost_asio/reference/write/ /doc/html/boost_asio/reference/write_at/ /doc/html/boost_asio/reference/write_at.html @@ -5049,7 +6563,9 @@ /doc/html/boost_asio/reference/write/overload7.html /doc/html/boost_asio/reference/write/overload8.html /doc/html/boost_asio/reference/write/overload9.html +/doc/html/boost_asio/reference/WriteToken.html /doc/html/boost_asio/reference/yield_context.html +/doc/html/boost_asio/std_executors.html /doc/html/boost_asio/sync_op.png /doc/html/boost_asio/tutorial/ /doc/html/boost_asio/tutorial.html @@ -5092,167 +6608,15 @@ /doc/html/boost_asio/using.html /libs/ /libs/asio/ +/libs/asio/CMakeLists.txt /libs/asio/doc/ /libs/asio/doc/asio.qbk /libs/asio/doc/doxy2qbk.pl /libs/asio/doc/examples.qbk /libs/asio/doc/history.qbk -/libs/asio/doc/html/ -/libs/asio/doc/html/boost_asio/ -/libs/asio/doc/html/boost_asio/example/ -/libs/asio/doc/html/boost_asio/example/cpp03/ -/libs/asio/doc/html/boost_asio/example/cpp03/allocation/ -/libs/asio/doc/html/boost_asio/example/cpp03/buffers/ -/libs/asio/doc/html/boost_asio/example/cpp03/chat/ -/libs/asio/doc/html/boost_asio/example/cpp03/echo/ -/libs/asio/doc/html/boost_asio/example/cpp03/fork/ -/libs/asio/doc/html/boost_asio/example/cpp03/http/ -/libs/asio/doc/html/boost_asio/example/cpp03/http/client/ -/libs/asio/doc/html/boost_asio/example/cpp03/http/server/ -/libs/asio/doc/html/boost_asio/example/cpp03/http/server2/ -/libs/asio/doc/html/boost_asio/example/cpp03/http/server3/ -/libs/asio/doc/html/boost_asio/example/cpp03/http/server4/ -/libs/asio/doc/html/boost_asio/example/cpp03/icmp/ -/libs/asio/doc/html/boost_asio/example/cpp03/invocation/ -/libs/asio/doc/html/boost_asio/example/cpp03/iostreams/ -/libs/asio/doc/html/boost_asio/example/cpp03/local/ -/libs/asio/doc/html/boost_asio/example/cpp03/multicast/ -/libs/asio/doc/html/boost_asio/example/cpp03/nonblocking/ -/libs/asio/doc/html/boost_asio/example/cpp03/porthopper/ -/libs/asio/doc/html/boost_asio/example/cpp03/serialization/ -/libs/asio/doc/html/boost_asio/example/cpp03/services/ -/libs/asio/doc/html/boost_asio/example/cpp03/socks4/ -/libs/asio/doc/html/boost_asio/example/cpp03/spawn/ -/libs/asio/doc/html/boost_asio/example/cpp03/ssl/ -/libs/asio/doc/html/boost_asio/example/cpp03/timeouts/ -/libs/asio/doc/html/boost_asio/example/cpp03/timers/ -/libs/asio/doc/html/boost_asio/example/cpp03/windows/ -/libs/asio/doc/html/boost_asio/example/cpp11/ -/libs/asio/doc/html/boost_asio/example/cpp11/allocation/ -/libs/asio/doc/html/boost_asio/example/cpp11/buffers/ -/libs/asio/doc/html/boost_asio/example/cpp11/chat/ -/libs/asio/doc/html/boost_asio/example/cpp11/echo/ -/libs/asio/doc/html/boost_asio/example/cpp11/executors/ -/libs/asio/doc/html/boost_asio/example/cpp11/fork/ -/libs/asio/doc/html/boost_asio/example/cpp11/futures/ -/libs/asio/doc/html/boost_asio/example/cpp11/handler_tracking/ -/libs/asio/doc/html/boost_asio/example/cpp11/http/ -/libs/asio/doc/html/boost_asio/example/cpp11/http/server/ -/libs/asio/doc/html/boost_asio/example/cpp11/invocation/ -/libs/asio/doc/html/boost_asio/example/cpp11/local/ -/libs/asio/doc/html/boost_asio/example/cpp11/multicast/ -/libs/asio/doc/html/boost_asio/example/cpp11/nonblocking/ -/libs/asio/doc/html/boost_asio/example/cpp11/operations/ -/libs/asio/doc/html/boost_asio/example/cpp11/socks4/ -/libs/asio/doc/html/boost_asio/example/cpp11/spawn/ -/libs/asio/doc/html/boost_asio/example/cpp11/ssl/ -/libs/asio/doc/html/boost_asio/example/cpp11/timeouts/ -/libs/asio/doc/html/boost_asio/example/cpp11/timers/ -/libs/asio/doc/html/boost_asio/example/cpp14/ -/libs/asio/doc/html/boost_asio/example/cpp14/operations/ -/libs/asio/doc/html/boost_asio/example/cpp17/ -/libs/asio/doc/html/boost_asio/example/cpp17/coroutines_ts/ -/libs/asio/doc/html/boost_asio/examples/ -/libs/asio/doc/html/boost_asio/examples/cpp03_examples.html -/libs/asio/doc/html/boost_asio/examples/cpp11_examples.html -/libs/asio/doc/html/boost_asio/examples/cpp14_examples.html -/libs/asio/doc/html/boost_asio/examples/cpp17_examples.html -/libs/asio/doc/html/boost_asio/examples.html -/libs/asio/doc/html/boost_asio/history.html -/libs/asio/doc/html/boost_asio/index.html -/libs/asio/doc/html/boost_asio/net_ts.html -/libs/asio/doc/html/boost_asio/overview/ -/libs/asio/doc/html/boost_asio/overview/core/ -/libs/asio/doc/html/boost_asio/overview/core/allocation.html -/libs/asio/doc/html/boost_asio/overview/core/async.html -/libs/asio/doc/html/boost_asio/overview/core/basics.html -/libs/asio/doc/html/boost_asio/overview/core/buffers.html -/libs/asio/doc/html/boost_asio/overview/core/concurrency_hint.html -/libs/asio/doc/html/boost_asio/overview/core/coroutine.html -/libs/asio/doc/html/boost_asio/overview/core/coroutines_ts.html -/libs/asio/doc/html/boost_asio/overview/core/handler_tracking.html -/libs/asio/doc/html/boost_asio/overview/core.html -/libs/asio/doc/html/boost_asio/overview/core/line_based.html -/libs/asio/doc/html/boost_asio/overview/core/reactor.html -/libs/asio/doc/html/boost_asio/overview/core/spawn.html -/libs/asio/doc/html/boost_asio/overview/core/strands.html -/libs/asio/doc/html/boost_asio/overview/core/streams.html -/libs/asio/doc/html/boost_asio/overview/core/threads.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/ -/libs/asio/doc/html/boost_asio/overview/cpp2011/array.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/atomic.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/chrono.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/futures.html -/libs/asio/doc/html/boost_asio/overview/cpp2011.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/move_handlers.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/move_objects.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/shared_ptr.html -/libs/asio/doc/html/boost_asio/overview/cpp2011/variadic.html -/libs/asio/doc/html/boost_asio/overview.html -/libs/asio/doc/html/boost_asio/overview/implementation.html -/libs/asio/doc/html/boost_asio/overview/networking/ -/libs/asio/doc/html/boost_asio/overview/networking/bsd_sockets.html -/libs/asio/doc/html/boost_asio/overview/networking.html -/libs/asio/doc/html/boost_asio/overview/networking/iostreams.html -/libs/asio/doc/html/boost_asio/overview/networking/other_protocols.html -/libs/asio/doc/html/boost_asio/overview/networking/protocols.html -/libs/asio/doc/html/boost_asio/overview/posix/ -/libs/asio/doc/html/boost_asio/overview/posix/fork.html -/libs/asio/doc/html/boost_asio/overview/posix.html -/libs/asio/doc/html/boost_asio/overview/posix/local.html -/libs/asio/doc/html/boost_asio/overview/posix/stream_descriptor.html -/libs/asio/doc/html/boost_asio/overview/rationale.html -/libs/asio/doc/html/boost_asio/overview/serial_ports.html -/libs/asio/doc/html/boost_asio/overview/signals.html -/libs/asio/doc/html/boost_asio/overview/ssl.html -/libs/asio/doc/html/boost_asio/overview/timers.html -/libs/asio/doc/html/boost_asio/overview/windows/ -/libs/asio/doc/html/boost_asio/overview/windows.html -/libs/asio/doc/html/boost_asio/overview/windows/object_handle.html -/libs/asio/doc/html/boost_asio/overview/windows/random_access_handle.html -/libs/asio/doc/html/boost_asio/overview/windows/stream_handle.html -/libs/asio/doc/html/boost_asio/tutorial/ -/libs/asio/doc/html/boost_asio/tutorial.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime1/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime1.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime1/src.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime2/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime2.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime2/src.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime3/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime3.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime3/src.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime4/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime4.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime4/src.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime5/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime5.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime5/src.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime6/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime6.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime6/src.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime7/ -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime7.html -/libs/asio/doc/html/boost_asio/tutorial/tutdaytime7/src.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer1/ -/libs/asio/doc/html/boost_asio/tutorial/tuttimer1.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer1/src.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer2/ -/libs/asio/doc/html/boost_asio/tutorial/tuttimer2.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer2/src.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer3/ -/libs/asio/doc/html/boost_asio/tutorial/tuttimer3.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer3/src.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer4/ -/libs/asio/doc/html/boost_asio/tutorial/tuttimer4.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer4/src.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer5/ -/libs/asio/doc/html/boost_asio/tutorial/tuttimer5.html -/libs/asio/doc/html/boost_asio/tutorial/tuttimer5/src.html -/libs/asio/doc/html/boost_asio/using.html -/libs/asio/doc/html/index.html /libs/asio/doc/index.xml /libs/asio/doc/Jamfile.v2 +/libs/asio/doc/model_dox.txt /libs/asio/doc/net_ts.qbk /libs/asio/doc/noncopyable_dox.txt /libs/asio/doc/overview/ @@ -5265,18 +6629,51 @@ /libs/asio/doc/overview/basics.qbk /libs/asio/doc/overview/bsd_sockets.qbk /libs/asio/doc/overview/buffers.qbk +/libs/asio/doc/overview/cancellation.qbk +/libs/asio/doc/overview/channels.qbk +/libs/asio/doc/overview/compose.qbk /libs/asio/doc/overview/concurrency_hint.qbk +/libs/asio/doc/overview/coro.qbk /libs/asio/doc/overview/coroutine.qbk -/libs/asio/doc/overview/coroutines_ts.qbk /libs/asio/doc/overview/cpp2011.qbk +/libs/asio/doc/overview/cpp20_coroutines.qbk +/libs/asio/doc/overview/deferred.qbk +/libs/asio/doc/overview/files.qbk +/libs/asio/doc/overview/futures.qbk /libs/asio/doc/overview/handler_tracking.qbk +/libs/asio/doc/overview/immediate_completion.qbk /libs/asio/doc/overview/implementation.qbk /libs/asio/doc/overview/iostreams.qbk /libs/asio/doc/overview/line_based.qbk +/libs/asio/doc/overview/model/ +/libs/asio/doc/overview/model/allocators.qbk +/libs/asio/doc/overview/model/associators.qbk +/libs/asio/doc/overview/model/async_agent_chain.png +/libs/asio/doc/overview/model/async_agent_model.png +/libs/asio/doc/overview/model/async_agents.qbk +/libs/asio/doc/overview/model/async_child_agent_chain.png +/libs/asio/doc/overview/model/async_op_init_complete.png +/libs/asio/doc/overview/model/async_op_model.png +/libs/asio/doc/overview/model/async_op_phases.png +/libs/asio/doc/overview/model/async_ops.qbk +/libs/asio/doc/overview/model/async_op_trivial_chain.png +/libs/asio/doc/overview/model/cancellation.qbk +/libs/asio/doc/overview/model/child_agents.qbk +/libs/asio/doc/overview/model/completion_token_model.png +/libs/asio/doc/overview/model/completion_tokens.qbk +/libs/asio/doc/overview/model/completion_token_transform.png +/libs/asio/doc/overview/model/executors.qbk +/libs/asio/doc/overview/model/higher_level_model.png +/libs/asio/doc/overview/model/higher_levels.qbk +/libs/asio/doc/overview/model/library_elements.qbk +/libs/asio/doc/overview/model.qbk /libs/asio/doc/overview/other_protocols.qbk +/libs/asio/doc/overview/parallel_group.qbk +/libs/asio/doc/overview/pipes.qbk /libs/asio/doc/overview/posix.qbk /libs/asio/doc/overview/proactor.dot /libs/asio/doc/overview/proactor.png +/libs/asio/doc/overview/promises.qbk /libs/asio/doc/overview/protocols.qbk /libs/asio/doc/overview.qbk /libs/asio/doc/overview/rationale.qbk @@ -5291,7 +6688,11 @@ /libs/asio/doc/overview/sync_op.png /libs/asio/doc/overview/threads.qbk /libs/asio/doc/overview/timers.qbk +/libs/asio/doc/overview/token_adapters.qbk +/libs/asio/doc/overview/type_erasure.qbk /libs/asio/doc/overview/windows.qbk +/libs/asio/doc/platform_macros.pl +/libs/asio/doc/platform_macros.qbk /libs/asio/doc/quickref.xml /libs/asio/doc/reference.dox /libs/asio/doc/reference.qbk @@ -5299,6 +6700,7 @@ /libs/asio/doc/requirements/ /libs/asio/doc/requirements/AcceptableProtocol.qbk /libs/asio/doc/requirements/AcceptHandler.qbk +/libs/asio/doc/requirements/AcceptToken.qbk /libs/asio/doc/requirements/asynchronous_operations.qbk /libs/asio/doc/requirements/asynchronous_socket_operations.qbk /libs/asio/doc/requirements/AsyncRandomAccessReadDevice.qbk @@ -5306,10 +6708,13 @@ /libs/asio/doc/requirements/AsyncReadStream.qbk /libs/asio/doc/requirements/AsyncWriteStream.qbk /libs/asio/doc/requirements/BufferedHandshakeHandler.qbk +/libs/asio/doc/requirements/BufferedHandshakeToken.qbk +/libs/asio/doc/requirements/CancellationHandler.qbk +/libs/asio/doc/requirements/CancellationSlot.qbk /libs/asio/doc/requirements/CompletionCondition.qbk -/libs/asio/doc/requirements/CompletionHandler.qbk /libs/asio/doc/requirements/ConnectCondition.qbk /libs/asio/doc/requirements/ConnectHandler.qbk +/libs/asio/doc/requirements/ConnectToken.qbk /libs/asio/doc/requirements/ConstBufferSequence.qbk /libs/asio/doc/requirements/DynamicBuffer.qbk /libs/asio/doc/requirements/DynamicBuffer_v1.qbk @@ -5322,29 +6727,38 @@ /libs/asio/doc/requirements/GettableSocketOption.qbk /libs/asio/doc/requirements/Handler.qbk /libs/asio/doc/requirements/HandshakeHandler.qbk +/libs/asio/doc/requirements/HandshakeToken.qbk /libs/asio/doc/requirements/InternetProtocol.qbk /libs/asio/doc/requirements/IoControlCommand.qbk /libs/asio/doc/requirements/IoObjectService.qbk /libs/asio/doc/requirements/IteratorConnectHandler.qbk +/libs/asio/doc/requirements/IteratorConnectToken.qbk /libs/asio/doc/requirements/LegacyCompletionHandler.qbk /libs/asio/doc/requirements/MoveAcceptHandler.qbk +/libs/asio/doc/requirements/MoveAcceptToken.qbk /libs/asio/doc/requirements/MutableBufferSequence.qbk +/libs/asio/doc/requirements/NullaryToken.qbk /libs/asio/doc/requirements/OperationState.qbk /libs/asio/doc/requirements/ProtoAllocator.qbk /libs/asio/doc/requirements/Protocol.qbk /libs/asio/doc/requirements.qbk /libs/asio/doc/requirements/RangeConnectHandler.qbk +/libs/asio/doc/requirements/RangeConnectToken.qbk /libs/asio/doc/requirements/ReadHandler.qbk +/libs/asio/doc/requirements/ReadToken.qbk /libs/asio/doc/requirements/read_write_operations.qbk /libs/asio/doc/requirements/Receiver.qbk /libs/asio/doc/requirements/ResolveHandler.qbk +/libs/asio/doc/requirements/ResolveToken.qbk /libs/asio/doc/requirements/Scheduler.qbk /libs/asio/doc/requirements/Sender.qbk /libs/asio/doc/requirements/Service.qbk /libs/asio/doc/requirements/SettableSerialPortOption.qbk /libs/asio/doc/requirements/SettableSocketOption.qbk /libs/asio/doc/requirements/ShutdownHandler.qbk +/libs/asio/doc/requirements/ShutdownToken.qbk /libs/asio/doc/requirements/SignalHandler.qbk +/libs/asio/doc/requirements/SignalToken.qbk /libs/asio/doc/requirements/synchronous_socket_operations.qbk /libs/asio/doc/requirements/SyncRandomAccessReadDevice.qbk /libs/asio/doc/requirements/SyncRandomAccessWriteDevice.qbk @@ -5352,9 +6766,12 @@ /libs/asio/doc/requirements/SyncWriteStream.qbk /libs/asio/doc/requirements/TimeTraits.qbk /libs/asio/doc/requirements/WaitHandler.qbk +/libs/asio/doc/requirements/WaitToken.qbk /libs/asio/doc/requirements/WaitTraits.qbk /libs/asio/doc/requirements/WriteHandler.qbk +/libs/asio/doc/requirements/WriteToken.qbk /libs/asio/doc/std_exception_dox.txt +/libs/asio/doc/std_executors.qbk /libs/asio/doc/tutorial.dox /libs/asio/doc/tutorial.qbk /libs/asio/doc/tutorial.xsl @@ -5520,7 +6937,7 @@ /libs/asio/example/cpp03/ssl/ /libs/asio/example/cpp03/ssl/ca.pem /libs/asio/example/cpp03/ssl/client.cpp -/libs/asio/example/cpp03/ssl/dh2048.pem +/libs/asio/example/cpp03/ssl/dh4096.pem /libs/asio/example/cpp03/ssl/Jamfile.v2 /libs/asio/example/cpp03/ssl/README /libs/asio/example/cpp03/ssl/server.cpp @@ -5579,6 +6996,10 @@ /libs/asio/example/cpp11/chat/chat_message.hpp /libs/asio/example/cpp11/chat/chat_server.cpp /libs/asio/example/cpp11/chat/Jamfile.v2 +/libs/asio/example/cpp11/deferred/ +/libs/asio/example/cpp11/deferred/deferred_1.cpp +/libs/asio/example/cpp11/deferred/deferred_2.cpp +/libs/asio/example/cpp11/deferred/Jamfile.v2 /libs/asio/example/cpp11/echo/ /libs/asio/example/cpp11/echo/async_tcp_echo_server.cpp /libs/asio/example/cpp11/echo/async_udp_echo_server.cpp @@ -5595,6 +7016,10 @@ /libs/asio/example/cpp11/executors/Jamfile.v2 /libs/asio/example/cpp11/executors/pipeline.cpp /libs/asio/example/cpp11/executors/priority_scheduler.cpp +/libs/asio/example/cpp11/files/ +/libs/asio/example/cpp11/files/async_file_copy.cpp +/libs/asio/example/cpp11/files/blocking_file_copy.cpp +/libs/asio/example/cpp11/files/Jamfile.v2 /libs/asio/example/cpp11/fork/ /libs/asio/example/cpp11/fork/daemon.cpp /libs/asio/example/cpp11/fork/Jamfile.v2 @@ -5634,6 +7059,8 @@ /libs/asio/example/cpp11/iostreams/Jamfile.v2 /libs/asio/example/cpp11/local/ /libs/asio/example/cpp11/local/connect_pair.cpp +/libs/asio/example/cpp11/local/fd_passing_stream_client.cpp +/libs/asio/example/cpp11/local/fd_passing_stream_server.cpp /libs/asio/example/cpp11/local/iostream_client.cpp /libs/asio/example/cpp11/local/Jamfile.v2 /libs/asio/example/cpp11/local/stream_client.cpp @@ -5655,6 +7082,13 @@ /libs/asio/example/cpp11/operations/composed_7.cpp /libs/asio/example/cpp11/operations/composed_8.cpp /libs/asio/example/cpp11/operations/Jamfile.v2 +/libs/asio/example/cpp11/parallel_group/ +/libs/asio/example/cpp11/parallel_group/Jamfile.v2 +/libs/asio/example/cpp11/parallel_group/ranged_wait_for_all.cpp +/libs/asio/example/cpp11/parallel_group/wait_for_all.cpp +/libs/asio/example/cpp11/parallel_group/wait_for_one.cpp +/libs/asio/example/cpp11/parallel_group/wait_for_one_error.cpp +/libs/asio/example/cpp11/parallel_group/wait_for_one_success.cpp /libs/asio/example/cpp11/socks4/ /libs/asio/example/cpp11/socks4/Jamfile.v2 /libs/asio/example/cpp11/socks4/socks4.hpp @@ -5666,7 +7100,7 @@ /libs/asio/example/cpp11/ssl/ /libs/asio/example/cpp11/ssl/ca.pem /libs/asio/example/cpp11/ssl/client.cpp -/libs/asio/example/cpp11/ssl/dh2048.pem +/libs/asio/example/cpp11/ssl/dh4096.pem /libs/asio/example/cpp11/ssl/Jamfile.v2 /libs/asio/example/cpp11/ssl/README /libs/asio/example/cpp11/ssl/server.cpp @@ -5681,7 +7115,24 @@ /libs/asio/example/cpp11/timers/ /libs/asio/example/cpp11/timers/Jamfile.v2 /libs/asio/example/cpp11/timers/time_t_timer.cpp +/libs/asio/example/cpp11/type_erasure/ +/libs/asio/example/cpp11/type_erasure/Jamfile.v2 +/libs/asio/example/cpp11/type_erasure/line_reader.hpp +/libs/asio/example/cpp11/type_erasure/main.cpp +/libs/asio/example/cpp11/type_erasure/sleep.cpp +/libs/asio/example/cpp11/type_erasure/sleep.hpp +/libs/asio/example/cpp11/type_erasure/stdin_line_reader.cpp +/libs/asio/example/cpp11/type_erasure/stdin_line_reader.hpp /libs/asio/example/cpp14/ +/libs/asio/example/cpp14/deferred/ +/libs/asio/example/cpp14/deferred/deferred_1.cpp +/libs/asio/example/cpp14/deferred/deferred_2.cpp +/libs/asio/example/cpp14/deferred/deferred_3.cpp +/libs/asio/example/cpp14/deferred/deferred_4.cpp +/libs/asio/example/cpp14/deferred/deferred_5.cpp +/libs/asio/example/cpp14/deferred/deferred_6.cpp +/libs/asio/example/cpp14/deferred/deferred_7.cpp +/libs/asio/example/cpp14/deferred/Jamfile.v2 /libs/asio/example/cpp14/executors/ /libs/asio/example/cpp14/executors/actor.cpp /libs/asio/example/cpp14/executors/async_1.cpp @@ -5692,7 +7143,12 @@ /libs/asio/example/cpp14/executors/Jamfile.v2 /libs/asio/example/cpp14/executors/pipeline.cpp /libs/asio/example/cpp14/executors/priority_scheduler.cpp +/libs/asio/example/cpp14/iostreams/ +/libs/asio/example/cpp14/iostreams/http_client.cpp +/libs/asio/example/cpp14/iostreams/Jamfile.v2 /libs/asio/example/cpp14/operations/ +/libs/asio/example/cpp14/operations/callback_wrapper.cpp +/libs/asio/example/cpp14/operations/c_callback_wrapper.cpp /libs/asio/example/cpp14/operations/composed_1.cpp /libs/asio/example/cpp14/operations/composed_2.cpp /libs/asio/example/cpp14/operations/composed_3.cpp @@ -5702,13 +7158,57 @@ /libs/asio/example/cpp14/operations/composed_7.cpp /libs/asio/example/cpp14/operations/composed_8.cpp /libs/asio/example/cpp14/operations/Jamfile.v2 +/libs/asio/example/cpp14/parallel_group/ +/libs/asio/example/cpp14/parallel_group/Jamfile.v2 +/libs/asio/example/cpp14/parallel_group/parallel_sort.cpp +/libs/asio/example/cpp14/parallel_group/ranged_wait_for_all.cpp +/libs/asio/example/cpp14/parallel_group/wait_for_all.cpp +/libs/asio/example/cpp14/parallel_group/wait_for_one.cpp +/libs/asio/example/cpp14/parallel_group/wait_for_one_error.cpp +/libs/asio/example/cpp14/parallel_group/wait_for_one_success.cpp /libs/asio/example/cpp17/ /libs/asio/example/cpp17/coroutines_ts/ /libs/asio/example/cpp17/coroutines_ts/chat_server.cpp /libs/asio/example/cpp17/coroutines_ts/echo_server.cpp +/libs/asio/example/cpp17/coroutines_ts/echo_server_with_as_single_default.cpp +/libs/asio/example/cpp17/coroutines_ts/echo_server_with_as_tuple_default.cpp /libs/asio/example/cpp17/coroutines_ts/echo_server_with_default.cpp /libs/asio/example/cpp17/coroutines_ts/range_based_for.cpp /libs/asio/example/cpp17/coroutines_ts/refactored_echo_server.cpp +/libs/asio/example/cpp20/ +/libs/asio/example/cpp20/channels/ +/libs/asio/example/cpp20/channels/throttling_proxy.cpp +/libs/asio/example/cpp20/coroutines/ +/libs/asio/example/cpp20/coroutines/chat_server.cpp +/libs/asio/example/cpp20/coroutines/echo_server.cpp +/libs/asio/example/cpp20/coroutines/echo_server_with_as_single_default.cpp +/libs/asio/example/cpp20/coroutines/echo_server_with_as_tuple_default.cpp +/libs/asio/example/cpp20/coroutines/echo_server_with_default.cpp +/libs/asio/example/cpp20/coroutines/echo_server_with_deferred.cpp +/libs/asio/example/cpp20/coroutines/echo_server_with_deferred_default.cpp +/libs/asio/example/cpp20/coroutines/Jamfile.v2 +/libs/asio/example/cpp20/coroutines/refactored_echo_server.cpp +/libs/asio/example/cpp20/coroutines/timeout.cpp +/libs/asio/example/cpp20/operations/ +/libs/asio/example/cpp20/operations/callback_wrapper.cpp +/libs/asio/example/cpp20/operations/c_callback_wrapper.cpp +/libs/asio/example/cpp20/operations/composed_1.cpp +/libs/asio/example/cpp20/operations/composed_2.cpp +/libs/asio/example/cpp20/operations/composed_3.cpp +/libs/asio/example/cpp20/operations/composed_4.cpp +/libs/asio/example/cpp20/operations/composed_5.cpp +/libs/asio/example/cpp20/operations/composed_6.cpp +/libs/asio/example/cpp20/operations/composed_7.cpp +/libs/asio/example/cpp20/operations/composed_8.cpp +/libs/asio/example/cpp20/operations/Jamfile.v2 +/libs/asio/example/cpp20/type_erasure/ +/libs/asio/example/cpp20/type_erasure/Jamfile.v2 +/libs/asio/example/cpp20/type_erasure/line_reader.hpp +/libs/asio/example/cpp20/type_erasure/main.cpp +/libs/asio/example/cpp20/type_erasure/sleep.cpp +/libs/asio/example/cpp20/type_erasure/sleep.hpp +/libs/asio/example/cpp20/type_erasure/stdin_line_reader.cpp +/libs/asio/example/cpp20/type_erasure/stdin_line_reader.hpp /libs/asio/.github/ /libs/asio/.github/ISSUE_TEMPLATE/ /libs/asio/.github/ISSUE_TEMPLATE/config.yml @@ -5718,6 +7218,7 @@ /libs/asio/meta/ /libs/asio/meta/libraries.json /libs/asio/test/ +/libs/asio/test/append.cpp /libs/asio/test/archetypes/ /libs/asio/test/archetypes/async_ops.hpp /libs/asio/test/archetypes/async_result.hpp @@ -5725,33 +7226,52 @@ /libs/asio/test/archetypes/io_control_command.hpp /libs/asio/test/archetypes/settable_socket_option.hpp /libs/asio/test/associated_allocator.cpp +/libs/asio/test/associated_cancellation_slot.cpp /libs/asio/test/associated_executor.cpp +/libs/asio/test/associated_immediate_executor.cpp +/libs/asio/test/associator.cpp +/libs/asio/test/as_tuple.cpp /libs/asio/test/async_result.cpp /libs/asio/test/awaitable.cpp /libs/asio/test/basic_datagram_socket.cpp /libs/asio/test/basic_deadline_timer.cpp +/libs/asio/test/basic_file.cpp +/libs/asio/test/basic_random_access_file.cpp /libs/asio/test/basic_raw_socket.cpp +/libs/asio/test/basic_readable_pipe.cpp /libs/asio/test/basic_seq_packet_socket.cpp /libs/asio/test/basic_serial_port.cpp /libs/asio/test/basic_signal_set.cpp /libs/asio/test/basic_socket_acceptor.cpp /libs/asio/test/basic_socket.cpp /libs/asio/test/basic_streambuf.cpp +/libs/asio/test/basic_stream_file.cpp /libs/asio/test/basic_stream_socket.cpp /libs/asio/test/basic_waitable_timer.cpp +/libs/asio/test/basic_writable_pipe.cpp +/libs/asio/test/bind_allocator.cpp +/libs/asio/test/bind_cancellation_slot.cpp /libs/asio/test/bind_executor.cpp +/libs/asio/test/bind_immediate_executor.cpp /libs/asio/test/buffer.cpp /libs/asio/test/buffered_read_stream.cpp /libs/asio/test/buffered_stream.cpp /libs/asio/test/buffered_write_stream.cpp +/libs/asio/test/buffer_registration.cpp /libs/asio/test/buffers_iterator.cpp +/libs/asio/test/cancellation_signal.cpp +/libs/asio/test/cancellation_state.cpp +/libs/asio/test/cancellation_type.cpp /libs/asio/test/completion_condition.cpp /libs/asio/test/compose.cpp /libs/asio/test/connect.cpp +/libs/asio/test/connect_pipe.cpp +/libs/asio/test/consign.cpp /libs/asio/test/coroutine.cpp /libs/asio/test/co_spawn.cpp /libs/asio/test/deadline_timer.cpp /libs/asio/test/defer.cpp +/libs/asio/test/deferred.cpp /libs/asio/test/detached.cpp /libs/asio/test/dispatch.cpp /libs/asio/test/error.cpp @@ -5784,6 +7304,28 @@ /libs/asio/test/execution/submit.cpp /libs/asio/test/executor.cpp /libs/asio/test/executor_work_guard.cpp +/libs/asio/test/experimental/ +/libs/asio/test/experimental/awaitable_operators.cpp +/libs/asio/test/experimental/basic_channel.cpp +/libs/asio/test/experimental/basic_concurrent_channel.cpp +/libs/asio/test/experimental/channel.cpp +/libs/asio/test/experimental/channel_traits.cpp +/libs/asio/test/experimental/co_composed.cpp +/libs/asio/test/experimental/concurrent_channel.cpp +/libs/asio/test/experimental/coro/ +/libs/asio/test/experimental/coro/allocator.cpp +/libs/asio/test/experimental/coro/cancel.cpp +/libs/asio/test/experimental/coro/co_spawn.cpp +/libs/asio/test/experimental/coro/exception.cpp +/libs/asio/test/experimental/coro/executor.cpp +/libs/asio/test/experimental/coro/Jamfile.v2 +/libs/asio/test/experimental/coro/partial.cpp +/libs/asio/test/experimental/coro/simple_test.cpp +/libs/asio/test/experimental/coro/stack_test.cpp +/libs/asio/test/experimental/coro/use_coro.cpp +/libs/asio/test/experimental/Jamfile.v2 +/libs/asio/test/experimental/promise.cpp +/libs/asio/test/file_base.cpp /libs/asio/test/generic/ /libs/asio/test/generic/basic_endpoint.cpp /libs/asio/test/generic/datagram_protocol.cpp @@ -5831,6 +7373,7 @@ /libs/asio/test/local/basic_endpoint.cpp /libs/asio/test/local/connect_pair.cpp /libs/asio/test/local/datagram_protocol.cpp +/libs/asio/test/local/seq_packet_protocol.cpp /libs/asio/test/local/stream_protocol.cpp /libs/asio/test/packaged_task.cpp /libs/asio/test/placeholders.cpp @@ -5841,6 +7384,7 @@ /libs/asio/test/posix/descriptor.cpp /libs/asio/test/posix/stream_descriptor.cpp /libs/asio/test/post.cpp +/libs/asio/test/prepend.cpp /libs/asio/test/properties/ /libs/asio/test/properties/cpp03/ /libs/asio/test/properties/cpp03/can_prefer_free_prefer.cpp @@ -6019,12 +7563,17 @@ /libs/asio/test/properties/cpp14/require_free.cpp /libs/asio/test/properties/cpp14/require_member.cpp /libs/asio/test/properties/cpp14/require_static.cpp +/libs/asio/test/random_access_file.cpp +/libs/asio/test/readable_pipe.cpp /libs/asio/test/read_at.cpp /libs/asio/test/read.cpp /libs/asio/test/read_until.cpp +/libs/asio/test/recycling_allocator.cpp /libs/asio/test/redirect_error.cpp +/libs/asio/test/registered_buffer.cpp /libs/asio/test/serial_port_base.cpp /libs/asio/test/serial_port.cpp +/libs/asio/test/signal_set_base.cpp /libs/asio/test/signal_set.cpp /libs/asio/test/socket_base.cpp /libs/asio/test/ssl/ @@ -6040,6 +7589,7 @@ /libs/asio/test/steady_timer.cpp /libs/asio/test/strand.cpp /libs/asio/test/streambuf.cpp +/libs/asio/test/stream_file.cpp /libs/asio/test/system_context.cpp /libs/asio/test/system_executor.cpp /libs/asio/test/system_timer.cpp @@ -6070,6 +7620,7 @@ /libs/asio/test/windows/overlapped_ptr.cpp /libs/asio/test/windows/random_access_handle.cpp /libs/asio/test/windows/stream_handle.cpp +/libs/asio/test/writable_pipe.cpp /libs/asio/test/write_at.cpp /libs/asio/test/write.cpp /libs/asio/tools/ @@ -6094,9 +7645,20 @@ /libs/system/doc/system/introduction.adoc /libs/system/doc/system/rationale.adoc /libs/system/doc/system/reference.adoc +/libs/system/doc/system/usage.adoc +/libs/system/.drone/ +/libs/system/.drone/drone.bat +/libs/system/.drone/drone.sh +/libs/system/.drone.jsonnet +/libs/system/extra/ +/libs/system/extra/boost_system.natvis +/libs/system/.github/ +/libs/system/.github/workflows/ +/libs/system/.github/workflows/ci.yml /libs/system/index.html /libs/system/meta/ /libs/system/meta/libraries.json +/libs/system/README.md /libs/system/src/ /libs/system/src/error_code.cpp /libs/system/test/ @@ -6104,21 +7666,46 @@ /libs/system/test/before_main_test.cpp /libs/system/test/cmake_install_test/ /libs/system/test/cmake_install_test/CMakeLists.txt +/libs/system/test/cmake_install_test/main.cpp /libs/system/test/CMakeLists.txt /libs/system/test/cmake_subdir_test/ /libs/system/test/cmake_subdir_test/CMakeLists.txt /libs/system/test/config_test.cpp +/libs/system/test/constexpr_test2.cpp /libs/system/test/constexpr_test.cpp +/libs/system/test/cygwin_error_test.cpp /libs/system/test/dynamic_link_test.cpp +/libs/system/test/ec_hash_value_test.cpp +/libs/system/test/ec_location_test2.cpp +/libs/system/test/ec_location_test3.cpp +/libs/system/test/ec_location_test4.cpp +/libs/system/test/ec_location_test.cpp +/libs/system/test/ec_what_test.cpp +/libs/system/test/ec_wstream_test.cpp +/libs/system/test/errc_test2.cpp +/libs/system/test/errc_test3.cpp +/libs/system/test/errc_test4.cpp +/libs/system/test/errc_test.cpp +/libs/system/test/error_category_test2.cpp /libs/system/test/error_category_test.cpp +/libs/system/test/error_code_test2.cpp +/libs/system/test/error_code_test3.cpp /libs/system/test/error_code_test.cpp /libs/system/test/error_code_user_test.cpp +/libs/system/test/error_condition_test2.cpp +/libs/system/test/error_condition_test3.cpp +/libs/system/test/error_condition_test.cpp /libs/system/test/failed_constexpr_test.cpp /libs/system/test/failed_test.cpp +/libs/system/test/generic_category_test2.cpp +/libs/system/test/generic_category_test3.cpp /libs/system/test/generic_category_test.cpp /libs/system/test/header_only_test.cpp /libs/system/test/initialization_test.cpp +/libs/system/test/is_error_code_enum_test.cpp +/libs/system/test/is_error_condition_enum_test.cpp /libs/system/test/Jamfile.v2 +/libs/system/test/linux_error_test.cpp /libs/system/test/msvc/ /libs/system/test/msvc/common.props /libs/system/test/msvc/config_test/ @@ -6135,19 +7722,64 @@ /libs/system/test/msvc/system-dll/system-dll.vcxproj /libs/system/test/msvc/system.sln /libs/system/test/quick.cpp +/libs/system/test/result_convert_construct.cpp +/libs/system/test/result_copy_assign.cpp +/libs/system/test/result_copy_construct.cpp +/libs/system/test/result_default_construct.cpp +/libs/system/test/result_emplace.cpp +/libs/system/test/result_eq.cpp +/libs/system/test/result_errc_construct.cpp +/libs/system/test/result_error_access.cpp +/libs/system/test/result_error_construct2.cpp +/libs/system/test/result_error_construct3.cpp +/libs/system/test/result_error_construct4.cpp +/libs/system/test/result_error_construct.cpp +/libs/system/test/result_move_assign.cpp +/libs/system/test/result_move_construct.cpp +/libs/system/test/result_range_for.cpp +/libs/system/test/result_swap.cpp +/libs/system/test/result_typedefs.cpp +/libs/system/test/result_value_access.cpp +/libs/system/test/result_value_construct2.cpp +/libs/system/test/result_value_construct3.cpp +/libs/system/test/result_value_construct4.cpp +/libs/system/test/result_value_construct5.cpp +/libs/system/test/result_value_construct.cpp /libs/system/test/single_instance_1.cpp /libs/system/test/single_instance_2.cpp /libs/system/test/single_instance_test.cpp +/libs/system/test/snprintf_test.cpp +/libs/system/test/std_interop_test10.cpp +/libs/system/test/std_interop_test11.cpp +/libs/system/test/std_interop_test12.cpp +/libs/system/test/std_interop_test13.cpp +/libs/system/test/std_interop_test14.cpp +/libs/system/test/std_interop_test15.cpp +/libs/system/test/std_interop_test16.cpp +/libs/system/test/std_interop_test2.cpp +/libs/system/test/std_interop_test3.cpp +/libs/system/test/std_interop_test4.cpp +/libs/system/test/std_interop_test5.cpp +/libs/system/test/std_interop_test6.cpp +/libs/system/test/std_interop_test7.cpp +/libs/system/test/std_interop_test8.cpp +/libs/system/test/std_interop_test9.cpp /libs/system/test/std_interop_test.cpp /libs/system/test/std_mismatch_test.cpp /libs/system/test/std_single_instance_1.cpp /libs/system/test/std_single_instance_2.cpp /libs/system/test/std_single_instance_test.cpp +/libs/system/test/system_category_test2.cpp +/libs/system/test/system_category_test3.cpp /libs/system/test/system_category_test.cpp +/libs/system/test/system_error_test2.cpp +/libs/system/test/system_error_test3.cpp /libs/system/test/system_error_test.cpp /libs/system/test/throws_assign_fail.cpp /libs/system/test/throw_test.cpp /libs/system/test/warnings_test.cpp +/libs/system/test/win32_generic_test.cpp /libs/system/test/win32_hresult_test.cpp +/libs/system/test/windows_error_test.cpp /libs/system/.travis.yml /README.txt diff --git a/tidal-link/link/modules/asio-standalone/asio/boostify.pl b/tidal-link/link/modules/asio-standalone/asio/boostify.pl old mode 100644 new mode 100755 index 460aab952..485206c31 --- a/tidal-link/link/modules/asio-standalone/asio/boostify.pl +++ b/tidal-link/link/modules/asio-standalone/asio/boostify.pl @@ -100,11 +100,17 @@ sub copy_source_file my $is_xsl = 0; $is_xsl = 1 if ($from =~ /.xsl$/); + my $is_quickref = 0; + $is_quickref = 1 if ($from =~ /quickref.xml$/); + my $is_test = 0; $is_test = 1 if ($from =~ /tests\/unit/); my $is_coroutine_related = 0; - $is_coroutine_related = 1 if ($from =~ /await/); + $is_coroutine_related = 1 if ($from =~ /await/ || $from =~ /partial_promise/ || $from =~ /co_composed/); + + my $is_hash_related = 0; + $is_hash_related = 1 if ($from =~ /ip\/address/ || $from =~ /ip\/basic_endpoint/); # Open the files. open(my $input, "<$from") or die("Can't open $from for reading"); @@ -136,8 +142,8 @@ sub copy_source_file $line =~ s/ASIO_/BOOST_ASIO_/g; } - # Extra replacements for quickbook and XSL source only. - if ($is_qbk || $is_xsl) + # Extra replacements for quickbook, XSL and quickref.xml source only. + if ($is_qbk || $is_xsl || $is_quickref) { $line =~ s/asio\.examples/boost_asio.examples/g; $line =~ s/asio\.history/boost_asio.history/g; @@ -156,6 +162,7 @@ sub copy_source_file $line =~ s/\^asio/^boost\/asio/g; $line =~ s/namespaceasio/namespaceboost_1_1asio/g; $line =~ s/ \(\[\@examples\/diffs.*$//; + $line =~ s/boost\/tools\/boostbook/tools\/boostbook/g; } # Conditional replacements. @@ -274,7 +281,7 @@ sub copy_source_file print_line($output, $1 . "boost::thread" . $2, $from, $lineno); } } - elsif ($line =~ /namespace std \{ *$/ && !$is_coroutine_related) + elsif ($line =~ /namespace std \{ *$/ && !$is_coroutine_related && !$is_hash_related) { print_line($output, "namespace boost {", $from, $lineno); print_line($output, "namespace system {", $from, $lineno); @@ -285,7 +292,12 @@ sub copy_source_file $line =~ s/asio::/boost::asio::/g if !$is_xsl; print_line($output, $line, $from, $lineno); } - elsif ($line =~ /^} \/\/ namespace std/ && !$is_coroutine_related) + elsif ($line =~ /ec\.assign\(0, ec\.category\(\)\)/) + { + $line =~ s/ec\.assign\(0, ec\.category\(\)\)/ec = boost::system::error_code()/g; + print_line($output, $line, $from, $lineno); + } + elsif ($line =~ /^} \/\/ namespace std/ && !$is_coroutine_related && !$is_hash_related) { print_line($output, "} // namespace system", $from, $lineno); print_line($output, "} // namespace boost", $from, $lineno); @@ -319,6 +331,16 @@ sub copy_source_file $line =~ s/asio_handler_invoke_helpers/boost_asio_handler_invoke_helpers/g; print_line($output, $line, $from, $lineno); } + elsif ($line =~ /asio_(prefer|query|require|require_concept)_fn/) + { + $line =~ s/asio_(prefer|query|require|require_concept)_fn/boost_asio_$1_fn/g; + print_line($output, $line, $from, $lineno); + } + elsif ($line =~ /asio_execution_/ && !($line =~ /_is_unspecialised/)) + { + $line =~ s/asio_execution_/boost_asio_execution_/g; + print_line($output, $line, $from, $lineno); + } elsif ($line =~ /[\\@]ref boost_bind/) { $line =~ s/[\\@]ref boost_bind/boost::bind()/g; @@ -350,6 +372,25 @@ sub copy_source_file print_line($output, "//", $from, $lineno); print_line($output, $line, $from, $lineno); } + elsif ($is_quickref) + { + if ($line =~ /asio\.reference\.error_code">/) + { + # Line is removed. + } + elsif ($line =~ /asio\.reference\.system_error">/) + { + # Line is removed. + } + elsif ($line =~ /asio\.reference\.thread">/) + { + # Line is removed. + } + else + { + print_line($output, $line, $from, $lineno); + } + } else { print_line($output, $line, $from, $lineno); @@ -373,6 +414,8 @@ sub copy_include_files "include/asio/execution/detail", "include/asio/execution/impl", "include/asio/experimental", + "include/asio/experimental/detail", + "include/asio/experimental/detail/impl", "include/asio/experimental/impl", "include/asio/generic", "include/asio/generic/detail", @@ -399,7 +442,7 @@ sub copy_include_files foreach my $dir (@dirs) { our $boost_dir; - my @files = ( glob("$dir/*.hpp"), glob("$dir/*.ipp"), glob("$dir/*cpp") ); + my @files = ( glob("$dir/*.hpp"), glob("$dir/*.ipp") ); foreach my $file (@files) { if ($file ne "include/asio/thread.hpp" @@ -437,6 +480,8 @@ sub copy_unit_tests "src/tests/unit", "src/tests/unit/archetypes", "src/tests/unit/execution", + "src/tests/unit/experimental", + "src/tests/unit/experimental/coro", "src/tests/unit/generic", "src/tests/unit/ip", "src/tests/unit/local", @@ -549,9 +594,11 @@ sub copy_examples "src/examples/cpp11/allocation", "src/examples/cpp11/buffers", "src/examples/cpp11/chat", + "src/examples/cpp11/deferred", "src/examples/cpp11/echo", "src/examples/cpp11/executors", "src/examples/cpp11/fork", + "src/examples/cpp11/files", "src/examples/cpp11/futures", "src/examples/cpp11/handler_tracking", "src/examples/cpp11/http/server", @@ -561,14 +608,23 @@ sub copy_examples "src/examples/cpp11/multicast", "src/examples/cpp11/nonblocking", "src/examples/cpp11/operations", + "src/examples/cpp11/parallel_group", "src/examples/cpp11/socks4", "src/examples/cpp11/spawn", "src/examples/cpp11/ssl", "src/examples/cpp11/timeouts", "src/examples/cpp11/timers", + "src/examples/cpp11/type_erasure", + "src/examples/cpp14/deferred", "src/examples/cpp14/executors", + "src/examples/cpp14/iostreams", "src/examples/cpp14/operations", - "src/examples/cpp17/coroutines_ts"); + "src/examples/cpp14/parallel_group", + "src/examples/cpp17/coroutines_ts", + "src/examples/cpp20/channels", + "src/examples/cpp20/coroutines", + "src/examples/cpp20/operations", + "src/examples/cpp20/type_erasure"); our $boost_dir; foreach my $dir (@dirs) @@ -597,10 +653,13 @@ sub copy_doc "src/doc/asio.qbk", "src/doc/examples.qbk", "src/doc/net_ts.qbk", + "src/doc/overview.qbk", + "src/doc/quickref.xml", "src/doc/reference.xsl", "src/doc/std_executors.qbk", "src/doc/tutorial.xsl", glob("src/doc/overview/*.qbk"), + glob("src/doc/overview/model/*.qbk"), glob("src/doc/requirements/*.qbk")); foreach my $file (@files) { diff --git a/tidal-link/link/modules/asio-standalone/asio/configure.ac b/tidal-link/link/modules/asio-standalone/asio/configure.ac index fd1954cbc..8eabb6740 100644 --- a/tidal-link/link/modules/asio-standalone/asio/configure.ac +++ b/tidal-link/link/modules/asio-standalone/asio/configure.ac @@ -1,13 +1,14 @@ -AC_INIT(asio, [1.17.0]) +AC_INIT(asio, [1.28.0]) AC_CONFIG_SRCDIR(include/asio.hpp) AM_MAINTAINER_MODE -AM_INIT_AUTOMAKE([tar-ustar]) +AM_INIT_AUTOMAKE([tar-pax]) AC_CANONICAL_HOST AM_PROG_CC_C_O AC_PROG_CXX AC_LANG(C++) AC_PROG_RANLIB +PKG_INSTALLDIR AC_DEFINE(_REENTRANT, [1], [Define this]) @@ -169,13 +170,36 @@ AC_COMPILE_IFELSE( [AC_MSG_RESULT([no]) HAVE_CXX17=no;]) +AC_MSG_CHECKING([whether C++20 is enabled]) +AC_COMPILE_IFELSE( + [AC_LANG_PROGRAM( + [[#if __cplusplus < 202002L]] + [[#error C++20 not available]] + [[#endif]])], + [AC_MSG_RESULT([yes]) + HAVE_CXX20=yes;], + [AC_MSG_RESULT([no]) + HAVE_CXX20=no;]) + AC_MSG_CHECKING([whether coroutines are enabled]) AC_COMPILE_IFELSE( [AC_LANG_PROGRAM( [[#if defined(__clang__)]] - [[# if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] - [[# if __has_include()]] - [[# define ASIO_HAS_CO_AWAIT 1]] + [[# if (__clang_major__ >= 14)]] + [[# if (__cplusplus >= 202002) && (__cpp_impl_coroutine >= 201902)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# elif (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] + [[# endif]] + [[# else]] + [[# if (__cplusplus >= 201703) && (__cpp_coroutines >= 201703)]] + [[# if __has_include()]] + [[# define ASIO_HAS_CO_AWAIT 1]] + [[# endif]] [[# endif]] [[# endif]] [[#elif defined(__GNUC__)]] @@ -216,8 +240,12 @@ AM_CONDITIONAL(HAVE_CXX14,test x$HAVE_CXX14 = xyes) AM_CONDITIONAL(HAVE_CXX17,test x$HAVE_CXX17 = xyes) +AM_CONDITIONAL(HAVE_CXX20,test x$HAVE_CXX20 = xyes) + AM_CONDITIONAL(HAVE_COROUTINES,test x$HAVE_COROUTINES = xyes) +AC_CONFIG_FILES([asio.pc]) + AC_OUTPUT([ Makefile include/Makefile @@ -227,4 +255,5 @@ AC_OUTPUT([ src/examples/cpp03/Makefile src/examples/cpp11/Makefile src/examples/cpp14/Makefile - src/examples/cpp17/Makefile]) + src/examples/cpp17/Makefile + src/examples/cpp20/Makefile]) diff --git a/tidal-link/link/modules/asio-standalone/asio/include/Makefile.am b/tidal-link/link/modules/asio-standalone/asio/include/Makefile.am index 265e37ed5..d7a9b9c60 100644 --- a/tidal-link/link/modules/asio-standalone/asio/include/Makefile.am +++ b/tidal-link/link/modules/asio-standalone/asio/include/Makefile.am @@ -1,14 +1,24 @@ # find . -name "*.*pp" | sed -e 's/^\.\///' | sed -e 's/^.*$/ & \\/' | sort nobase_include_HEADERS = \ + asio/any_completion_executor.hpp \ + asio/any_completion_handler.hpp \ asio/any_io_executor.hpp \ + asio/append.hpp \ + asio/as_tuple.hpp \ asio/associated_allocator.hpp \ + asio/associated_cancellation_slot.hpp \ asio/associated_executor.hpp \ + asio/associated_immediate_executor.hpp \ + asio/associator.hpp \ asio/async_result.hpp \ asio/awaitable.hpp \ asio/basic_datagram_socket.hpp \ asio/basic_deadline_timer.hpp \ + asio/basic_file.hpp \ asio/basic_io_object.hpp \ + asio/basic_random_access_file.hpp \ asio/basic_raw_socket.hpp \ + asio/basic_readable_pipe.hpp \ asio/basic_seq_packet_socket.hpp \ asio/basic_serial_port.hpp \ asio/basic_signal_set.hpp \ @@ -18,9 +28,14 @@ nobase_include_HEADERS = \ asio/basic_socket_streambuf.hpp \ asio/basic_streambuf_fwd.hpp \ asio/basic_streambuf.hpp \ + asio/basic_stream_file.hpp \ asio/basic_stream_socket.hpp \ asio/basic_waitable_timer.hpp \ + asio/basic_writable_pipe.hpp \ + asio/bind_allocator.hpp \ + asio/bind_cancellation_slot.hpp \ asio/bind_executor.hpp \ + asio/bind_immediate_executor.hpp \ asio/buffered_read_stream_fwd.hpp \ asio/buffered_read_stream.hpp \ asio/buffered_stream_fwd.hpp \ @@ -28,19 +43,27 @@ nobase_include_HEADERS = \ asio/buffered_write_stream_fwd.hpp \ asio/buffered_write_stream.hpp \ asio/buffer.hpp \ + asio/buffer_registration.hpp \ asio/buffers_iterator.hpp \ + asio/cancellation_signal.hpp \ + asio/cancellation_state.hpp \ + asio/cancellation_type.hpp \ asio/co_spawn.hpp \ asio/completion_condition.hpp \ asio/compose.hpp \ asio/connect.hpp \ + asio/connect_pipe.hpp \ + asio/consign.hpp \ asio/coroutine.hpp \ asio/deadline_timer.hpp \ asio/defer.hpp \ + asio/deferred.hpp \ asio/detached.hpp \ asio/detail/array_fwd.hpp \ asio/detail/array.hpp \ asio/detail/assert.hpp \ asio/detail/atomic_count.hpp \ + asio/detail/base_from_cancellation_state.hpp \ asio/detail/base_from_completion_cond.hpp \ asio/detail/bind_handler.hpp \ asio/detail/blocking_executor_op.hpp \ @@ -52,6 +75,7 @@ nobase_include_HEADERS = \ asio/detail/chrono.hpp \ asio/detail/chrono_time_traits.hpp \ asio/detail/completion_handler.hpp \ + asio/detail/composed_work.hpp \ asio/detail/concurrency_hint.hpp \ asio/detail/conditionally_enabled_event.hpp \ asio/detail/conditionally_enabled_mutex.hpp \ @@ -69,6 +93,7 @@ nobase_include_HEADERS = \ asio/detail/epoll_reactor.hpp \ asio/detail/eventfd_select_interrupter.hpp \ asio/detail/event.hpp \ + asio/detail/exception.hpp \ asio/detail/executor_function.hpp \ asio/detail/executor_op.hpp \ asio/detail/fd_set_adapter.hpp \ @@ -95,16 +120,21 @@ nobase_include_HEADERS = \ asio/detail/impl/epoll_reactor.ipp \ asio/detail/impl/eventfd_select_interrupter.ipp \ asio/detail/impl/handler_tracking.ipp \ + asio/detail/impl/io_uring_descriptor_service.ipp \ + asio/detail/impl/io_uring_file_service.ipp \ + asio/detail/impl/io_uring_service.hpp \ + asio/detail/impl/io_uring_service.ipp \ + asio/detail/impl/io_uring_socket_service_base.ipp \ asio/detail/impl/kqueue_reactor.hpp \ asio/detail/impl/kqueue_reactor.ipp \ asio/detail/impl/null_event.ipp \ asio/detail/impl/pipe_select_interrupter.ipp \ asio/detail/impl/posix_event.ipp \ asio/detail/impl/posix_mutex.ipp \ + asio/detail/impl/posix_serial_port_service.ipp \ asio/detail/impl/posix_thread.ipp \ asio/detail/impl/posix_tss_ptr.ipp \ asio/detail/impl/reactive_descriptor_service.ipp \ - asio/detail/impl/reactive_serial_port_service.ipp \ asio/detail/impl/reactive_socket_service_base.ipp \ asio/detail/impl/resolver_service_base.ipp \ asio/detail/impl/scheduler.ipp \ @@ -119,10 +149,12 @@ nobase_include_HEADERS = \ asio/detail/impl/strand_executor_service.ipp \ asio/detail/impl/strand_service.hpp \ asio/detail/impl/strand_service.ipp \ + asio/detail/impl/thread_context.ipp \ asio/detail/impl/throw_error.ipp \ asio/detail/impl/timer_queue_ptime.ipp \ asio/detail/impl/timer_queue_set.ipp \ asio/detail/impl/win_event.ipp \ + asio/detail/impl/win_iocp_file_service.ipp \ asio/detail/impl/win_iocp_handle_service.ipp \ asio/detail/impl/win_iocp_io_context.hpp \ asio/detail/impl/win_iocp_io_context.ipp \ @@ -137,8 +169,30 @@ nobase_include_HEADERS = \ asio/detail/impl/win_static_mutex.ipp \ asio/detail/impl/win_thread.ipp \ asio/detail/impl/win_tss_ptr.ipp \ + asio/detail/initiate_defer.hpp \ + asio/detail/initiate_dispatch.hpp \ + asio/detail/initiate_post.hpp \ asio/detail/io_control.hpp \ asio/detail/io_object_impl.hpp \ + asio/detail/io_uring_descriptor_read_at_op.hpp \ + asio/detail/io_uring_descriptor_read_op.hpp \ + asio/detail/io_uring_descriptor_service.hpp \ + asio/detail/io_uring_descriptor_write_at_op.hpp \ + asio/detail/io_uring_descriptor_write_op.hpp \ + asio/detail/io_uring_file_service.hpp \ + asio/detail/io_uring_null_buffers_op.hpp \ + asio/detail/io_uring_operation.hpp \ + asio/detail/io_uring_service.hpp \ + asio/detail/io_uring_socket_accept_op.hpp \ + asio/detail/io_uring_socket_connect_op.hpp \ + asio/detail/io_uring_socket_recvfrom_op.hpp \ + asio/detail/io_uring_socket_recvmsg_op.hpp \ + asio/detail/io_uring_socket_recv_op.hpp \ + asio/detail/io_uring_socket_send_op.hpp \ + asio/detail/io_uring_socket_sendto_op.hpp \ + asio/detail/io_uring_socket_service_base.hpp \ + asio/detail/io_uring_socket_service.hpp \ + asio/detail/io_uring_wait_op.hpp \ asio/detail/is_buffer_sequence.hpp \ asio/detail/is_executor.hpp \ asio/detail/keyword_tss_ptr.hpp \ @@ -170,6 +224,7 @@ nobase_include_HEADERS = \ asio/detail/posix_fd_set_adapter.hpp \ asio/detail/posix_global.hpp \ asio/detail/posix_mutex.hpp \ + asio/detail/posix_serial_port_service.hpp \ asio/detail/posix_signal_blocker.hpp \ asio/detail/posix_static_mutex.hpp \ asio/detail/posix_thread.hpp \ @@ -177,7 +232,6 @@ nobase_include_HEADERS = \ asio/detail/push_options.hpp \ asio/detail/reactive_descriptor_service.hpp \ asio/detail/reactive_null_buffers_op.hpp \ - asio/detail/reactive_serial_port_service.hpp \ asio/detail/reactive_socket_accept_op.hpp \ asio/detail/reactive_socket_connect_op.hpp \ asio/detail/reactive_socket_recvfrom_op.hpp \ @@ -188,7 +242,6 @@ nobase_include_HEADERS = \ asio/detail/reactive_socket_service_base.hpp \ asio/detail/reactive_socket_service.hpp \ asio/detail/reactive_wait_op.hpp \ - asio/detail/reactor_fwd.hpp \ asio/detail/reactor.hpp \ asio/detail/reactor_op.hpp \ asio/detail/reactor_op_queue.hpp \ @@ -201,6 +254,7 @@ nobase_include_HEADERS = \ asio/detail/resolver_service.hpp \ asio/detail/scheduler.hpp \ asio/detail/scheduler_operation.hpp \ + asio/detail/scheduler_task.hpp \ asio/detail/scheduler_thread_info.hpp \ asio/detail/scoped_lock.hpp \ asio/detail/scoped_ptr.hpp \ @@ -243,6 +297,7 @@ nobase_include_HEADERS = \ asio/detail/timer_scheduler.hpp \ asio/detail/tss_ptr.hpp \ asio/detail/type_traits.hpp \ + asio/detail/utility.hpp \ asio/detail/variadic_templates.hpp \ asio/detail/wait_handler.hpp \ asio/detail/wait_op.hpp \ @@ -252,6 +307,7 @@ nobase_include_HEADERS = \ asio/detail/win_fd_set_adapter.hpp \ asio/detail/win_fenced_block.hpp \ asio/detail/win_global.hpp \ + asio/detail/win_iocp_file_service.hpp \ asio/detail/win_iocp_handle_read_op.hpp \ asio/detail/win_iocp_handle_service.hpp \ asio/detail/win_iocp_handle_write_op.hpp \ @@ -309,8 +365,8 @@ nobase_include_HEADERS = \ asio/execution/detail/as_operation.hpp \ asio/execution/detail/as_receiver.hpp \ asio/execution/detail/bulk_sender.hpp \ - asio/execution/detail/void_receiver.hpp \ asio/execution/detail/submit_receiver.hpp \ + asio/execution/detail/void_receiver.hpp \ asio/execution/execute.hpp \ asio/execution/executor.hpp \ asio/execution/impl/bad_executor.ipp \ @@ -334,6 +390,49 @@ nobase_include_HEADERS = \ asio/execution/submit.hpp \ asio/executor.hpp \ asio/executor_work_guard.hpp \ + asio/experimental/append.hpp \ + asio/experimental/as_single.hpp \ + asio/experimental/as_tuple.hpp \ + asio/experimental/awaitable_operators.hpp \ + asio/experimental/basic_channel.hpp \ + asio/experimental/basic_concurrent_channel.hpp \ + asio/experimental/cancellation_condition.hpp \ + asio/experimental/channel.hpp \ + asio/experimental/channel_error.hpp \ + asio/experimental/channel_traits.hpp \ + asio/experimental/co_composed.hpp \ + asio/experimental/co_spawn.hpp \ + asio/experimental/concurrent_channel.hpp \ + asio/experimental/coro.hpp \ + asio/experimental/coro_traits.hpp \ + asio/experimental/deferred.hpp \ + asio/experimental/detail/channel_handler.hpp \ + asio/experimental/detail/channel_message.hpp \ + asio/experimental/detail/channel_operation.hpp \ + asio/experimental/detail/channel_payload.hpp \ + asio/experimental/detail/channel_receive_op.hpp \ + asio/experimental/detail/channel_send_functions.hpp \ + asio/experimental/detail/channel_send_op.hpp \ + asio/experimental/detail/channel_service.hpp \ + asio/experimental/detail/coro_completion_handler.hpp \ + asio/experimental/detail/coro_promise_allocator.hpp \ + asio/experimental/detail/has_signature.hpp \ + asio/experimental/detail/impl/channel_service.hpp \ + asio/experimental/detail/partial_promise.hpp \ + asio/experimental/impl/as_single.hpp \ + asio/experimental/impl/channel_error.ipp \ + asio/experimental/impl/co_composed.hpp \ + asio/experimental/impl/coro.hpp \ + asio/experimental/impl/parallel_group.hpp \ + asio/experimental/impl/promise.hpp \ + asio/experimental/impl/use_coro.hpp \ + asio/experimental/impl/use_promise.hpp \ + asio/experimental/parallel_group.hpp \ + asio/experimental/prepend.hpp \ + asio/experimental/promise.hpp \ + asio/experimental/use_coro.hpp \ + asio/experimental/use_promise.hpp \ + asio/file_base.hpp \ asio/generic/basic_endpoint.hpp \ asio/generic/datagram_protocol.hpp \ asio/generic/detail/endpoint.hpp \ @@ -346,15 +445,21 @@ nobase_include_HEADERS = \ asio/handler_invoke_hook.hpp \ asio/high_resolution_timer.hpp \ asio.hpp \ + asio/impl/any_completion_executor.ipp \ + asio/impl/any_io_executor.ipp \ + asio/impl/append.hpp \ + asio/impl/as_tuple.hpp \ asio/impl/awaitable.hpp \ asio/impl/buffered_read_stream.hpp \ asio/impl/buffered_write_stream.hpp \ + asio/impl/cancellation_signal.ipp \ asio/impl/co_spawn.hpp \ - asio/impl/compose.hpp \ asio/impl/connect.hpp \ - asio/impl/defer.hpp \ + asio/impl/connect_pipe.hpp \ + asio/impl/connect_pipe.ipp \ + asio/impl/consign.hpp \ + asio/impl/deferred.hpp \ asio/impl/detached.hpp \ - asio/impl/dispatch.hpp \ asio/impl/error_code.ipp \ asio/impl/error.ipp \ asio/impl/execution_context.hpp \ @@ -365,7 +470,7 @@ nobase_include_HEADERS = \ asio/impl/io_context.hpp \ asio/impl/io_context.ipp \ asio/impl/multiple_exceptions.ipp \ - asio/impl/post.hpp \ + asio/impl/prepend.hpp \ asio/impl/read_at.hpp \ asio/impl/read.hpp \ asio/impl/read_until.hpp \ @@ -373,7 +478,6 @@ nobase_include_HEADERS = \ asio/impl/serial_port_base.hpp \ asio/impl/serial_port_base.ipp \ asio/impl/spawn.hpp \ - asio/impl/src.cpp \ asio/impl/src.hpp \ asio/impl/system_context.hpp \ asio/impl/system_context.ipp \ @@ -429,6 +533,7 @@ nobase_include_HEADERS = \ asio/ip/unicast.hpp \ asio/ip/v6_only.hpp \ asio/is_applicable_property.hpp \ + asio/is_contiguous_iterator.hpp \ asio/is_executor.hpp \ asio/is_read_buffered.hpp \ asio/is_write_buffered.hpp \ @@ -437,6 +542,7 @@ nobase_include_HEADERS = \ asio/local/datagram_protocol.hpp \ asio/local/detail/endpoint.hpp \ asio/local/detail/impl/endpoint.ipp \ + asio/local/seq_packet_protocol.hpp \ asio/local/stream_protocol.hpp \ asio/multiple_exceptions.hpp \ asio/packaged_task.hpp \ @@ -448,15 +554,21 @@ nobase_include_HEADERS = \ asio/posix/stream_descriptor.hpp \ asio/post.hpp \ asio/prefer.hpp \ + asio/prepend.hpp \ asio/query.hpp \ + asio/random_access_file.hpp \ asio/read_at.hpp \ asio/read.hpp \ asio/read_until.hpp \ + asio/readable_pipe.hpp \ + asio/recycling_allocator.hpp \ asio/redirect_error.hpp \ + asio/registered_buffer.hpp \ asio/require.hpp \ asio/require_concept.hpp \ asio/serial_port_base.hpp \ asio/serial_port.hpp \ + asio/signal_set_base.hpp \ asio/signal_set.hpp \ asio/socket_base.hpp \ asio/spawn.hpp \ @@ -494,6 +606,7 @@ nobase_include_HEADERS = \ asio/steady_timer.hpp \ asio/strand.hpp \ asio/streambuf.hpp \ + asio/stream_file.hpp \ asio/system_context.hpp \ asio/system_error.hpp \ asio/system_executor.hpp \ @@ -556,6 +669,7 @@ nobase_include_HEADERS = \ asio/windows/overlapped_ptr.hpp \ asio/windows/random_access_handle.hpp \ asio/windows/stream_handle.hpp \ + asio/writable_pipe.hpp \ asio/write_at.hpp \ asio/write.hpp \ asio/yield.hpp diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio.hpp index 345aec71e..a973ab178 100644 --- a/tidal-link/link/modules/asio-standalone/asio/include/asio.hpp +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio.hpp @@ -2,7 +2,7 @@ // asio.hpp // ~~~~~~~~ // -// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -15,14 +15,25 @@ # pragma once #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) +#include "asio/any_completion_executor.hpp" +#include "asio/any_completion_handler.hpp" +#include "asio/any_io_executor.hpp" +#include "asio/append.hpp" +#include "asio/as_tuple.hpp" #include "asio/associated_allocator.hpp" +#include "asio/associated_cancellation_slot.hpp" #include "asio/associated_executor.hpp" +#include "asio/associated_immediate_executor.hpp" +#include "asio/associator.hpp" #include "asio/async_result.hpp" #include "asio/awaitable.hpp" #include "asio/basic_datagram_socket.hpp" #include "asio/basic_deadline_timer.hpp" +#include "asio/basic_file.hpp" #include "asio/basic_io_object.hpp" +#include "asio/basic_random_access_file.hpp" #include "asio/basic_raw_socket.hpp" +#include "asio/basic_readable_pipe.hpp" #include "asio/basic_seq_packet_socket.hpp" #include "asio/basic_serial_port.hpp" #include "asio/basic_signal_set.hpp" @@ -30,11 +41,17 @@ #include "asio/basic_socket_acceptor.hpp" #include "asio/basic_socket_iostream.hpp" #include "asio/basic_socket_streambuf.hpp" +#include "asio/basic_stream_file.hpp" #include "asio/basic_stream_socket.hpp" #include "asio/basic_streambuf.hpp" #include "asio/basic_waitable_timer.hpp" +#include "asio/basic_writable_pipe.hpp" +#include "asio/bind_allocator.hpp" +#include "asio/bind_cancellation_slot.hpp" #include "asio/bind_executor.hpp" +#include "asio/bind_immediate_executor.hpp" #include "asio/buffer.hpp" +#include "asio/buffer_registration.hpp" #include "asio/buffered_read_stream_fwd.hpp" #include "asio/buffered_read_stream.hpp" #include "asio/buffered_stream_fwd.hpp" @@ -42,13 +59,19 @@ #include "asio/buffered_write_stream_fwd.hpp" #include "asio/buffered_write_stream.hpp" #include "asio/buffers_iterator.hpp" +#include "asio/cancellation_signal.hpp" +#include "asio/cancellation_state.hpp" +#include "asio/cancellation_type.hpp" #include "asio/co_spawn.hpp" #include "asio/completion_condition.hpp" #include "asio/compose.hpp" #include "asio/connect.hpp" +#include "asio/connect_pipe.hpp" +#include "asio/consign.hpp" #include "asio/coroutine.hpp" #include "asio/deadline_timer.hpp" #include "asio/defer.hpp" +#include "asio/deferred.hpp" #include "asio/detached.hpp" #include "asio/dispatch.hpp" #include "asio/error.hpp" @@ -84,6 +107,7 @@ #include "asio/execution_context.hpp" #include "asio/executor.hpp" #include "asio/executor_work_guard.hpp" +#include "asio/file_base.hpp" #include "asio/generic/basic_endpoint.hpp" #include "asio/generic/datagram_protocol.hpp" #include "asio/generic/raw_protocol.hpp" @@ -122,12 +146,14 @@ #include "asio/ip/unicast.hpp" #include "asio/ip/v6_only.hpp" #include "asio/is_applicable_property.hpp" +#include "asio/is_contiguous_iterator.hpp" #include "asio/is_executor.hpp" #include "asio/is_read_buffered.hpp" #include "asio/is_write_buffered.hpp" #include "asio/local/basic_endpoint.hpp" #include "asio/local/connect_pair.hpp" #include "asio/local/datagram_protocol.hpp" +#include "asio/local/seq_packet_protocol.hpp" #include "asio/local/stream_protocol.hpp" #include "asio/multiple_exceptions.hpp" #include "asio/packaged_task.hpp" @@ -139,20 +165,27 @@ #include "asio/posix/stream_descriptor.hpp" #include "asio/post.hpp" #include "asio/prefer.hpp" +#include "asio/prepend.hpp" #include "asio/query.hpp" +#include "asio/random_access_file.hpp" #include "asio/read.hpp" #include "asio/read_at.hpp" #include "asio/read_until.hpp" +#include "asio/readable_pipe.hpp" +#include "asio/recycling_allocator.hpp" #include "asio/redirect_error.hpp" +#include "asio/registered_buffer.hpp" #include "asio/require.hpp" #include "asio/require_concept.hpp" #include "asio/serial_port.hpp" #include "asio/serial_port_base.hpp" #include "asio/signal_set.hpp" +#include "asio/signal_set_base.hpp" #include "asio/socket_base.hpp" #include "asio/static_thread_pool.hpp" #include "asio/steady_timer.hpp" #include "asio/strand.hpp" +#include "asio/stream_file.hpp" #include "asio/streambuf.hpp" #include "asio/system_context.hpp" #include "asio/system_error.hpp" @@ -176,6 +209,7 @@ #include "asio/windows/overlapped_ptr.hpp" #include "asio/windows/random_access_handle.hpp" #include "asio/windows/stream_handle.hpp" +#include "asio/writable_pipe.hpp" #include "asio/write.hpp" #include "asio/write_at.hpp" diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/any_completion_executor.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/any_completion_executor.hpp new file mode 100644 index 000000000..420927cc1 --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/any_completion_executor.hpp @@ -0,0 +1,342 @@ +// +// any_completion_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_COMPLETION_EXECUTOR_HPP +#define ASIO_ANY_COMPLETION_EXECUTOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#if defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/executor.hpp" +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/execution.hpp" +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#include "asio/detail/push_options.hpp" + +namespace asio { + +#if defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +typedef executor any_completion_executor; + +#else // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +/// Polymorphic executor type for use with I/O objects. +/** + * The @c any_completion_executor type is a polymorphic executor that supports + * the set of properties required for the execution of completion handlers. It + * is defined as the execution::any_executor class template parameterised as + * follows: + * @code execution::any_executor< + * execution::prefer_only, + * execution::prefer_only + * execution::prefer_only, + * execution::prefer_only + * > @endcode + */ +class any_completion_executor : +#if defined(GENERATING_DOCUMENTATION) + public execution::any_executor<...> +#else // defined(GENERATING_DOCUMENTATION) + public execution::any_executor< + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > +#endif // defined(GENERATING_DOCUMENTATION) +{ +public: +#if !defined(GENERATING_DOCUMENTATION) + typedef execution::any_executor< + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > base_type; + + typedef void supportable_properties_type( + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + ); +#endif // !defined(GENERATING_DOCUMENTATION) + + /// Default constructor. + ASIO_DECL any_completion_executor() ASIO_NOEXCEPT; + + /// Construct in an empty state. Equivalent effects to default constructor. + ASIO_DECL any_completion_executor(nullptr_t) ASIO_NOEXCEPT; + + /// Copy constructor. + ASIO_DECL any_completion_executor( + const any_completion_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move constructor. + ASIO_DECL any_completion_executor( + any_completion_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor( + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_completion_executor(std::nothrow_t, + const any_completion_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_completion_executor(std::nothrow_t, + any_completion_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_completion_executor(std::nothrow_t, Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Assignment operator. + ASIO_DECL any_completion_executor& operator=( + const any_completion_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move assignment operator. + ASIO_DECL any_completion_executor& operator=( + any_completion_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + ASIO_DECL any_completion_executor& operator=(nullptr_t); + + /// Destructor. + ASIO_DECL ~any_completion_executor(); + + /// Swap targets with another polymorphic wrapper. + ASIO_DECL void swap(any_completion_executor& other) ASIO_NOEXCEPT; + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::require and asio::prefer customisation points. + * + * For example: + * @code any_completion_executor ex = ...; + * auto ex2 = asio::require(ex, execution::relationship.fork); @endcode + */ + template + any_completion_executor require(const Property& p, + typename constraint< + traits::require_member::is_valid + >::type = 0) const + { + return static_cast(*this).require(p); + } + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::prefer customisation point. + * + * For example: + * @code any_completion_executor ex = ...; + * auto ex2 = asio::prefer(ex, execution::relationship.fork); @endcode + */ + template + any_completion_executor prefer(const Property& p, + typename constraint< + traits::prefer_member::is_valid + >::type = 0) const + { + return static_cast(*this).prefer(p); + } +}; + +#if !defined(GENERATING_DOCUMENTATION) + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::outstanding_work_t::tracked_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::outstanding_work_t::untracked_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::relationship_t::fork_t&, int) const; + +template <> +ASIO_DECL any_completion_executor any_completion_executor::prefer( + const execution::relationship_t::continuation_t&, int) const; + +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable +{ + static const bool is_valid = true; + static const bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template +struct execute_member +{ + static const bool is_valid = true; + static const bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +template +struct query_member : + query_member +{ +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +template +struct require_member : + require_member +{ + typedef any_completion_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +template +struct prefer_member : + prefer_member +{ + typedef any_completion_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +} // namespace traits + +#endif // !defined(GENERATING_DOCUMENTATION) + +#endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#if defined(ASIO_HEADER_ONLY) \ + && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/impl/any_completion_executor.ipp" +#endif // defined(ASIO_HEADER_ONLY) + // && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + +#endif // ASIO_ANY_COMPLETION_EXECUTOR_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/any_completion_handler.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/any_completion_handler.hpp new file mode 100644 index 000000000..cd114537f --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/any_completion_handler.hpp @@ -0,0 +1,762 @@ +// +// any_completion_handler.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ANY_COMPLETION_HANDLER_HPP +#define ASIO_ANY_COMPLETION_HANDLER_HPP + +#include "asio/detail/config.hpp" + +#if (defined(ASIO_HAS_STD_TUPLE) \ + && defined(ASIO_HAS_MOVE) \ + && defined(ASIO_HAS_VARIADIC_TEMPLATES)) \ + || defined(GENERATING_DOCUMENTATION) + +#include +#include +#include +#include +#include "asio/any_completion_executor.hpp" +#include "asio/associated_allocator.hpp" +#include "asio/associated_cancellation_slot.hpp" +#include "asio/associated_executor.hpp" +#include "asio/cancellation_state.hpp" +#include "asio/recycling_allocator.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { +namespace detail { + +class any_completion_handler_impl_base +{ +public: + template + explicit any_completion_handler_impl_base(S&& slot) + : cancel_state_(ASIO_MOVE_CAST(S)(slot), enable_total_cancellation()) + { + } + + cancellation_slot get_cancellation_slot() const ASIO_NOEXCEPT + { + return cancel_state_.slot(); + } + +private: + cancellation_state cancel_state_; +}; + +template +class any_completion_handler_impl : + public any_completion_handler_impl_base +{ +public: + template + any_completion_handler_impl(S&& slot, H&& h) + : any_completion_handler_impl_base(ASIO_MOVE_CAST(S)(slot)), + handler_(ASIO_MOVE_CAST(H)(h)) + { + } + + struct uninit_deleter + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc; + + void operator()(any_completion_handler_impl* ptr) + { + std::allocator_traits::deallocate(alloc, ptr, 1); + } + }; + + struct deleter + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc; + + void operator()(any_completion_handler_impl* ptr) + { + std::allocator_traits::destroy(alloc, ptr); + std::allocator_traits::deallocate(alloc, ptr, 1); + } + }; + + template + static any_completion_handler_impl* create(S&& slot, H&& h) + { + uninit_deleter d{ + (get_associated_allocator)(h, + asio::recycling_allocator())}; + + std::unique_ptr uninit_ptr( + std::allocator_traits::allocate(d.alloc, 1), d); + + any_completion_handler_impl* ptr = + new (uninit_ptr.get()) any_completion_handler_impl( + ASIO_MOVE_CAST(S)(slot), ASIO_MOVE_CAST(H)(h)); + + uninit_ptr.release(); + return ptr; + } + + void destroy() + { + deleter d{ + (get_associated_allocator)(handler_, + asio::recycling_allocator())}; + + d(this); + } + + any_completion_executor executor( + const any_completion_executor& candidate) const ASIO_NOEXCEPT + { + return any_completion_executor(std::nothrow, + (get_associated_executor)(handler_, candidate)); + } + + void* allocate(std::size_t size, std::size_t align) const + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc( + (get_associated_allocator)(handler_, + asio::recycling_allocator())); + + std::size_t space = size + align - 1; + unsigned char* base = + std::allocator_traits::allocate( + alloc, space + sizeof(std::ptrdiff_t)); + + void* p = base; + if (detail::align(align, size, p, space)) + { + std::ptrdiff_t off = static_cast(p) - base; + std::memcpy(static_cast(p) + size, &off, sizeof(off)); + return p; + } + + std::bad_alloc ex; + asio::detail::throw_exception(ex); + return nullptr; + } + + void deallocate(void* p, std::size_t size, std::size_t align) const + { + if (p) + { + typename std::allocator_traits< + associated_allocator_t>>::template + rebind_alloc alloc( + (get_associated_allocator)(handler_, + asio::recycling_allocator())); + + std::ptrdiff_t off; + std::memcpy(&off, static_cast(p) + size, sizeof(off)); + unsigned char* base = static_cast(p) - off; + + std::allocator_traits::deallocate( + alloc, base, size + align -1 + sizeof(std::ptrdiff_t)); + } + } + + template + void call(Args&&... args) + { + deleter d{ + (get_associated_allocator)(handler_, + asio::recycling_allocator())}; + + std::unique_ptr ptr(this, d); + Handler handler(ASIO_MOVE_CAST(Handler)(handler_)); + ptr.reset(); + + ASIO_MOVE_CAST(Handler)(handler)( + ASIO_MOVE_CAST(Args)(args)...); + } + +private: + Handler handler_; +}; + +template +class any_completion_handler_call_fn; + +template +class any_completion_handler_call_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*, Args...); + + constexpr any_completion_handler_call_fn(type fn) + : call_fn_(fn) + { + } + + void call(any_completion_handler_impl_base* impl, Args... args) const + { + call_fn_(impl, ASIO_MOVE_CAST(Args)(args)...); + } + + template + static void impl(any_completion_handler_impl_base* impl, Args... args) + { + static_cast*>(impl)->call( + ASIO_MOVE_CAST(Args)(args)...); + } + +private: + type call_fn_; +}; + +template +class any_completion_handler_call_fns; + +template +class any_completion_handler_call_fns : + public any_completion_handler_call_fn +{ +public: + using any_completion_handler_call_fn< + Signature>::any_completion_handler_call_fn; + using any_completion_handler_call_fn::call; +}; + +template +class any_completion_handler_call_fns : + public any_completion_handler_call_fn, + public any_completion_handler_call_fns +{ +public: + template + constexpr any_completion_handler_call_fns(CallFn fn, CallFns... fns) + : any_completion_handler_call_fn(fn), + any_completion_handler_call_fns(fns...) + { + } + + using any_completion_handler_call_fn::call; + using any_completion_handler_call_fns::call; +}; + +class any_completion_handler_destroy_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*); + + constexpr any_completion_handler_destroy_fn(type fn) + : destroy_fn_(fn) + { + } + + void destroy(any_completion_handler_impl_base* impl) const + { + destroy_fn_(impl); + } + + template + static void impl(any_completion_handler_impl_base* impl) + { + static_cast*>(impl)->destroy(); + } + +private: + type destroy_fn_; +}; + +class any_completion_handler_executor_fn +{ +public: + using type = any_completion_executor(*)( + any_completion_handler_impl_base*, const any_completion_executor&); + + constexpr any_completion_handler_executor_fn(type fn) + : executor_fn_(fn) + { + } + + any_completion_executor executor(any_completion_handler_impl_base* impl, + const any_completion_executor& candidate) const + { + return executor_fn_(impl, candidate); + } + + template + static any_completion_executor impl(any_completion_handler_impl_base* impl, + const any_completion_executor& candidate) + { + return static_cast*>(impl)->executor( + candidate); + } + +private: + type executor_fn_; +}; + +class any_completion_handler_allocate_fn +{ +public: + using type = void*(*)(any_completion_handler_impl_base*, + std::size_t, std::size_t); + + constexpr any_completion_handler_allocate_fn(type fn) + : allocate_fn_(fn) + { + } + + void* allocate(any_completion_handler_impl_base* impl, + std::size_t size, std::size_t align) const + { + return allocate_fn_(impl, size, align); + } + + template + static void* impl(any_completion_handler_impl_base* impl, + std::size_t size, std::size_t align) + { + return static_cast*>(impl)->allocate( + size, align); + } + +private: + type allocate_fn_; +}; + +class any_completion_handler_deallocate_fn +{ +public: + using type = void(*)(any_completion_handler_impl_base*, + void*, std::size_t, std::size_t); + + constexpr any_completion_handler_deallocate_fn(type fn) + : deallocate_fn_(fn) + { + } + + void deallocate(any_completion_handler_impl_base* impl, + void* p, std::size_t size, std::size_t align) const + { + deallocate_fn_(impl, p, size, align); + } + + template + static void impl(any_completion_handler_impl_base* impl, + void* p, std::size_t size, std::size_t align) + { + static_cast*>(impl)->deallocate( + p, size, align); + } + +private: + type deallocate_fn_; +}; + +template +class any_completion_handler_fn_table + : private any_completion_handler_destroy_fn, + private any_completion_handler_executor_fn, + private any_completion_handler_allocate_fn, + private any_completion_handler_deallocate_fn, + private any_completion_handler_call_fns +{ +public: + template + constexpr any_completion_handler_fn_table( + any_completion_handler_destroy_fn::type destroy_fn, + any_completion_handler_executor_fn::type executor_fn, + any_completion_handler_allocate_fn::type allocate_fn, + any_completion_handler_deallocate_fn::type deallocate_fn, + CallFns... call_fns) + : any_completion_handler_destroy_fn(destroy_fn), + any_completion_handler_executor_fn(executor_fn), + any_completion_handler_allocate_fn(allocate_fn), + any_completion_handler_deallocate_fn(deallocate_fn), + any_completion_handler_call_fns(call_fns...) + { + } + + using any_completion_handler_destroy_fn::destroy; + using any_completion_handler_executor_fn::executor; + using any_completion_handler_allocate_fn::allocate; + using any_completion_handler_deallocate_fn::deallocate; + using any_completion_handler_call_fns::call; +}; + +template +struct any_completion_handler_fn_table_instance +{ + static constexpr any_completion_handler_fn_table + value = any_completion_handler_fn_table( + &any_completion_handler_destroy_fn::impl, + &any_completion_handler_executor_fn::impl, + &any_completion_handler_allocate_fn::impl, + &any_completion_handler_deallocate_fn::impl, + &any_completion_handler_call_fn::template impl...); +}; + +template +constexpr any_completion_handler_fn_table +any_completion_handler_fn_table_instance::value; + +} // namespace detail + +template +class any_completion_handler; + +/// An allocator type that forwards memory allocation operations through an +/// instance of @c any_completion_handler. +template +class any_completion_handler_allocator +{ +private: + template + friend class any_completion_handler; + + template + friend class any_completion_handler_allocator; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; + + constexpr any_completion_handler_allocator(int, + const any_completion_handler& h) ASIO_NOEXCEPT + : fn_table_(h.fn_table_), + impl_(h.impl_) + { + } + +public: + /// The type of objects that may be allocated by the allocator. + typedef T value_type; + + /// Rebinds an allocator to another value type. + template + struct rebind + { + /// Specifies the type of the rebound allocator. + typedef any_completion_handler_allocator other; + }; + + /// Construct from another @c any_completion_handler_allocator. + template + constexpr any_completion_handler_allocator( + const any_completion_handler_allocator& a) + ASIO_NOEXCEPT + : fn_table_(a.fn_table_), + impl_(a.impl_) + { + } + + /// Equality operator. + constexpr bool operator==( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ == other.fn_table_ && impl_ == other.impl_; + } + + /// Inequality operator. + constexpr bool operator!=( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ != other.fn_table_ || impl_ != other.impl_; + } + + /// Allocate space for @c n objects of the allocator's value type. + T* allocate(std::size_t n) const + { + return static_cast( + fn_table_->allocate( + impl_, sizeof(T) * n, alignof(T))); + } + + /// Deallocate space for @c n objects of the allocator's value type. + void deallocate(T* p, std::size_t n) const + { + fn_table_->deallocate(impl_, p, sizeof(T) * n, alignof(T)); + } +}; + +/// A protoco-allocator type that may be rebound to obtain an allocator that +/// forwards memory allocation operations through an instance of +/// @c any_completion_handler. +template +class any_completion_handler_allocator +{ +private: + template + friend class any_completion_handler; + + template + friend class any_completion_handler_allocator; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; + + constexpr any_completion_handler_allocator(int, + const any_completion_handler& h) ASIO_NOEXCEPT + : fn_table_(h.fn_table_), + impl_(h.impl_) + { + } + +public: + /// @c void as no objects can be allocated through a proto-allocator. + typedef void value_type; + + /// Rebinds an allocator to another value type. + template + struct rebind + { + /// Specifies the type of the rebound allocator. + typedef any_completion_handler_allocator other; + }; + + /// Construct from another @c any_completion_handler_allocator. + template + constexpr any_completion_handler_allocator( + const any_completion_handler_allocator& a) + ASIO_NOEXCEPT + : fn_table_(a.fn_table_), + impl_(a.impl_) + { + } + + /// Equality operator. + constexpr bool operator==( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ == other.fn_table_ && impl_ == other.impl_; + } + + /// Inequality operator. + constexpr bool operator!=( + const any_completion_handler_allocator& other) const ASIO_NOEXCEPT + { + return fn_table_ != other.fn_table_ || impl_ != other.impl_; + } +}; + +/// Polymorphic wrapper for completion handlers. +/** + * The @c any_completion_handler class template is a polymorphic wrapper for + * completion handlers that propagates the associated executor, associated + * allocator, and associated cancellation slot through a type-erasing interface. + * + * When using @c any_completion_handler, specify one or more completion + * signatures as template parameters. These will dictate the arguments that may + * be passed to the handler through the polymorphic interface. + * + * Typical uses for @c any_completion_handler include: + * + * @li Separate compilation of asynchronous operation implementations. + * + * @li Enabling interoperability between asynchronous operations and virtual + * functions. + */ +template +class any_completion_handler +{ +#if !defined(GENERATING_DOCUMENTATION) +private: + template + friend class any_completion_handler_allocator; + + template + friend struct associated_executor; + + const detail::any_completion_handler_fn_table* fn_table_; + detail::any_completion_handler_impl_base* impl_; +#endif // !defined(GENERATING_DOCUMENTATION) + +public: + /// The associated allocator type. + using allocator_type = any_completion_handler_allocator; + + /// The associated cancellation slot type. + using cancellation_slot_type = cancellation_slot; + + /// Construct an @c any_completion_handler in an empty state, without a target + /// object. + constexpr any_completion_handler() + : fn_table_(nullptr), + impl_(nullptr) + { + } + + /// Construct an @c any_completion_handler in an empty state, without a target + /// object. + constexpr any_completion_handler(nullptr_t) + : fn_table_(nullptr), + impl_(nullptr) + { + } + + /// Construct an @c any_completion_handler to contain the specified target. + template ::type> + any_completion_handler(H&& h, + typename constraint< + !is_same::type, any_completion_handler>::value + >::type = 0) + : fn_table_( + &detail::any_completion_handler_fn_table_instance< + Handler, Signatures...>::value), + impl_(detail::any_completion_handler_impl::create( + (get_associated_cancellation_slot)(h), ASIO_MOVE_CAST(H)(h))) + { + } + + /// Move-construct an @c any_completion_handler from another. + /** + * After the operation, the moved-from object @c other has no target. + */ + any_completion_handler(any_completion_handler&& other) ASIO_NOEXCEPT + : fn_table_(other.fn_table_), + impl_(other.impl_) + { + other.fn_table_ = nullptr; + other.impl_ = nullptr; + } + + /// Move-assign an @c any_completion_handler from another. + /** + * After the operation, the moved-from object @c other has no target. + */ + any_completion_handler& operator=( + any_completion_handler&& other) ASIO_NOEXCEPT + { + any_completion_handler( + ASIO_MOVE_CAST(any_completion_handler)(other)).swap(*this); + return *this; + } + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + any_completion_handler& operator=(nullptr_t) ASIO_NOEXCEPT + { + any_completion_handler().swap(*this); + return *this; + } + + /// Destructor. + ~any_completion_handler() + { + if (impl_) + fn_table_->destroy(impl_); + } + + /// Test if the polymorphic wrapper is empty. + constexpr explicit operator bool() const ASIO_NOEXCEPT + { + return impl_ != nullptr; + } + + /// Test if the polymorphic wrapper is non-empty. + constexpr bool operator!() const ASIO_NOEXCEPT + { + return impl_ == nullptr; + } + + /// Swap the content of an @c any_completion_handler with another. + void swap(any_completion_handler& other) ASIO_NOEXCEPT + { + std::swap(fn_table_, other.fn_table_); + std::swap(impl_, other.impl_); + } + + /// Get the associated allocator. + allocator_type get_allocator() const ASIO_NOEXCEPT + { + return allocator_type(0, *this); + } + + /// Get the associated cancellation slot. + cancellation_slot_type get_cancellation_slot() const ASIO_NOEXCEPT + { + return impl_->get_cancellation_slot(); + } + + /// Function call operator. + /** + * Invokes target completion handler with the supplied arguments. + * + * This function may only be called once, as the target handler is moved from. + * The polymorphic wrapper is left in an empty state. + * + * Throws @c std::bad_function_call if the polymorphic wrapper is empty. + */ + template + auto operator()(Args&&... args) + -> decltype(fn_table_->call(impl_, ASIO_MOVE_CAST(Args)(args)...)) + { + if (detail::any_completion_handler_impl_base* impl = impl_) + { + impl_ = nullptr; + return fn_table_->call(impl, ASIO_MOVE_CAST(Args)(args)...); + } + std::bad_function_call ex; + asio::detail::throw_exception(ex); + } + + /// Equality operator. + friend constexpr bool operator==( + const any_completion_handler& a, nullptr_t) ASIO_NOEXCEPT + { + return a.impl_ == nullptr; + } + + /// Equality operator. + friend constexpr bool operator==( + nullptr_t, const any_completion_handler& b) ASIO_NOEXCEPT + { + return nullptr == b.impl_; + } + + /// Inequality operator. + friend constexpr bool operator!=( + const any_completion_handler& a, nullptr_t) ASIO_NOEXCEPT + { + return a.impl_ != nullptr; + } + + /// Inequality operator. + friend constexpr bool operator!=( + nullptr_t, const any_completion_handler& b) ASIO_NOEXCEPT + { + return nullptr != b.impl_; + } +}; + +template +struct associated_executor, Candidate> +{ + using type = any_completion_executor; + + static type get(const any_completion_handler& handler, + const Candidate& candidate = Candidate()) ASIO_NOEXCEPT + { + return handler.fn_table_->executor(handler.impl_, + any_completion_executor(std::nothrow, candidate)); + } +}; + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // (defined(ASIO_HAS_STD_TUPLE) + // && defined(ASIO_HAS_MOVE) + // && defined(ASIO_HAS_VARIADIC_TEMPLATES)) + // || defined(GENERATING_DOCUMENTATION) + +#endif // ASIO_ANY_COMPLETION_HANDLER_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/any_io_executor.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/any_io_executor.hpp index 3a4d13b6c..7a77c90d1 100644 --- a/tidal-link/link/modules/asio-standalone/asio/include/asio/any_io_executor.hpp +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/any_io_executor.hpp @@ -2,7 +2,7 @@ // any_io_executor.hpp // ~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -48,19 +48,301 @@ typedef executor any_io_executor; * execution::prefer_only * > @endcode */ +class any_io_executor : #if defined(GENERATING_DOCUMENTATION) -typedef execution::any_executor<...> any_io_executor; + public execution::any_executor<...> #else // defined(GENERATING_DOCUMENTATION) -typedef execution::any_executor< - execution::context_as_t, - execution::blocking_t::never_t, - execution::prefer_only, - execution::prefer_only, - execution::prefer_only, - execution::prefer_only, - execution::prefer_only - > any_io_executor; + public execution::any_executor< + execution::context_as_t, + execution::blocking_t::never_t, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > #endif // defined(GENERATING_DOCUMENTATION) +{ +public: +#if !defined(GENERATING_DOCUMENTATION) + typedef execution::any_executor< + execution::context_as_t, + execution::blocking_t::never_t, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + > base_type; + + typedef void supportable_properties_type( + execution::context_as_t, + execution::blocking_t::never_t, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only, + execution::prefer_only + ); +#endif // !defined(GENERATING_DOCUMENTATION) + + /// Default constructor. + ASIO_DECL any_io_executor() ASIO_NOEXCEPT; + + /// Construct in an empty state. Equivalent effects to default constructor. + ASIO_DECL any_io_executor(nullptr_t) ASIO_NOEXCEPT; + + /// Copy constructor. + ASIO_DECL any_io_executor(const any_io_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move constructor. + ASIO_DECL any_io_executor(any_io_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, + execution::any_executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, OtherAnyExecutor e, + typename constraint< + conditional< + !is_same::value + && is_base_of::value, + typename execution::detail::supportable_properties< + 0, supportable_properties_type>::template + is_valid_target, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(OtherAnyExecutor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_io_executor(std::nothrow_t, + const any_io_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Construct to point to the same target as another any_executor. + ASIO_DECL any_io_executor(std::nothrow_t, + any_io_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) + : base_type(ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Construct a polymorphic wrapper for the specified executor. +#if defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, Executor e); +#else // defined(GENERATING_DOCUMENTATION) + template + any_io_executor(std::nothrow_t, Executor e, + typename constraint< + conditional< + !is_same::value + && !is_base_of::value, + execution::detail::is_valid_target_executor< + Executor, supportable_properties_type>, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : base_type(std::nothrow, ASIO_MOVE_CAST(Executor)(e)) + { + } +#endif // defined(GENERATING_DOCUMENTATION) + + /// Assignment operator. + ASIO_DECL any_io_executor& operator=( + const any_io_executor& e) ASIO_NOEXCEPT; + +#if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + /// Move assignment operator. + ASIO_DECL any_io_executor& operator=( + any_io_executor&& e) ASIO_NOEXCEPT; +#endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION) + + /// Assignment operator that sets the polymorphic wrapper to the empty state. + ASIO_DECL any_io_executor& operator=(nullptr_t); + + /// Destructor. + ASIO_DECL ~any_io_executor(); + + /// Swap targets with another polymorphic wrapper. + ASIO_DECL void swap(any_io_executor& other) ASIO_NOEXCEPT; + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::require and asio::prefer customisation points. + * + * For example: + * @code any_io_executor ex = ...; + * auto ex2 = asio::require(ex, execution::blocking.possibly); @endcode + */ + template + any_io_executor require(const Property& p, + typename constraint< + traits::require_member::is_valid + >::type = 0) const + { + return static_cast(*this).require(p); + } + + /// Obtain a polymorphic wrapper with the specified property. + /** + * Do not call this function directly. It is intended for use with the + * asio::prefer customisation point. + * + * For example: + * @code any_io_executor ex = ...; + * auto ex2 = asio::prefer(ex, execution::blocking.possibly); @endcode + */ + template + any_io_executor prefer(const Property& p, + typename constraint< + traits::prefer_member::is_valid + >::type = 0) const + { + return static_cast(*this).prefer(p); + } +}; + +#if !defined(GENERATING_DOCUMENTATION) + +template <> +ASIO_DECL any_io_executor any_io_executor::require( + const execution::blocking_t::never_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::blocking_t::possibly_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::outstanding_work_t::tracked_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::outstanding_work_t::untracked_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::relationship_t::fork_t&, int) const; + +template <> +ASIO_DECL any_io_executor any_io_executor::prefer( + const execution::relationship_t::continuation_t&, int) const; + +namespace traits { + +#if !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +template <> +struct equality_comparable +{ + static const bool is_valid = true; + static const bool is_noexcept = true; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EQUALITY_COMPARABLE_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +template +struct execute_member +{ + static const bool is_valid = true; + static const bool is_noexcept = false; + typedef void result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_EXECUTE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +template +struct query_member : + query_member +{ +}; + +#endif // !defined(ASIO_HAS_DEDUCED_QUERY_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +template +struct require_member : + require_member +{ + typedef any_io_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_REQUIRE_MEMBER_TRAIT) + +#if !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +template +struct prefer_member : + prefer_member +{ + typedef any_io_executor result_type; +}; + +#endif // !defined(ASIO_HAS_DEDUCED_PREFER_MEMBER_TRAIT) + +} // namespace traits + +#endif // !defined(GENERATING_DOCUMENTATION) #endif // defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) @@ -68,4 +350,10 @@ typedef execution::any_executor< #include "asio/detail/pop_options.hpp" +#if defined(ASIO_HEADER_ONLY) \ + && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) +# include "asio/impl/any_io_executor.ipp" +#endif // defined(ASIO_HEADER_ONLY) + // && !defined(ASIO_USE_TS_EXECUTOR_AS_DEFAULT) + #endif // ASIO_ANY_IO_EXECUTOR_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/append.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/append.hpp new file mode 100644 index 000000000..9ac4a9504 --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/append.hpp @@ -0,0 +1,78 @@ +// +// append.hpp +// ~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_APPEND_HPP +#define ASIO_APPEND_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" + +#if (defined(ASIO_HAS_STD_TUPLE) \ + && defined(ASIO_HAS_VARIADIC_TEMPLATES)) \ + || defined(GENERATING_DOCUMENTATION) + +#include +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// Completion token type used to specify that the completion handler +/// arguments should be passed additional values after the results of the +/// operation. +template +class append_t +{ +public: + /// Constructor. + template + ASIO_CONSTEXPR explicit append_t( + ASIO_MOVE_ARG(T) completion_token, + ASIO_MOVE_ARG(V)... values) + : token_(ASIO_MOVE_CAST(T)(completion_token)), + values_(ASIO_MOVE_CAST(V)(values)...) + { + } + +//private: + CompletionToken token_; + std::tuple values_; +}; + +/// Completion token type used to specify that the completion handler +/// arguments should be passed additional values after the results of the +/// operation. +template +ASIO_NODISCARD inline ASIO_CONSTEXPR append_t< + typename decay::type, typename decay::type...> +append(ASIO_MOVE_ARG(CompletionToken) completion_token, + ASIO_MOVE_ARG(Values)... values) +{ + return append_t< + typename decay::type, typename decay::type...>( + ASIO_MOVE_CAST(CompletionToken)(completion_token), + ASIO_MOVE_CAST(Values)(values)...); +} + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#include "asio/impl/append.hpp" + +#endif // (defined(ASIO_HAS_STD_TUPLE) + // && defined(ASIO_HAS_VARIADIC_TEMPLATES)) + // || defined(GENERATING_DOCUMENTATION) + +#endif // ASIO_APPEND_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/as_tuple.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/as_tuple.hpp new file mode 100644 index 000000000..96ac47c82 --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/as_tuple.hpp @@ -0,0 +1,139 @@ +// +// as_tuple.hpp +// ~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_AS_TUPLE_HPP +#define ASIO_AS_TUPLE_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" + +#if (defined(ASIO_HAS_STD_TUPLE) \ + && defined(ASIO_HAS_VARIADIC_TEMPLATES)) \ + || defined(GENERATING_DOCUMENTATION) + +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// A @ref completion_token adapter used to specify that the completion handler +/// arguments should be combined into a single tuple argument. +/** + * The as_tuple_t class is used to indicate that any arguments to the + * completion handler should be combined and passed as a single tuple argument. + * The arguments are first moved into a @c std::tuple and that tuple is then + * passed to the completion handler. + */ +template +class as_tuple_t +{ +public: + /// Tag type used to prevent the "default" constructor from being used for + /// conversions. + struct default_constructor_tag {}; + + /// Default constructor. + /** + * This constructor is only valid if the underlying completion token is + * default constructible and move constructible. The underlying completion + * token is itself defaulted as an argument to allow it to capture a source + * location. + */ + ASIO_CONSTEXPR as_tuple_t( + default_constructor_tag = default_constructor_tag(), + CompletionToken token = CompletionToken()) + : token_(ASIO_MOVE_CAST(CompletionToken)(token)) + { + } + + /// Constructor. + template + ASIO_CONSTEXPR explicit as_tuple_t( + ASIO_MOVE_ARG(T) completion_token) + : token_(ASIO_MOVE_CAST(T)(completion_token)) + { + } + + /// Adapts an executor to add the @c as_tuple_t completion token as the + /// default. + template + struct executor_with_default : InnerExecutor + { + /// Specify @c as_tuple_t as the default completion token type. + typedef as_tuple_t default_completion_token_type; + + /// Construct the adapted executor from the inner executor type. + template + executor_with_default(const InnerExecutor1& ex, + typename constraint< + conditional< + !is_same::value, + is_convertible, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : InnerExecutor(ex) + { + } + }; + + /// Type alias to adapt an I/O object to use @c as_tuple_t as its + /// default completion token type. +#if defined(ASIO_HAS_ALIAS_TEMPLATES) \ + || defined(GENERATING_DOCUMENTATION) + template + using as_default_on_t = typename T::template rebind_executor< + executor_with_default >::other; +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + // || defined(GENERATING_DOCUMENTATION) + + /// Function helper to adapt an I/O object to use @c as_tuple_t as its + /// default completion token type. + template + static typename decay::type::template rebind_executor< + executor_with_default::type::executor_type> + >::other + as_default_on(ASIO_MOVE_ARG(T) object) + { + return typename decay::type::template rebind_executor< + executor_with_default::type::executor_type> + >::other(ASIO_MOVE_CAST(T)(object)); + } + +//private: + CompletionToken token_; +}; + +/// Adapt a @ref completion_token to specify that the completion handler +/// arguments should be combined into a single tuple argument. +template +ASIO_NODISCARD inline +ASIO_CONSTEXPR as_tuple_t::type> +as_tuple(ASIO_MOVE_ARG(CompletionToken) completion_token) +{ + return as_tuple_t::type>( + ASIO_MOVE_CAST(CompletionToken)(completion_token)); +} + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#include "asio/impl/as_tuple.hpp" + +#endif // (defined(ASIO_HAS_STD_TUPLE) + // && defined(ASIO_HAS_VARIADIC_TEMPLATES)) + // || defined(GENERATING_DOCUMENTATION) + +#endif // ASIO_AS_TUPLE_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_allocator.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_allocator.hpp index 14d76b623..8e864673c 100644 --- a/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_allocator.hpp +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_allocator.hpp @@ -2,7 +2,7 @@ // associated_allocator.hpp // ~~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -17,36 +17,81 @@ #include "asio/detail/config.hpp" #include +#include "asio/associator.hpp" +#include "asio/detail/functional.hpp" #include "asio/detail/type_traits.hpp" #include "asio/detail/push_options.hpp" namespace asio { + +template +struct associated_allocator; + namespace detail { -template +template +struct has_allocator_type : false_type +{ +}; + +template +struct has_allocator_type::type> + : true_type +{ +}; + +template struct associated_allocator_impl { - typedef E type; + typedef void asio_associated_allocator_is_unspecialised; + + typedef A type; + + static type get(const T&) ASIO_NOEXCEPT + { + return type(); + } - static type get(const T&, const E& e) ASIO_NOEXCEPT + static const type& get(const T&, const A& a) ASIO_NOEXCEPT { - return e; + return a; } }; -template -struct associated_allocator_impl +struct associated_allocator_impl::type> { typedef typename T::allocator_type type; - static type get(const T& t, const E&) ASIO_NOEXCEPT + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_allocator())) + { + return t.get_allocator(); + } + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const A&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_allocator())) { return t.get_allocator(); } }; +template +struct associated_allocator_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + } // namespace detail /// Traits type used to obtain the allocator associated with an object. @@ -63,29 +108,32 @@ struct associated_allocator_impl > struct associated_allocator +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_allocator_impl +#endif // !defined(GENERATING_DOCUMENTATION) { +#if defined(GENERATING_DOCUMENTATION) /// If @c T has a nested type @c allocator_type, T::allocator_type. /// Otherwise @c Allocator. -#if defined(GENERATING_DOCUMENTATION) typedef see_below type; -#else // defined(GENERATING_DOCUMENTATION) - typedef typename detail::associated_allocator_impl::type type; -#endif // defined(GENERATING_DOCUMENTATION) + + /// If @c T has a nested type @c allocator_type, returns + /// t.get_allocator(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) ASIO_NOEXCEPT; /// If @c T has a nested type @c allocator_type, returns /// t.get_allocator(). Otherwise returns @c a. - static type get(const T& t, - const Allocator& a = Allocator()) ASIO_NOEXCEPT - { - return detail::associated_allocator_impl::get(t, a); - } + static decltype(auto) get(const T& t, const Allocator& a) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) }; /// Helper function to obtain an object's associated allocator. @@ -93,7 +141,7 @@ struct associated_allocator * @returns associated_allocator::get(t) */ template -inline typename associated_allocator::type +ASIO_NODISCARD inline typename associated_allocator::type get_associated_allocator(const T& t) ASIO_NOEXCEPT { return associated_allocator::get(t); @@ -104,8 +152,11 @@ get_associated_allocator(const T& t) ASIO_NOEXCEPT * @returns associated_allocator::get(t, a) */ template -inline typename associated_allocator::type +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_allocator::type) get_associated_allocator(const T& t, const Allocator& a) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_allocator::get(t, a))) { return associated_allocator::get(t, a); } @@ -118,6 +169,63 @@ using associated_allocator_t #endif // defined(ASIO_HAS_ALIAS_TEMPLATES) +namespace detail { + +template +struct associated_allocator_forwarding_base +{ +}; + +template +struct associated_allocator_forwarding_base::asio_associated_allocator_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_allocator_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_allocator for @c std::reference_wrapper. +template +struct associated_allocator, Allocator> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_allocator_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_allocator::type type; + + /// Forwards the request to get the allocator to the associator specialisation + /// for the unwrapped type @c T. + static type get(reference_wrapper t) ASIO_NOEXCEPT + { + return associated_allocator::get(t.get()); + } + + /// Forwards the request to get the allocator to the associator specialisation + /// for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + reference_wrapper t, const Allocator& a) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_allocator::get(t.get(), a))) + { + return associated_allocator::get(t.get(), a); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + } // namespace asio #include "asio/detail/pop_options.hpp" diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_cancellation_slot.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_cancellation_slot.hpp new file mode 100644 index 000000000..65d82b646 --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_cancellation_slot.hpp @@ -0,0 +1,238 @@ +// +// associated_cancellation_slot.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ASSOCIATED_CANCELLATION_SLOT_HPP +#define ASIO_ASSOCIATED_CANCELLATION_SLOT_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#include "asio/associator.hpp" +#include "asio/cancellation_signal.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_cancellation_slot; + +namespace detail { + +template +struct has_cancellation_slot_type : false_type +{ +}; + +template +struct has_cancellation_slot_type::type> + : true_type +{ +}; + +template +struct associated_cancellation_slot_impl +{ + typedef void asio_associated_cancellation_slot_is_unspecialised; + + typedef S type; + + static type get(const T&) ASIO_NOEXCEPT + { + return type(); + } + + static const type& get(const T&, const S& s) ASIO_NOEXCEPT + { + return s; + } +}; + +template +struct associated_cancellation_slot_impl::type> +{ + typedef typename T::cancellation_slot_type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_cancellation_slot())) + { + return t.get_cancellation_slot(); + } + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const S&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_cancellation_slot())) + { + return t.get_cancellation_slot(); + } +}; + +template +struct associated_cancellation_slot_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + +} // namespace detail + +/// Traits type used to obtain the cancellation_slot associated with an object. +/** + * A program may specialise this traits type if the @c T template parameter in + * the specialisation is a user-defined type. The template parameter @c + * CancellationSlot shall be a type meeting the CancellationSlot requirements. + * + * Specialisations shall meet the following requirements, where @c t is a const + * reference to an object of type @c T, and @c s is an object of type @c + * CancellationSlot. + * + * @li Provide a nested typedef @c type that identifies a type meeting the + * CancellationSlot requirements. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t) and with return type @c type or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,s) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template +struct associated_cancellation_slot +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_cancellation_slot_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c cancellation_slot_type, + /// T::cancellation_slot_type. Otherwise + /// @c CancellationSlot. + typedef see_below type; + + /// If @c T has a nested type @c cancellation_slot_type, returns + /// t.get_cancellation_slot(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) ASIO_NOEXCEPT; + + /// If @c T has a nested type @c cancellation_slot_type, returns + /// t.get_cancellation_slot(). Otherwise returns @c s. + static decltype(auto) get(const T& t, + const CancellationSlot& s) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated cancellation_slot. +/** + * @returns associated_cancellation_slot::get(t) + */ +template +ASIO_NODISCARD inline typename associated_cancellation_slot::type +get_associated_cancellation_slot(const T& t) ASIO_NOEXCEPT +{ + return associated_cancellation_slot::get(t); +} + +/// Helper function to obtain an object's associated cancellation_slot. +/** + * @returns associated_cancellation_slot::get(t, st) + */ +template +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_cancellation_slot::type) +get_associated_cancellation_slot(const T& t, + const CancellationSlot& st) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_cancellation_slot::get(t, st))) +{ + return associated_cancellation_slot::get(t, st); +} + +#if defined(ASIO_HAS_ALIAS_TEMPLATES) + +template +using associated_cancellation_slot_t = + typename associated_cancellation_slot::type; + +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + +namespace detail { + +template +struct associated_cancellation_slot_forwarding_base +{ +}; + +template +struct associated_cancellation_slot_forwarding_base::asio_associated_cancellation_slot_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_cancellation_slot_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_cancellation_slot for @c +/// std::reference_wrapper. +template +struct associated_cancellation_slot, CancellationSlot> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_cancellation_slot_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_cancellation_slot::type type; + + /// Forwards the request to get the cancellation slot to the associator + /// specialisation for the unwrapped type @c T. + static type get(reference_wrapper t) ASIO_NOEXCEPT + { + return associated_cancellation_slot::get(t.get()); + } + + /// Forwards the request to get the cancellation slot to the associator + /// specialisation for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get(reference_wrapper t, + const CancellationSlot& s) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_cancellation_slot::get(t.get(), s))) + { + return associated_cancellation_slot::get(t.get(), s); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_CANCELLATION_SLOT_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_executor.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_executor.hpp index e1792466f..92279891d 100644 --- a/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_executor.hpp +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_executor.hpp @@ -2,7 +2,7 @@ // associated_executor.hpp // ~~~~~~~~~~~~~~~~~~~~~~~ // -// Copyright (c) 2003-2020 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) @@ -16,6 +16,8 @@ #endif // defined(_MSC_VER) && (_MSC_VER >= 1200) #include "asio/detail/config.hpp" +#include "asio/associator.hpp" +#include "asio/detail/functional.hpp" #include "asio/detail/type_traits.hpp" #include "asio/execution/executor.hpp" #include "asio/is_executor.hpp" @@ -24,16 +26,37 @@ #include "asio/detail/push_options.hpp" namespace asio { + +template +struct associated_executor; + namespace detail { -template +template +struct has_executor_type : false_type +{ +}; + +template +struct has_executor_type::type> + : true_type +{ +}; + +template struct associated_executor_impl { typedef void asio_associated_executor_is_unspecialised; typedef E type; - static type get(const T&, const E& e = E()) ASIO_NOEXCEPT + static type get(const T&) ASIO_NOEXCEPT + { + return type(); + } + + static const type& get(const T&, const E& e) ASIO_NOEXCEPT { return e; } @@ -45,12 +68,32 @@ struct associated_executor_impl +struct associated_executor_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + } // namespace detail /// Traits type used to obtain the executor associated with an object. @@ -67,10 +110,12 @@ struct associated_executor_impl struct associated_executor @@ -83,10 +128,13 @@ struct associated_executor /// Otherwise @c Executor. typedef see_below type; + /// If @c T has a nested type @c executor_type, returns + /// t.get_executor(). Otherwise returns @c type(). + static decltype(auto) get(const T& t) ASIO_NOEXCEPT; + /// If @c T has a nested type @c executor_type, returns /// t.get_executor(). Otherwise returns @c ex. - static type get(const T& t, - const Executor& ex = Executor()) ASIO_NOEXCEPT; + static decltype(auto) get(const T& t, const Executor& ex) ASIO_NOEXCEPT; #endif // defined(GENERATING_DOCUMENTATION) }; @@ -95,7 +143,7 @@ struct associated_executor * @returns associated_executor::get(t) */ template -inline typename associated_executor::type +ASIO_NODISCARD inline typename associated_executor::type get_associated_executor(const T& t) ASIO_NOEXCEPT { return associated_executor::get(t); @@ -106,11 +154,14 @@ get_associated_executor(const T& t) ASIO_NOEXCEPT * @returns associated_executor::get(t, ex) */ template -inline typename associated_executor::type +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_executor::type) get_associated_executor(const T& t, const Executor& ex, - typename enable_if< + typename constraint< is_executor::value || execution::is_executor::value - >::type* = 0) ASIO_NOEXCEPT + >::type = 0) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_executor::get(t, ex))) { return associated_executor::get(t, ex); } @@ -121,11 +172,11 @@ get_associated_executor(const T& t, const Executor& ex, * ExecutionContext::executor_type>::get(t, ctx.get_executor()) */ template -inline typename associated_executor::type +ASIO_NODISCARD inline typename associated_executor::type get_associated_executor(const T& t, ExecutionContext& ctx, - typename enable_if::value>::type* = 0) ASIO_NOEXCEPT + typename constraint::value>::type = 0) ASIO_NOEXCEPT { return associated_executor::get(t, ctx.get_executor()); @@ -159,6 +210,42 @@ struct associated_executor_forwarding_base +struct associated_executor, Executor> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_executor_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_executor::type type; + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static type get(reference_wrapper t) ASIO_NOEXCEPT + { + return associated_executor::get(t.get()); + } + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + reference_wrapper t, const Executor& ex) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_executor::get(t.get(), ex))) + { + return associated_executor::get(t.get(), ex); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + } // namespace asio #include "asio/detail/pop_options.hpp" diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_immediate_executor.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_immediate_executor.hpp new file mode 100644 index 000000000..54bced17a --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/associated_immediate_executor.hpp @@ -0,0 +1,297 @@ +// +// associated_immediate_executor.hpp +// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP +#define ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" +#include "asio/associator.hpp" +#include "asio/detail/functional.hpp" +#include "asio/detail/type_traits.hpp" +#include "asio/execution/blocking.hpp" +#include "asio/execution/executor.hpp" +#include "asio/execution_context.hpp" +#include "asio/is_executor.hpp" +#include "asio/require.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +template +struct associated_immediate_executor; + +namespace detail { + +template +struct has_immediate_executor_type : false_type +{ +}; + +template +struct has_immediate_executor_type::type> + : true_type +{ +}; + +template +struct default_immediate_executor +{ + typedef typename require_result::type type; + + static type get(const E& e) ASIO_NOEXCEPT + { + return asio::require(e, execution::blocking.never); + } +}; + +template +struct default_immediate_executor::value + >::type, + typename enable_if< + is_executor::value + >::type> +{ + class type : public E + { + public: + template + explicit type(const Executor1& e, + typename constraint< + conditional< + !is_same::value, + is_convertible, + false_type + >::type::value + >::type = 0) ASIO_NOEXCEPT + : E(e) + { + } + + type(const type& other) ASIO_NOEXCEPT + : E(static_cast(other)) + { + } + +#if defined(ASIO_HAS_MOVE) + type(type&& other) ASIO_NOEXCEPT + : E(ASIO_MOVE_CAST(E)(other)) + { + } +#endif // defined(ASIO_HAS_MOVE) + + template + void dispatch(ASIO_MOVE_ARG(Function) f, const Allocator& a) const + { + this->post(ASIO_MOVE_CAST(Function)(f), a); + } + + friend bool operator==(const type& a, const type& b) ASIO_NOEXCEPT + { + return static_cast(a) == static_cast(b); + } + + friend bool operator!=(const type& a, const type& b) ASIO_NOEXCEPT + { + return static_cast(a) != static_cast(b); + } + }; + + static type get(const E& e) ASIO_NOEXCEPT + { + return type(e); + } +}; + +template +struct associated_immediate_executor_impl +{ + typedef void asio_associated_immediate_executor_is_unspecialised; + + typedef typename default_immediate_executor::type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T&, const E& e) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((default_immediate_executor::get(e))) + { + return default_immediate_executor::get(e); + } +}; + +template +struct associated_immediate_executor_impl::type> +{ + typedef typename T::immediate_executor_type type; + + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + const T& t, const E&) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX((t.get_immediate_executor())) + { + return t.get_immediate_executor(); + } +}; + +template +struct associated_immediate_executor_impl::value + >::type, + typename void_type< + typename associator::type + >::type> : associator +{ +}; + +} // namespace detail + +/// Traits type used to obtain the immediate executor associated with an object. +/** + * A program may specialise this traits type if the @c T template parameter in + * the specialisation is a user-defined type. The template parameter @c + * Executor shall be a type meeting the Executor requirements. + * + * Specialisations shall meet the following requirements, where @c t is a const + * reference to an object of type @c T, and @c e is an object of type @c + * Executor. + * + * @li Provide a nested typedef @c type that identifies a type meeting the + * Executor requirements. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t) and with return type @c type or a (possibly const) reference to @c + * type. + * + * @li Provide a noexcept static member function named @c get, callable as @c + * get(t,e) and with return type @c type or a (possibly const) reference to @c + * type. + */ +template +struct associated_immediate_executor +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_immediate_executor_impl +#endif // !defined(GENERATING_DOCUMENTATION) +{ +#if defined(GENERATING_DOCUMENTATION) + /// If @c T has a nested type @c immediate_executor_type, + // T::immediate_executor_type. Otherwise @c Executor. + typedef see_below type; + + /// If @c T has a nested type @c immediate_executor_type, returns + /// t.get_immediate_executor(). Otherwise returns + /// asio::require(ex, asio::execution::blocking.never). + static decltype(auto) get(const T& t, const Executor& ex) ASIO_NOEXCEPT; +#endif // defined(GENERATING_DOCUMENTATION) +}; + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_immediate_executor::get(t, ex) + */ +template +ASIO_NODISCARD inline ASIO_AUTO_RETURN_TYPE_PREFIX2( + typename associated_immediate_executor::type) +get_associated_immediate_executor(const T& t, const Executor& ex, + typename constraint< + is_executor::value || execution::is_executor::value + >::type = 0) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_immediate_executor::get(t, ex))) +{ + return associated_immediate_executor::get(t, ex); +} + +/// Helper function to obtain an object's associated executor. +/** + * @returns associated_immediate_executor::get(t, ctx.get_executor()) + */ +template +ASIO_NODISCARD inline typename associated_immediate_executor::type +get_associated_immediate_executor(const T& t, ExecutionContext& ctx, + typename constraint::value>::type = 0) ASIO_NOEXCEPT +{ + return associated_immediate_executor::get(t, ctx.get_executor()); +} + +#if defined(ASIO_HAS_ALIAS_TEMPLATES) + +template +using associated_immediate_executor_t = + typename associated_immediate_executor::type; + +#endif // defined(ASIO_HAS_ALIAS_TEMPLATES) + +namespace detail { + +template +struct associated_immediate_executor_forwarding_base +{ +}; + +template +struct associated_immediate_executor_forwarding_base::asio_associated_immediate_executor_is_unspecialised, + void + >::value + >::type> +{ + typedef void asio_associated_immediate_executor_is_unspecialised; +}; + +} // namespace detail + +#if defined(ASIO_HAS_STD_REFERENCE_WRAPPER) \ + || defined(GENERATING_DOCUMENTATION) + +/// Specialisation of associated_immediate_executor for +/// @c std::reference_wrapper. +template +struct associated_immediate_executor, Executor> +#if !defined(GENERATING_DOCUMENTATION) + : detail::associated_immediate_executor_forwarding_base +#endif // !defined(GENERATING_DOCUMENTATION) +{ + /// Forwards @c type to the associator specialisation for the unwrapped type + /// @c T. + typedef typename associated_immediate_executor::type type; + + /// Forwards the request to get the executor to the associator specialisation + /// for the unwrapped type @c T. + static ASIO_AUTO_RETURN_TYPE_PREFIX(type) get( + reference_wrapper t, const Executor& ex) ASIO_NOEXCEPT + ASIO_AUTO_RETURN_TYPE_SUFFIX(( + associated_immediate_executor::get(t.get(), ex))) + { + return associated_immediate_executor::get(t.get(), ex); + } +}; + +#endif // defined(ASIO_HAS_STD_REFERENCE_WRAPPER) + // || defined(GENERATING_DOCUMENTATION) + +} // namespace asio + +#include "asio/detail/pop_options.hpp" + +#endif // ASIO_ASSOCIATED_IMMEDIATE_EXECUTOR_HPP diff --git a/tidal-link/link/modules/asio-standalone/asio/include/asio/associator.hpp b/tidal-link/link/modules/asio-standalone/asio/include/asio/associator.hpp new file mode 100644 index 000000000..e954c4428 --- /dev/null +++ b/tidal-link/link/modules/asio-standalone/asio/include/asio/associator.hpp @@ -0,0 +1,35 @@ +// +// associator.hpp +// ~~~~~~~~~~~~~~ +// +// Copyright (c) 2003-2023 Christopher M. Kohlhoff (chris at kohlhoff dot com) +// +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) +// + +#ifndef ASIO_ASSOCIATOR_HPP +#define ASIO_ASSOCIATOR_HPP + +#if defined(_MSC_VER) && (_MSC_VER >= 1200) +# pragma once +#endif // defined(_MSC_VER) && (_MSC_VER >= 1200) + +#include "asio/detail/config.hpp" + +#include "asio/detail/push_options.hpp" + +namespace asio { + +/// Used to generically specialise associators for a type. +template